`
文章列表
saveOrUpdate() 代码案例:   public void TestsaveORUpdate(){   Teacher t = new Teacher(); t.setName("zhuhw7"); t.setYourWifeName("yourWifeName"); Session session = sf.getCurrentSession(); session.beginTransaction(); session.saveOrUpdate(t); session.getTransaction().commit(); ...
1.什么时候用update 1.可以更新一个detached对象,使其更新数据库,变为persistent   代码案例: @Test public void TestUpdate1(){ Session session = sf.getCurrentSession(); session.beginTransaction(); Teacher t = (Teacher)session.get(Teacher.class, 2); session.getTransaction().commit(); /*System.out.println("-----detach ...
028_CoreAPI_对象三种状态   星期一, 一月 04, 2016  15:07   上节课问题:        opensession 和getcurrentsession这两种分式不能混用。        两种session拿到的不是同一个。        session是一个接口,拿到的具体的实现类不是一个。     session接口 查下hibernate  api文档   在哪里 不在distribution    hibernate官网上找,hibernate api 扒网站 http://blog.sina.com.cn/s/blog ...
027_CoreAPI_JTA简介   直接使用 连接   setauto (false)commit     事务使用一个connection是管理不了的。   1.分布式事务   比如:       处理订单   order----> orderManage------>DB(产品信息)                                 ...
1.Configuration  a)AnnotationConfiguration  b)进行配置信息的管理  c)用来产生SessionFactory()  d)   sf = new AnnotationConfiguration().configure().buildSessionFactory(); .configure()去找hibernate.cfg.xml配置文件(进行数据库连接和产生连接池)     如果改变hibernate.cfg.xml名字,则在src下放sf = new AnnotationConfiguration().configure(“h ...
026_CoreAPI_Configuration_SessionFactory_GetCurrentSession_OpenSession  27:58 027_CoreAPI_JTA简介   10:24 028_CoreAPI_对象三种状态 25:16 029_CoreAPI_Delete 06:19 030_CoreAPI_Get_Load 12:21 031_CoreAPI_Get_Load_2 06:41 032_CoreAPI_Update 32:14 033_CoreAPI_saveOrUpdate_Clear_Flush  16:39 034_CoreAPI_S ...
星期日, 一月 03, 2016   17:20:10     文档 \zhuhw\hibernate\jar\hibernate-annotations-3.4.0.GA\doc\reference\zh_cn\html_single 2.2.. 映射主键属性   下面是定义组合主键的几种语法:  1.将组件类注解为@Embeddable,并将组件的属性注解为@Id   ok 2.将组件的属性注解为@EmbeddedId    ok 3.将类注解为@IdClass,并将该实体中所有属于主键的属性都注解为@Id      对于Teacher这个类进行的联合组件方法: ...
  6.联合组件 (对于串知识点很重要) a) xml:    i:为什么要重写equals和hashcode    ii:为什么要实现serializable b)@IdClass     在面向对象中  两个值为主键 就要分成两个类,一个类转为主键类,一个为正常的类。     步骤 1 ...
/hibernate_0400_ID/src/com/zhuhw/hibernate/model/Teacher.java 文件中加一个 @GeneratedValue 即可 //主键 @Id @GeneratedValue public int getId() { return id; } @Basic//对数据库中,字段名和属性相同 public void setId(int id) { this.id = id; }   运行结果: create table Teacher (id integer not null auto_increment, birt ...
星期六, 一月 02, 2016  14:04:55     id生成策略 1.对应项目:hibernate_0400_ID 2.注意:     a)我们观察hibernate生成表的结构并不是为了将来就用它生成,(可能还有自己的扩展,比如index等) 而是为了明白我们应该建立什么样的表和实体类映射。     3.       id主键: 1)在mysql用自增字段,用auto increatment    在oracle  用 sequence 注意:        对于类里面的对象里的这个值就不可以指定它了。得靠程序(数据库)帮我自动生成;   ...
星期六, 一月 02, 2016   09:41:59   020_ID生成策略_XML_配置   17:18    021_ID生成策略_XML_配置_Annotation配置  13:51 022_ID生成策略_Annotation配置_IDENTITY_SEQUENCE   11:33 023_ID生成策略_Annotation配置_Table_Generator 16:31  用处不大 024_ID生成策略_联合主键_XML  21:18   星期日, 一月 03, 2016  18:28:03    
017_Annotation字段映射位置   14.字段映射的位置(field或者get方法) a)best practice:保持gfield和 get set方法一致 15.@Lob 16.课外:CLOB BLOB类型的数据存储 17.课外:hibernate自定义数据类型 18.hibernate类型       将注解放在get方法上面或是放在field上面   其实自己个人喜欢放在field上,实际上已经破坏了java面封装性, 本来是private,这样直接放在field上,直接拿了,不合适。 从设计的角度看,不建议这么干。   建议写在get方法 ...
8.表名和类名不同,对表名进行配置   8.1在使用注解的实体类 //表名和类名不同,对表名进行配置;使用Table注解 @Table(name = "_teacher")  //name后的为数据库中对应的表名 public class Teacher {}   执行TestCase时,console的语句  insert      into         _teacher         (name, title, id)      values         (?, ?, ?)   数据库中会出现_teacher,进行对表的操作。 ...
015_showsql_formatsql     会把sql语句打印在console /hibernate_0100_HelloWorld/src/hibernate.cfg.xml    <!-- Echo all executed SQL to stdout -->         <property name="show_sql">true</property>     格式化sql,显得更好看些 <property name="format_sql">true</pr ...
junit4.7   一、引入jar包 好的习惯,建立自己的user library junit-4.7.jar     建议:     1.学习maven的做法,将测试代码放在test目录下 ----new  source folder   src放的是开发性的代码     2.对哪个类进行测试,就对哪个包下面建一个TeacherTest类 当然可以用myeclipse直接进行建立junit test case 要加@Test注解   二、进行生成测试类 TeacherTest.java 将代码修饰一下 (每次测试都要建立一次SessionFac ...
Global site tag (gtag.js) - Google Analytics