- 博客(9)
- 收藏
- 关注
原创 Hibernate——仅更新部分字段
介绍两种方法1.Annotation设定@Column(updatable=false)在不需要更新的属性上添加这个注解。这种方法不灵活,很少使用。2.使用HQL@Test public void testUpdate4() { Session session = sf.getCurrentSession(); session.beginTransaction()
2017-06-30 22:41:09 409
原创 Hibernate——三种状态下的update()方法
1.transient状态更新transient对象会报错。更新自己设定id的transient对象可以(数据库有对应记录)更新后除了设定更新的字段,其他字段会重置成null
2017-06-30 20:47:44 2643
原创 Hibernate——load方法和get方法的异同
从数据库取一条记录出来一般有两种方法1.load()方法Student s = (Student)session.load(Student.class, 1);2.get()方法Student s = (Student)session.get(Student.class, 1);load()或者get()之后,对象是persistent状态
2017-06-30 19:22:14 533
原创 Hibernate——对象的三种状态
transient(瞬态) 内存中有一个对象,无idpersistent(持久化)内存中有一个对象,有id,缓存中有,数据库中有detached(分离) 内存中有一个对象,有id,缓存中没,数据库中有public void test() { Student s = new Student(); s.setName("lll"); s.setAg
2017-06-30 10:14:23 269
原创 Hibernate——JTA
上一篇提到的配置文件中的thread//当前的session的运行环境有四种取值jta、thread、managed、custom.Class常用thread和jta我们一般将事物分为两种1.connection事物,依赖数据库本身,只针对一个数据库2.jta事物,分布式,不止一个数据库假如要向两个数据库BD1和DB2中分别执行两个操作,一个操作
2017-06-29 15:32:02 433
原创 Hibernate——SessionFactory产生session的两种方法
SessionFactory可以简单理解为数据库的连接池,用于产生session产生session有两种方法(1)Session session = sf.openSession();(2)Session session = sf.getCurrentSession();openSession每次都创建一个新的session,需要手动closegetCurren
2017-06-28 22:36:30 898
原创 HIbernate——ID自动生成
Annotation实现,xml不做讨论1.@GeneratedValue//id自动增长(常用。默认为auto,在MySQL中为auto_increment;在Oracle中为sequence)不同的数据库平台方法不同2.@TableGenerator(name="Student_GEN", //生成器的名字table="GENERATOR_TABLE",
2017-06-28 21:05:22 1736
原创 Hibernate——数据库表名和类名不一致
注解Annotation的解决方法,xml不做讨论hibernate文档推荐使用javax.persistence而不是org.hibernate.annotation如果数据库表名和类名不一样,可在类前面加上注解@Table如,@Table(name="_student") //表示Student类对应_student这张表如果字段名不一样@C
2017-06-28 20:33:39 3942
原创 Hibernate4中SessionFactory已过时
hibernate3.6之后Annotation类库集成到了hibernate中,不用再添加hibernate-annotation.jar和hibernate-common-annotation.jar类包。所以Configuration cfg = new AnnotationConfiguration();的写法也废弃了,直接Configuration cfg = new Configu
2017-06-25 00:00:15 1622
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人