-
是是是是查看全部
-
单表操作CRUD实例 (1)save //生成学生对象 student s=new student( 0, "你的傻儿子", "男", new Date()); Address address =new Address("342400","789456132","赣州市"); s.setAddress(address); session.save(s);//保存对象进数据库 System.out.println(s); (2)update student s=(student) session.get(student.class,0); s.setSname("而今打海盗"); System.out.println(s); (3)delete student s=(student) session.get(student.class,0); session.delete(s); (4)get/load(查询单个记录) 1.get: student s=(student) session.get(student.class,0); System.out.println(s); 2.load: student s=(student) session.load(student.class,0); System.out.println(s); get与load区别: 1.get()调用后立即发出sql语句,并返回持久化对象;load()使用对象时才发出sql语句,返回的是代理对象 2.当查询到数据为空时,get返回null,load抛出objectNotFound异常查看全部
-
hibernate的执行流程 1.配置对象Configuration,作用: 读取配置文档:Hibernate.cfg.xml; 创建SessionFactory对象 2.SessionFactory,作用: 读取相应的里面加载的对象关系映射文件 创建session文件 3.session,作用: 类似于JDBC中的Connection,这个session对象等同于连接对象 执行增删改查: save,delete,update,get。 4.执行某个session对象的方法的时候,必须开启一个事物transaction,这些方法需要封装在事物当中。 5.执行完成方法之后,需要提交事务并且关闭session tx.commit() session.close() [ 收起全文 ]查看全部
-
ORM查看全部
-
hibernate开发的基本步骤查看全部
-
把session1.close();的注释取消了 ,就知道为什么能证明了 session对象自动关闭后,下次取出的connection对象和上一次的connection对象是一样的 但我的实测与理论结果不符。。。查看全部
-
get与load区别: 1.get调用后立即发出sql语句,并返回对象。load调用后返回代理对象,保存了实体对象id,直到使用了对象的非主键属性时才发出sql语句 2.当查询到数据为空时,get返回null,load返回objectNotFound异常查看全部
-
组件属性:实体类中的某个属性属于用户自定义类的对象; 作用:将两个实体类合并在一起组建成一个表 在hbm.xml文件中配置: 格式: <component name="取的名字" class="类名"> <property name="类中属性" column="对应生成数据库中列属性名"> </component>查看全部
-
对象类型查看全部
-
基本类型查看全部
-
单一主键:指表中由某一列来充当主键 assigned:由java程序负责生成(手工赋值) native:由底层数据库自动生成标识符查看全部
-
hibernate.cfg.xml 常用配置查看全部
-
openSession与getCurrentSession的区别: (1)getCurrentSession在事务提交或者回滚之后会自动关闭,而openSesssion需要你手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出! (2)openSession每次创建新的session对象,getCurrentSession使用现有的session对象 openSession与getCurrentSession openSession 每次使用都是打开一个新的session,使用完需要调用close方法关闭session; getCurrentSession 是获取当前session对象,连续使用多次时,得到的session都是同一个对象,这就是与openSession的区别之一 ; 一般在实际开发中,往往使用getCurrentSession多,因为一般是处理同一个事务,所以在一般情况下比较少使用openSession;查看全部
-
openSession 每次使用都是打开一个新的session,使用完需要调用close方法关闭session; getCurrentSession 是获取当前session对象,连续使用多次时,得到的session都是同一个对象,这就是与openSession的区别之一 ; 一般在实际开发中,往往使用getCurrentSession多,因为一般是处理同一个事务,所以在一般情况下比较少使用openSession; 如何获得session对象??? (1)openSessionion (2)getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(jdbc事务) <property name="hibernate.current_session_context_class">thread</property> 如果是全局事务(jta事务) <property name="hibernate.current_session_context_class">jta</property>查看全部
-
hibernate对数据库的操作都是封装在事物transaction当中,并且默认是非自动提交的方式,所以用session保存对象时,若不开启事务,并手工提交事务,对象时不会保存到数据库当中的。若不开启事物,也可以用session的doWork()方法来设置自动提交事务,并在保存对象之后,记得用session.flush();来输出SQL语句,不然对象也是不会保存到数据库中的。但一般是不建议用第二种方法,都是用事物来封装对数据库的操作。查看全部
举报
0/150
提交
取消