Spring如何整合Hibernate

 时间:2024-10-18 21:13:01

1、准备数据库#创建数据库CREATE SCHEMA `springdata`CHARSET utf8COLLATE utf8_general_ci;#使用数据库USE `springdata`;

2、创建项目此处创建Maven项目来进行Spring整合Hibernate的学习添加jdbc.properties、applicationContext.xml配置文件

Spring如何整合HibernateSpring如何整合Hibernate

6、创建实体类Userpackage site.hclz.springdata.pojo;import javax.persistence.*;import java.io.Serializable;@Entity@Table(name = "t_user")public class User implements Serializable { @Id@Column(name = "u_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer userId; @Basic@Column(name = "u_name") private String userName; @Basic@Column(name = "u_age") private Integer userAge; @Basic@Column(name = "u_address") private String userAddress; public User(){} public User(Integer userId, String userName, Integer userAge, String userAddress) { this.userId = userId; this.userName = userName; this.userAge = userAge; this.userAddress = userAddress; } //省略getter/setter方法 toString方法}

7、UserDao接口package site.hclz.springdata.蟠校盯昂dao;import site.hclz.springdata.pojo.User;import java.util.List;public interface UserDao { //增加 Integer insertUser(User user); //删除 void deleteUser(Integer userId); //修改 void updateUser(User user); //查询 User selectUserById(Integer userId); //HQL带条件查询 List<User> selectUserListByAddressUseHQL(String address); //SQL带条件查询 List<User> selectUserListByAddressUseSQL(String address); //QBC带条件查询(hibernate5.2中已过时,推荐使用jpaCriteria) List<User> selectUserListByAddressUseQBC(String address);}

8、接口实现类UserDaoImplpackage site.hclz.springdata.dao.imp;i罪焐芡拂mport org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.criterion.Restrictions;import org.hibernate.query.NativeQuery;import org.hibernate.query.Query;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate5.HibernateTemplate;import org.springframework.stereotype.Repository;import site.hclz.springdata.dao.UserDao;import site.hclz.springdata.pojo.User;import java.util.List;@Repository("userDao")public class UserDaoImpl implements UserDao { @Autowired private HibernateTemplate hibernateTemplate; @Override public Integer insertUser(User user) { return (Integer) hibernateTemplate.save(user); } @Override public void deleteUser(Integer userId) { hibernateTemplate.delete(hibernateTemplate.get(User.class,userId)); } @Override public void updateUser(User user) { hibernateTemplate.update(user); } @Override public User selectUserById(Integer userId) { return hibernateTemplate.get(User.class,userId); } @Override public List<User> selectUserListByAddressUseHQL(String address) { Session session = hibernateTemplate.getSessionFactory().getCurrentSession(); Query<User> query = session.createQuery( "from User where userAddress=:addr", User.class).setParameter("addr", address); return query.list(); } @Override @SuppressWarnings("unchecked") public List<User> selectUserListByAddressUseSQL(String address) { Session session = hibernateTemplate.getSessionFactory().getCurrentSession(); NativeQuery nativeQuery = session.createSQLQuery( "SELECT * FROM springdata.t_user WHERE u_address=:addr") .addEntity(User.class) .setParameter("addr",address); return nativeQuery.list(); } @Override @SuppressWarnings("unchecked") public List<User> selectUserListByAddressUseQBC(String address) { Session session = hibernateTemplate.getSessionFactory().getCurrentSession(); //@deprecated (since 5.2) for Session, use the JPA Criteria Criteria criteria = session.createCriteria(User.class); criteria.add(Restrictions.eq("userAddress",address)); return criteria.list(); }}

9、编写测试类测试Spring整合Hibernate

Spring如何整合Hibernate
  • 宝宝什么时候可以看电视呢
  • 爆炒湘味大白菜
  • 英雄联盟提莫技能介绍
  • 8款易拼防吞咽的大颗粒积木精选
  • 如何配置k8s集群的命令自动补全功能
  • 热门搜索
    外地旅游日了妈妈 大别山旅游 四川九寨沟旅游价格 壶口瀑布旅游 旅游装备 关于进一步促进旅游投资和消费的若干意见 湖南旅游局 上海携程旅游网 老年旅游 国庆节旅游