|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。
2005-3-3进修Hibernate在进修hibernate中,我发明关于sqlserver2000中的数据库子增字段,在设置文件利用以下办法完成:<idname="id"type="long"unsaved-value="0"><columnname="id"sql-type="numeric"not-null="true"/><generatorclass="identity"/><!--increment--></id>这里次要是:identity:代表由sqlserver2000数据库本人供应子增字段.假如要hibernate本人供应,则用increment关头字来完成
假如表中的主键用字符串范例:能够用hibernate本人供应的办法完成主键独一:<idname="id"type="string"unsaved-value="null"><columnname="cid"sql-type="char(32)"not-null="true"/><generatorclass="uuid.hex"/></id>利用的是uuid.hex战略
主要的常识点:1.假如有部门表,有员工表,员工表中有dep_id,则表部门类和员工类是one-to-many的干系:可使用:(在部门类department中利用以下)Department类:/**部门的一切员工*/privateSetstaffs=newTreeSet();xml的文件:<setname="staffs"><keycolumn="dep_id"/><one-to-manyclass="hbp.sys.data.Staff"/></set>假如是list,必要用索引<index></index>,详细个中的寄义,不是很分明.待今后研讨2.假如部门要有一个卖力人,即部门表(tb_department)中有一个字段:staff_id.那末暗示部门和卖力人之间的干系是many-to-one的干系Department类:/**部门卖力人id*/privateStaffstaff;xml文件<many-to-onename="staff"class="hbp.sys.data.Staff"column="staff_id"/>2005-3-4进修Hibernate3.多对多干系,一样平常我们是做一其中间联系关系表.我用脚色和权限做了个例子,Right(id,name)Role(id,name)两头表:tb_role_right(role_id,right_id)Right类中有一个Role的汇合:privateSetroles=newTreeSet();Role类中也有一个Right的汇合:privateSetrights=newTreeSet();则二者是分明的多对多干系.利用many-to-many来完成;xml文件中right.hbm.xml:以下:<setname="roles"table="tb_role_right"cascade="all"><keycolumn="right_id"/><many-to-manycolumn="role_id"class="hbp.sys.data.Role"/></set>role.hbm.xml文件中相似:<setname="rights"table="tb_role_right"cascade="all"><keycolumn="role_id"/><many-to-manycolumn="right_id"class="hbp.sys.data.Right"/></set>
2005-3-5进修Hibernate4.几个值得注重的成绩:a)在xml?映照文件中,写类的名字时必定用类的全名:即:包+类名如:(hbp.sys.data.Staff),这个毛病使我费了半天劲.:(b)我在写完成基础DAO操纵时,写了session.delete("fromRightasrightwhereright.id="+id);程序逝世活报错,我折腾了半天,跟踪究竟,才名顿开,hibernate在剖析sql语句的时分把个中的right,当做了数据库中的右毗连("保存字"),唉,这类关头字,不克不及任意用啊,:)2005-3-75.hibernate中HQL言语的查询依据你的sql的分歧而前往分歧的对象范例.假如你利用session.find(Stringhql)一样平常会前往一个List,如:fromStaffstaff;前往的是包括一切的员工对象的汇合如你的hql为:selectcount(*)fromStaffstaff;则前往的是一个Integer对象假如你利用的hql为:selectcount(distinctstaff.name),count(*)fromStaffstaff;则前往的是一个Object即Object[],必要先把他转换成Object[],然后在取[0],[1].这类计划我不晓得hibernate是怎样处置的,感到既好也欠好.好的是可使用一个find取得恣意查询欠好在于依据hql来处置前往了局,简单堕落.
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点: |
|