项目结构
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/192510e2b27572b6e469140365853361.png)
//UserDao
package dao;
import pojo.User;
import java.util.List;
public interface UserDao {
public void insert(User u);
public void delete(int id);
public List<User> queryAll();
public void update(User u);
}
//UserDaoImpl
package dao;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import pojo.User;
import java.util.List;
public class UserDaoImpl implements UserDao {
@Override
public void insert(User u) {
SessionFactory sf = hibernateUtil.getSessionFactory();
Session session = sf.getCurrentSession();
try {
org.hibernate.Transaction transaction = session.beginTransaction();
session.save(u);
transaction.commit();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
sf.close();
}
}
@Override
public void delete(int id) {
SessionFactory sf = hibernateUtil.getSessionFactory();
Session session = sf.getCurrentSession();
try {
//开启事务
org.hibernate.Transaction transaction = session.beginTransaction();
session.delete(id);
transaction.commit();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
sf.close();
}
}
@Override
public List<User> queryAll() {
SessionFactory sf = hibernateUtil.getSessionFactory();
Session session = sf.getCurrentSession();
org.hibernate.Transaction transaction = session.beginTransaction();
Query query = session.createQuery("from User ");
List<User> users = query.list();
transaction.commit();
sf.close();
return users;
}
@Override
public void update(User u) {
SessionFactory sf = hibernateUtil.getSessionFactory();
Session session = sf.getCurrentSession();
try {
org.hibernate.Transaction transaction = session.beginTransaction();
session.update(u);
transaction.commit();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
sf.close();
}
}
}
//hibernateUtil
package dao;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class hibernateUtil {
private static SessionFactory sf = null;
private static Configuration cfg = null;
private static StandardServiceRegistry ssr = null;
static {
try{
cfg = new Configuration().configure();
ssr = new StandardServiceRegistryBuilder().configure().build();
sf = cfg.buildSessionFactory(ssr);
}catch (HibernateException e){
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory(){
return sf;
}
public static void closeSessionFactory(){
sf.close();
}
}
//User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="pojo.User" table="t_user" select-before-update="true" dynamic-update="true">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column = "name"/>
<property name="gender" column="gender"/>
<property name="age" column="age"/>
</class>
</hibernate-mapping>
测试
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ec81ea53c106619cf69bf4aa81edfb96.png)
结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/655f5aa2727fd34cdeebd954e4cb0dae.png)