本文章的目的是实现hibernateDao层功能,但是具体的操作不在Dao层内完成。
实体类
package com.hibernate.entity;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
DAO层接口
package com.hibernate.dao;
import com.hibernate.entity.User;
public interface UserDao {
public User selectUser(int id);
public void updateUser(int id,User user);
public void daleteUser(int id);
public void addUser(User user);
}
接口实现类
package com.hibernate.dao;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.hibernate.entity.User;
public class UserDaoImpl implements UserDao {
@Override
public User selectUser(int id) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
User u = new User();
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
u = session.get(User.class,id);
System.out.println(u.toString());
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
return u;
}
@Override
public void updateUser(int id, User user) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
user.setId(id);
session.update(user);
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
@Override
public void daleteUser(int id) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
User u = session.get(User.class, id);
session.delete(u);
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
@Override
public void addUser(User user) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
session.save(user);
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
}
测试类
package com.hibernate.dao;
import org.junit.Test;
import com.hibernate.entity.User;
public class Test1 {
UserDaoImpl userDaoImpl = new UserDaoImpl();
@Test
public void testadd() {
User user = new User("yuezhang",18);
userDaoImpl.addUser(user);
System.out.println("增加成功");
}
@Test
public void testSelect() {
userDaoImpl.selectUser(1);
}
@Test
public void testUpdate() {
User user = new User("yuezhang",88);
userDaoImpl.updateUser(1, user);
}
@Test
public void testDelete() {
userDaoImpl.daleteUser(1);
}
}
运行结果
(1)增加
数据库表
(2)查询
(3)修改
(4)删除