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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值