Hibernate CRUD操作
环境
java 12.0.1
Apache Maven 3.6.3
MySQL Server version: 5.7.18-20170830-log 20170531
hibernate-core-5.4.27.Final.jar
mysql-connector-java-8.0.21.jar
IntelliJ IDEA 2020.2.3 (Ultimate Edition)
CRUD
增加(Create)
public void create(List<User> userList) {
for (User user : userList) {
session.save(user);
}
}
public void create(User user) {
session.save(user);
}
检索(Retrieve)
public User retrieveById(int id) {
User user = session.get(User.class, id);
return user;
}
public List<User> retrieveAll() {
Criteria criteria = session.createCriteria(User.class);
return criteria.list();
}
public List<User> retrieveWithRestrictions(Map<String, String> propertyNameValues) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.allEq(propertyNameValues));
return criteria.list();
}
public List<User> retrieveLike(String propertyName, String value) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like(propertyName, value));
return criteria.list();
}
public List<User> retrieveBetween(String propertyName, int low, int high) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.between(propertyName, low, high));
return criteria.list();
}
更新(Update)
public void update(User user) {
session.update(user);
}
删除(Delete)
public void delete(User user) {
session.delete(user);
}
Java代码
User类
package com.demo.hibernate;
public class User {
private int id;
private String user;
private String password;
public User(String user, String password) {
this.user = user;
this.password = password;
}
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", user='" + user + '\'' +
", password='" + password + '\'' +
'}';
}
};
Hibernate类
package com.demo.hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
public class Hibernate {
private Configuration configuration;
private StandardServiceRegistry standardServiceRegistry;
private SessionFactory sessionFactory;
protected Session session;
protected Transaction transaction;
public Hibernate() {
try {
configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
standardServiceRegistry = new StandardServiceRegistryBuilder().configure().build();
sessionFactory = configuration.buildSessionFactory(standardServiceRegistry);
session = sessionFactory.openSession();
transaction = session.beginTransaction();
} catch (Exception e) {
e.printStackTrace();
}
}
}
UserHibernate类
package com.demo.hibernate;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserHibernate extends Hibernate {
public void commit() {
transaction.commit();
}
public void create(List<User> userList) {
for (User user : userList) {
session.save(user);
}
}
public void create(User user) {
session.save(user);
}
public void delete(User user) {
session.delete(user);
}
public void update(User user) {
session.update(user);
}
public User retrieveById(int id) {
User user = session.get(User.class, id);
return user;
}
public List<User> retrieveAll() {
Criteria criteria = session.createCriteria(User.class);
return criteria.list();
}
public List<User> retrieveWithRestrictions(Map<String, String> propertyNameValues) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.allEq(propertyNameValues));
return criteria.list();
}
public List<User> retrieveLike(String propertyName, String value) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like(propertyName, value));
return criteria.list();
}
public List<User> retrieveBetween(String propertyName, int low, int high) {
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.between(propertyName, low, high));
return criteria.list();
}
public static void main(String[] args) {
UserHibernate userHibernate = new UserHibernate();
List<User> users = new ArrayList<User>();
users.add(new User("Tony", "123456"));
users.add(new User("Tim", "123456"));
users.add(new User("Tom", "123456"));
users.add(new User("Charles", "123456"));
users.add(new User("Bill", "123456"));
users.add(new User("Tina", "123456"));
userHibernate.create(users);
userHibernate.delete(userHibernate.retrieveById(6));
User updatedUser = userHibernate.retrieveById(5);
updatedUser.setPassword("123");
userHibernate.update(updatedUser);
userHibernate.commit();
List<User> userList = userHibernate.retrieveAll();
for (User user : userList) {
System.out.println(user.getUser());
}
Map<String, String> propertyNameValues = new HashMap<String, String>();
propertyNameValues.put("user", "Tom");
propertyNameValues.put("password", "123456");
userList = userHibernate.retrieveWithRestrictions(propertyNameValues);
for (User user : userList) {
System.out.println(user);
}
userList = userHibernate.retrieveLike("user", "T%");
for (User user : userList) {
System.out.println(user);
}
userList = userHibernate.retrieveBetween("id", 1, 3);
for (User user : userList) {
System.out.println(user);
}
}
}
测试结果
select * from user;

最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!