Hibernate与Spring框架的整合

1.建立java项目,导入两个框架相应的jar(这里并不是最简jar包,有的并不需要)


2.创建表

                                  


3.项目框架整体结构

                                

4.编写数据访问层和业务逻辑层

public interface UserDaoI {
public void saveUser(User user);
public void updateUser(User user);
public void deleteUser(int id);

public User findUserById(int id);
public List<User> findUserByName(String name);
public List<User> findAllUser();
}

 @Repository
public class UserDaoImpl  implements UserDaoI{
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Resource
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public void saveUser(User user) {
//如果用到声明式事务,这里必须从当前session中获取session
Session session = sessionFactory.getCurrentSession();
session.save(user);
}
@Override
public void updateUser(User user) {
// TODO Auto-generated method stub
Session session = sessionFactory.getCurrentSession();
session.update(user);
}
@Override
public void deleteUser(int id) {
// TODO Auto-generated method stub
Session session = sessionFactory.getCurrentSession();
User user = (User) session.get(User.class, id);
session.delete(user);
}
@Override
public User findUserById(int id) {
// TODO Auto-generated method stub
Session session = sessionFactory.openSession();
User user = (User)session.get(User.class, id);
session.close();
return user;
}
@Override
public List<User> findUserByName(String name) {
// TODO Auto-generated method stub
Session session = sessionFactory.openSession();
Criteria c = session.createCriteria(User.class);
c.add(Restrictions.like("name", "赵",MatchMode.ANYWHERE));
List<User> user = c.list();
return user;
}
@Override
public List<User> findAllUser() {
// TODO Auto-generated method stub
Session session = sessionFactory.openSession();
Criteria c = session.createCriteria(User.class);
List<User> user = c.list();
return user
}
}

public interface UserServiceI {
public void saveUser(User user);
public void updateUser(User user);
public void deleteUser(int id);

public User findUserById(int id);
public List<User> findUserByName(String name);
public List<User> findAllUser();
}

@Service
public class UserServiceImpl implements UserServiceI{
@Resource
public UserDaoI userDao;
@Override
public void saveUser(User user) {
userDao.saveUser(user);
}
@Override
public void updateUser(User user) {
// TODO Auto-generated method stub
userDao.updateUser(user);
}
@Override
public void deleteUser(int id) {
// TODO Auto-generated method stub
userDao.deleteUser(id);
}
@Override
public User findUserById(int id) {
// TODO Auto-generated method stub
User user = userDao.findUserById(id);
return user;
}
@Override
public List<User> findUserByName(String name) {
// TODO Auto-generated method stub
List<User> user = userDao.findUserByName(name);
return user;
}
@Override
public List<User> findAllUser() {
// TODO Auto-generated method stub
List<User> user = userDao.findAllUser();
return user;
}
}

5.编写po类,创建与数据库的连接

@Entity
public class User implements Serializable{
@Id
@GeneratedValue
private Integer id;
@Column
private String name;
@Column
private Integer age;
@Column
private String gender;
@Column
private String address;

生成set,get方法

6.hibernate.cfg.xml文件配置hibernate相关文件


7.db.properties配置和log4j.properties配置

log4j.rootCategory=info, stdout
log4j.logger.org.springframework.oxm=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n

8.applicationContext.xml配置

      1、相关文档


       2、配置扫描包,在此包下有相应注解,则会创建对象(@repository,@Service等)

         <context:component-scan base-package="com" />

      3、 把数据库的连接信息发到配置文件db.properties中

           4、Hibernate配置,扫描po类。


         5、Spring事务的声明及配置事务属性


        6、配置事务切点,并把切点与事务关联起来


以上配置类基本完成

        7、下面创建测试类进行测试



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值