一.
没有基础hibernate基础的可以点击这里 ---------->ORM----hibernate入门Demo(无敌详细版)
这里我就不详细介绍了..
二.
hibernat.cfg.xml文件是Hibernate中重要的配置文件,当Spring和Hibernate整合时,由于hibernate.cfg.xml文件中的配置信息可以教育Spring来管理,
所以可以选择是否使用hibernate.cfg.xml文件.
这里将从使用hibernate.cfg.xml文件来讲解Spring和Hibernate的整合
在讲解Spring和Hibernate的整合前,首先需要了解三个重要的对象,具体如下:
1.HibernateTemplate:相当于Hibernate的session可以直接操作PO类,依赖于SessionFactory.
2.LocalSessionFactoryBean:获取SessionFactory.
3.HibernateTransactionManager:Hibernate的事物管理器.
三.实现代码:
整个项目所需jar包:
1.使用hibernate.cfg.xml文件整合Spring.
1).首先建立一张user表:
2).建立User类
public class User {
private Integer id; //用户id
private String username; //用户名称
private String password; //用户密码
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
3).编写对应的User.hbm.xml
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
4).编写UserDao接口
public interface UserDao {
public void save(User user); //添加用户
public void update(User user); //更新用户
public void delete(User user); //删除用户
public User findById(Integer id); //根据用户id查找用户数据
public List
}
5).编写接口实现类:UserDaoImpl
//开启注解模式,这句相当于在spring中
//
@Repository("userDao")
public class UserDaoImpl implements UserDao {
//依赖注入
@Autowired
private HibernateTemplate hibernateTemplate;
//插入操作
public void save(User user) {
hibernateTemplate.save(user);
}
//更新操作
public void update(User user) {
hibernateTemplate.update(user);
}
//删除操作
public void delete(User user) {
hibernateTemplate.delete(user);
}
//根据ID查找用户
public User findById(Integer id) {
return hibernateTemplate.get(User.class, id);
}
//返回所有用户数据
@SuppressWarnings("unchecked")
public List
return (List
}
}
6).编写UserService接口
public interface UserService {
public void save(User user); //添加用户
public void update(User user); //更新用户
public void delete(User user); //删除用户
public User findById(Integer id); //根据用户id查找用户数据
public List
}
7).编写UserServiceImpl类
//开启注解模式,这句相当于在spring中
//
@Service("userService")
public class UserServiceImpl implements UserService {
//依赖注入
@Autowired
private UserDao userDao;
//插入数据
public void save(User user) {
userDao.save(user);
}
//更新数据
public void update(User user) {
userDao.update(user);
}
//删除数据
public void delete(User user) {
userDao.delete(user);
}
//根据id查找用户
public User findById(Integer id) {
return userDao.findById(id);
}
//返回所有用户信息
public List
return userDao.findAll();
}
}
8).编写核心配置文件hibernate.cfg.xml
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
org.hibernate.dialect.MySQLDialect
9).编写Spring的配置文件applicationContext.xml同样放在src目录下
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
10).编写单元测试类:
public class SpringHibernateTest {
//定义变量
ApplicationContext ac; //读取Spring配置文件,返回上下文对象
UserService userService; //用于接收一个UserServiceImpl实例
@Before
public void setUp(){
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
userService=(UserService) ac.getBean("userService");
}
@Test
public void insert()
{
User user=new User();
user.setUsername("张三");
user.setPassword("123456");
userService.save(user);
}
@Test
public void findById()
{
User user=userService.findById(1);
System.out.println(user);
}
//修改用户名
@Test
public void update()
{
User user=new User(); user.setId(1);
user.setUsername("李四");
user.setPassword("123456");
userService.update(user);
}
//先查找再删除
@Test
public void delete()
{
User user=userService.findById(1);
userService.delete(user);
}
//查找所有
@Test
public void findAll()
{
List
for(User user:list)
{
System.out.println(user);
}
}
}
11)测试结果:
A.插入操作:
控制台打印的sql语句,然后到mysql查看数据是否插入成功;这里我再插入两条信息用户分开显示查询所有用户信息
B.查询操作(查询用户id为1的信息):
C.更新操作,(将id=1的用户名修改为李四)
D.删除操作,(将id=1的用户信息删除)
E.查询所有用户信息
四.总结
以上是完整的带hibernate.cfg.xml文件的Spring跟Hibernate的整合过程,如有疑问可以留言~
行业类别怎么填拜仁官方:博阿滕右大腿肌肉撕裂