MyEclipse10 hibernate4.1实例

一、搭建测试项目myproject,添加Hibernate4.1、Struts2支持;


二、在MySql数据新建数据库及表:myDB、user表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(32) DEFAULT NULL,
  `password` varchar(32) DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `pohone_number` varchar(20) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

新增两条测试数据。

三、打开DB Browser视图,在user表上右键选择Hibernate Reverse Engineering,钩选:

Create POJO<>DB Table mapping information

Java Data Object(POJO<>DB Table)

Java Data Access Object(DAO)(Hibernate 3 and above),选择Base class:<Default Base DAO>(recommended)

,点击Next、Next、Finish;

生成相应代码User.java、User.hbm.xml、BaseHibernateDAO.java、IBaseHibernateDAO.java、UserDAO.java。

四、调用:

采用上章方式,建立Struts框架,在LoginAction.java中添加代码:

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		UserDAO test= new UserDAO();
		com.cn.whirlpool.rbac.User model=test.findById(1);
		System.out.println(model.getUserName());
		return SUCCESS;
	}
在控制台会输出用户名。


虽然只实现了查询功能,但增删改底层DAO生成以后,调用方式都不复杂,暂且不测试了。

下一步搭建Spring环境测试Spring代码。

五、一些问题处理

1.Hibernate里 getSession().save(0) 与 getHibernateTemplate().save(o) 

	public void save(KmTypes transientInstance) {
		log.debug("saving KmTypes instance");
		try {
			getSession().save(transientInstance);
			log.debug("save successful");
		} catch (RuntimeException re) {
			log.error("save failed", re);
			throw re;
		}
	}

单独的getSession.save()调用的是Hibernate事务,在save后要调用:

session.flush()或transaction.commit()。

如果需要getSession().save()可以直接保存进数据库,则要在applicationContext.xml把service和dao关联起来。


getHibernateTemplate().save()是Spring的方法支持声明式事务管理。如果配置了事务,它会自动调用事务并在操作完毕后自动关闭session。

你可能感兴趣的:(java,Hibernate,数据库,ssh,实例)