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、下面创建测试类进行测试