JavaWeb——Spring的AOP与Hibernate整合操作数据库
其他
2020-02-08 18:25:30
阅读次数: 0
JavaWeb——Spring 系列
五、AOP 与 Hibernate 整合操作数据库
- Spring 中提供了 HibernateTemplate 类和 HibernateDaoSupport 类及其子类,使得能够结合 Hibernate 进行编程。
1、配置数据源
2、配置 Hibernate 配置文件
3、为项目配置 Hibernate
4、新建一个事务类
- 新建一个 DAO 类作为事务类,代码如下:
package com.myCode.DAOCode.DAO;
import javax.annotation.Resource;
import com.myCode.DAOCode.bean.User;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import org.springframework.transaction.annotation.Transactional;
@Resource
@Transactional(readOnly=false)
public class HibernateUserDAO extends HibernateDaoSupport{
public void insert(final User user){
try{
assert getHibernateTemplate() != null;
getHibernateTemplate().execute(new HibernateCallback<User>() {
@Override
public User doInHibernate(Session session) throws HibernateException {
session.save(user);
return null;
}
});
}catch (Exception e){
System.out.println("执行失败,原因:"+e.getMessage());
}
}
}
5、执行配置
- 在执行类里编辑如下代码:
import com.myCode.DAOCode.DAO.HibernateUserDAO;
import com.myCode.DAOCode.bean.User;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HibernateAddUser {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
HibernateUserDAO userDAO = (HibernateUserDAO)factory.getBean("hibernateUserDAO");
User user = new User();
user.setName("叶灵");
user.setAge(20);
user.setSex("男");
try{
userDAO.insert(user);
System.out.println("添加成功");
}catch (Exception e){
System.out.println("添加失败,原因:"+e.getMessage());
}
}
}
6、执行结果
- 执行代码之后会在控制台输出如下关键信息:
Hibernate:
insert
into
user
(name, age, sex)
values
(?, ?, ?)
添加成功
- 在数据库管理系统的可视化工具中查看 user 表中的数据如下:
上一篇
下一篇
发布了146 篇原创文章 ·
获赞 15 ·
访问量 1万+
转载自blog.csdn.net/qq_42896653/article/details/104024371