1.HibernateConfigUtil.java(HIbernate配置工具类)
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateConfigUtil { private static Configuration config; private static SessionFactory sessionFactory; //创建静态私有线程对象 private static ThreadLocal<Session> localSession=new ThreadLocal<>(); public HibernateConfigUtil(){} static { try{ // 读取解析hibernate.cfg.xml文件 config=new Configuration().configure(); //建立SessionFactory sessionFactory=config.buildSessionFactory(); }catch (Exception e){ System.out.println("初始化加载异常"); e.printStackTrace(); } } //获取session对象(类似于JDBC中的Connection对象con) public static Session getSession(){ //获取当前线程中的session对象 Session session=localSession.get(); // 验证session对象是否为空 if(session==null){ session=sessionFactory.openSession();// 使用工厂对象生产session对象 localSession.set(session);// 将session对象放入线程 } return session; } //关闭session对象 public static void closeSession(){ //获取当前线程中的session对象 Session session=localSession.get(); localSession.set(null);// 清空线程中的session对象 if(session!=null){ session.close(); } } public static void rebuildSessionfactory(){ try{ // 读取解析hibernate.cfg.xml文件 config=new Configuration().configure(); //建立SessionFactory sessionFactory=config.buildSessionFactory(); }catch (Exception e){ System.out.println("初始化加载异常"); e.printStackTrace(); } } public static SessionFactory getSessionFactory(){ return sessionFactory; } public static Configuration getConfig(){ return config; } }
2.HibernateConnectUtil(Hibernate操作数据库工具类)
import EntityClass.EntryFirminfoEntity; import EntityClass.StudentEntity; import EntityClass.UserEntity; import EntityClass.UserinfoEntity; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; import java.util.ArrayList; import java.util.List; public class HibernateConnectUtil { public static void addData() { //创建一个session对象 Session session1= HibernateConfigUtil.getSession(); //Fenciresult数据库表所对应的实体类,生成实体类对象,操作数据库表 UserEntity userEntity=new UserEntity(); //设置数据库对应字段的值,主键若是自增模式,无需人为设置 userEntity.setUserName("linda"); userEntity.setPassword("888888"); //把数据放入session中 session1.save(userEntity); //开启一个新的事务Transaction session1.beginTransaction(); //提交事务,此处才是真正与数据库交互的语句 session1.getTransaction().commit(); } //向数据库UserInfo表中添加用户注册的数据 public static void addUserInfoData(String username,String password,String email,String company) { //创建一个session对象 Session session1= HibernateConfigUtil.getSession(); //Fenciresult数据库表所对应的实体类,生成实体类对象,操作数据库表 UserinfoEntity userinfoEntity=new UserinfoEntity(); //设置数据库对应字段的值,主键若是自增模式,无需人为设置 userinfoEntity.setUsername(username); userinfoEntity.setPassword(password); userinfoEntity.setEmail(email); userinfoEntity.setFirm(company); //把数据放入session中 session1.save(userinfoEntity); //开启一个新的事务Transaction session1.beginTransaction(); //提交事务,此处才是真正与数据库交互的语句 session1.getTransaction().commit(); } //利用hibernate对数据库中的EntryFirminfoEntity表进行查询,将查询结果放入一个集合返回 public static List<EntryFirminfoEntity> queryBasicMessageByUserInput(String companyname, String realAddress, String riskrank, ArrayList<String> firmtypeList){ //1.创建一个session对象 Session session1= HibernateConfigUtil.getSession(); //2.通过session的createCriteria创建一个Criteria 对象 Criteria criteria=session1.createCriteria(EntryFirminfoEntity.class); //3. Criteria.add 增加约束。 criteria.add(Restrictions.like("firmName",companyname,MatchMode.ANYWHERE)) .add(Restrictions.like("address",realAddress,MatchMode.ANYWHERE)); //采用for循环,不断添加条件 for (int i = 0; i <firmtypeList.size() ; i++) { criteria.add(Restrictions.like("mgTypeA",firmtypeList.get(i),MatchMode.ANYWHERE)); } //4.调用list()方法返回查询结果的集合 List<EntryFirminfoEntity> firminfolist=criteria.list(); //开启一个新的事务Transaction session1.beginTransaction(); //提交事务,此处才是真正与数据库交互的语句 session1.getTransaction().commit(); HibernateConfigUtil.closeSession(); return firminfolist; } //利用hibernate对数据库中的StudentEntity表进行查询,将查询结果放入一个集合返回 public static List<StudentEntity> queryStudentByUserInput(String studentname, String realAddress, String riskrank){ //1.创建一个session对象 Session session1= HibernateConfigUtil.getSession(); //2.通过session的createCriteria创建一个Criteria 对象 Criteria criteria=session1.createCriteria(StudentEntity.class); //3. Criteria.add 增加约束(连续加入两个条件,达到"或"的效果)[筛选条件为:name属性中有"l"的,或address属性中有"天"或"金"] criteria.add(Restrictions.or(Restrictions.like("name", "l",MatchMode.ANYWHERE), Restrictions.or(Restrictions.like("address", "天",MatchMode.ANYWHERE),Restrictions.like("address", "金",MatchMode.ANYWHERE)))); //4.调用list()方法返回查询结果的集合 List<StudentEntity> studentinfolist=criteria.list(); //开启一个新的事务Transaction session1.beginTransaction(); //提交事务,此处才是真正与数据库交互的语句 session1.getTransaction().commit(); HibernateConfigUtil.closeSession(); return studentinfolist; } }