本片博客是基于前边的另一篇博客写的,实体类是User,有三个属性,具体网址是:

 

本篇博客主要是写hibernate的增删改查,hibernate的增删改比较简单,但是查比较麻烦,这里只介绍几种比较简单的方法

package cn.heima_hello;



import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;


public class test01 {

    
    public void fun1() {
    //1.读取配置文件
        Configuration conf = new Configuration().configure();
    //2.根据数据创建factory对象
        SessionFactory sessionFactory = conf.buildSessionFactory();
    //3.获取操作数据库的session对象
        Session session = sessionFactory.openSession();
    //4.操作数据库
        User user = new User();
        user.setUsername("Tom");
        user.setPassword("1234");
        session.save(user);
    //5.关闭资源
        session.close();
        sessionFactory.close();
    }
    
    //对数据库进行修改
    public void fun2() {
        //1.读取配置文件
                Configuration conf = new Configuration().configure();
            //2.根据数据创建factory对象
                SessionFactory sessionFactory = conf.buildSessionFactory();
            //3.获取操作数据库的session对象
                Session session = sessionFactory.openSession();
                Transaction ts = session.beginTransaction();
            //4.操作数据库
            User user = (User) session.get(User.class, 2);
            //在查询结果上进行修改
           user.setUsername("汤姆");
           session.update(user);
           ts.commit();
    }
    
    //删除对象
    public void fun3() {
        //1.读取配置文件
                Configuration conf = new Configuration().configure();
            //2.根据数据创建factory对象
                SessionFactory sessionFactory = conf.buildSessionFactory();
            //3.获取操作数据库的session对象
                Session session = sessionFactory.openSession();
                
                Transaction ts = session.beginTransaction();
                
                //-----------------------------------------------------------
                //4.操作数据库
                User user = new User();
                
                user.setId(3);
                //在查询结果上进行修改
               session.delete(user);
                //-----------------------------------------------------------
               ts.commit();
    }
    
    
    //查询语句,调用get方法查询
    public void fun4() {
        //1.读取配置文件
        Configuration conf = new Configuration().configure();
    //2.根据数据创建factory对象
        SessionFactory sessionFactory = conf.buildSessionFactory();
    //3.获取操作数据库的session对象
        Session session = sessionFactory.openSession();
        
        Transaction ts = session.beginTransaction();
        
        //-----------------------------------------------------------
        //4.操作数据库
        User user = new User();
        
        user.setId(3);
        //在查询结果上进行修改
       session.delete(user);
        //-----------------------------------------------------------
       ts.commit();
    }
    
    
    //查询,load方法
    public void fun5() {
        //1.读取配置文件
        Configuration conf = new Configuration().configure();
    //2.根据数据创建factory对象
        SessionFactory sessionFactory = conf.buildSessionFactory();
    //3.获取操作数据库的session对象
        Session session = sessionFactory.openSession();
        
        Transaction ts = session.beginTransaction();
        
        //-----------------------------------------------------------
        //4.操作数据库
        User user = new User();
        
        user.setId(3);
        //在查询结果上进行修改
       session.delete(user);
        //-----------------------------------------------------------
       ts.commit();
    }
    
    
    //查询所有的对象
    public void fun6() {
        //1.读取配置文件
        Configuration conf = new Configuration().configure();
    //2.根据数据创建factory对象
        SessionFactory sessionFactory = conf.buildSessionFactory();
    //3.获取操作数据库的session对象
        Session session = sessionFactory.openSession();
        
        Transaction ts = session.beginTransaction();
        
        //-----------------------------------------------------------
        //4.操作数据库
       Query query = session.createQuery("from User");
        
        List<User> list = query.list();
        //在查询结果上进行修改
       System.out.println(list.get(3).getUsername());
        //-----------------------------------------------------------
       ts.commit();
    }
    
    
    //查询所有的对象
        public void fun7() {
            //1.读取配置文件
            Configuration conf = new Configuration().configure();
        //2.根据数据创建factory对象
            SessionFactory sessionFactory = conf.buildSessionFactory();
        //3.获取操作数据库的session对象
            Session session = sessionFactory.openSession();
            
            Transaction ts = session.beginTransaction();
            
            //-----------------------------------------------------------
            //4.操作数据库
           Criteria criteria = session.createCriteria(User.class);
            
            List<User> list = criteria.list();
            //在查询结果上进行修改
           System.out.println(list.get(3).getUsername());
            //-----------------------------------------------------------
           ts.commit();
        }
    
        //查询所有对象
        //查询所有的对象
        //支持原生的sql语句
                public void fun8() {
                    //1.读取配置文件
                    Configuration conf = new Configuration().configure();
                //2.根据数据创建factory对象
                    SessionFactory sessionFactory = conf.buildSessionFactory();
                //3.获取操作数据库的session对象
                    Session session = sessionFactory.openSession();
                    
                    Transaction ts = session.beginTransaction();
                    
                    //-----------------------------------------------------------
                    //4.操作数据库
                  SQLQuery query = session.createSQLQuery("select * from t_user");
                  query.addEntity(User.class);
                  List<User> list = query.list();
                  
                    //在查询结果上进行修改
                   System.out.println(list.get(3).getUsername());
                    //-----------------------------------------------------------
                   ts.commit();
                }
    //get方法,一旦被调用,立刻发送sql语句查询
    //load方法,调用时并没有查询sql语句,只有当该对象被调用时才会进行查询数据
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        test01 test01 = new test01();
         test01.fun7();
    }

}

注:1.本篇博客是基于上一篇的博客,所以这里没有写映射还有连接数据库

       2.测试类中调用那个方法,就是使用的那种方法,读者可以一一作测试

       3.如有疑问,可以评论