JAVA hibernate DAO —— save 方法
2011-08-04 14:25
148 查看
用 MyEclipse 自带的Hibernate 反向工程生成的 DAO 文件,使用里面的 save 方法,数据不能插入数据库。
注意 hbm.xml 文件里面的主键的自增问题。
native
由 Hibernate 根据底层数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。
—————— 如果不清楚自己的主键自增机制,使用 native 一般是不会出错的 ——————————
***************************** hibernate 自动生成的 DAO —— save 方法 *********************
Transation对象的操作是必须自己手动添加进去,显示声明提交事务。
Hibernate 默认是手动提交的,必须开启事务,手动提交,否则数据库中没有保存记录;
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!BTW : 用MyEclipse 自动生成的 DAO 文件也好,hbm.xml 文件也好,很多都得根据实际进行修改。 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
如,SQL Server 数据库中,有一列的的数据类型是 datetime,用 hibernate 映射出来的 hbm.xml 文件中,该列对应的数据类型是 timestamp 。
而在使用的时候很不方便(timestamp 可以使用,得转型),将 bean 中的私有成员变量的数据类型改为 Date (相应修改getter 和setter 方法)。使用起来会顺手很多,如插入当前时间,只用在使用的时候new 一个 Date 就行,不用去转型。
注意 hbm.xml 文件里面的主键的自增问题。
<id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id>
native
由 Hibernate 根据底层数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。
—————— 如果不清楚自己的主键自增机制,使用 native 一般是不会出错的 ——————————
***************************** hibernate 自动生成的 DAO —— save 方法 *********************
Transation对象的操作是必须自己手动添加进去,显示声明提交事务。
Hibernate 默认是手动提交的,必须开启事务,手动提交,否则数据库中没有保存记录;
public void save(Suser transientInstance) { log.debug("saving Suser instance"); Transaction tx = getSession().beginTransaction(); try { getSession().save(transientInstance); log.debug("save successful"); tx.commit(); } catch (RuntimeException re) { log.error("save failed", re); tx.rollback(); throw re; } finally { getSession().flush(); getSession().close(); } }
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!BTW : 用MyEclipse 自动生成的 DAO 文件也好,hbm.xml 文件也好,很多都得根据实际进行修改。 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
如,SQL Server 数据库中,有一列的的数据类型是 datetime,用 hibernate 映射出来的 hbm.xml 文件中,该列对应的数据类型是 timestamp 。
而在使用的时候很不方便(timestamp 可以使用,得转型),将 bean 中的私有成员变量的数据类型改为 Date (相应修改getter 和setter 方法)。使用起来会顺手很多,如插入当前时间,只用在使用的时候new 一个 Date 就行,不用去转型。
ss.setBirthday(new Date());
相关文章推荐
- hibernate在myeclipse反向工程中dao的save写不进数据库的解决方法
- Hibernate 反向工程生成的 DAO 文件 save 方法
- hibernate在myeclipse反向工程中dao的save写不进数据库的解决方法
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- 燃烧的远征java(三)-Struts+Spring+Hibernate:java的几种对象(PO,VO,DAO,BO,POJO)解释
- 关于Hibernate在反向工程时无法选择Spring DAO Type的解决方法【更新版】
- 自动生成的hibernate DAO的几个方法
- HibernateDao.java
- java.lang.IllegalArgumentException: sessionFactory or hibernateTemplate is required 错误解决方法
- 关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法
- 类似hibernate的JDBC(java反射--dao层封转,减少代码书写)
- JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-001Hibernate映射继承的方法
- Hibernate 的Session 中的save()方法和persist()方法有什么区别
- sh(Spring+Spring mvc+hibernate)——IEmpDao.java
- 在使用Hibernate save()方法的时候 报错: org.hibernate.exception.ConstraintViolationException:could not perform
- Hibernate的save方法不能进行数据库插入的解决办法
- HiberNate 最简单的配置方法,java的几大框架原理,
- java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceE解决方法
- hibernate之简单模拟hibernate的save方法
- hibernate中Session常用方法那些事(save(),flush(),delete().......)