Hibernate(5.3.7) 增删改查

Hibernate(5.3.7) 增删改查

  1. 项目结构

    在这里插入图片描述

  2. 创建实体类

    Student.java

    public class Student implements Serializable {
        private int id;
        private String name;
        private int age;
    	...//getter setter
    }
    
  3. 创建映射

    Student.hbm.xml

    <?xml version='1.0' encoding='utf-8'?>
    <!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="learn.hibernate.entity.Student" table="stu_tab" >
            <id name="id" column="stu_id">
                <generator class="native"/>
            </id>
            <property name="name" column="stu_name"/>
            <property name="age" column="stu_age"/>
        </class>
    </hibernate-mapping>
    
  4. 配置

    hibernate.cfg.xml

    <hibernate-configuration>
        <session-factory>
            
            <!--配置数据库连接-->
            <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
            <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
    
            <property name="connection.username">root</property>
            <property name="connection.password">123</property>
          
            <!--显示sql语句-->
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
          
            <!--设置映射-->   
            <mapping resource="learn/hibernate/entity/Student.hbm.xml"/>
            <!-- DB schema will be updated if needed -->
            <!-- <property name="hbm2ddl.auto">update</property> -->
        </session-factory>
    </hibernate-configuration>
    
  5. 测试类

    • @Test
      public void add() {
          Configuration cfg = new Configuration();
          cfg.configure("hibernate.cfg.xml");
       
          SessionFactory factory = cfg.buildSessionFactory();
          Session session = factory.openSession();
          Transaction t = session.beginTransaction();
      
          Student student = new Student();
          student.setName("a");
          student.setAge(1);
      
          try{
              session.save(student);
              t.commit();
          }catch (Exception e){
              e.printStackTrace();
              t.rollback();
          }finally {
              session.close();
          }
      }
      
      Hibernate: 
          insert 
          into
              stu_tab
              (stu_name, stu_age) 
          values
              (?, ?)
      
    • 单条记录查

      @Test
      public void query() {
          Configuration cfg = new Configuration().configure();
          SessionFactory factory = cfg.buildSessionFactory();
          Session session = factory.openSession();
          Transaction t = session.beginTransaction();
          Student student = session.get(Student.class, 1);
          t.commit();
          session.close();
          System.out.println("successfully query: name[" + student.getName() + "]。");
      }
      
      Hibernate: 
          select
              student0_.stu_id as stu_id1_0_0_,
              student0_.stu_name as stu_name2_0_0_,
              student0_.stu_age as stu_age3_0_0_ 
          from
              stu_tab student0_ 
          where
              student0_.stu_id=?
      successfully query: name[a]
    • 列表查

      @Test
      public void queryList() {
          Configuration cfg = new Configuration().configure();
          SessionFactory factory = cfg.buildSessionFactory();
          Session session = factory.openSession();
          Transaction t = session.beginTransaction();
          @SuppressWarnings("unchecked")
          List<Student> students = session.createQuery("from Student").getResultList();
          int i = 0;
          for (Student student :students ) {
              System.out.println("queryUserList[" + i + "] name :[" + student.getName() + "]");
              i++;
          }
          t.commit();
          session.close();
      }
      
      Hibernate: 
          select
              student0_.stu_id as stu_id1_0_0_,
              student0_.stu_name as stu_name2_0_0_,
              student0_.stu_age as stu_age3_0_0_ 
          from
              stu_tab student0_ 
          where
              student0_.stu_id=?
              
      successfully query: name[a]
      
    • 删除

      @Test
      public void delete() {
          Configuration cfg = new Configuration().configure();
          SessionFactory factory = cfg.buildSessionFactory();
          Session session = factory.openSession();
          Transaction t = session.beginTransaction();
          Student student = new Student();
          student.setId(2);
          session.delete(student);
          t.commit();
          session.close();
      
      }
      
      Hibernate: 
          delete 
          from
              stu_tab 
          where
              stu_id=?
      
    • 更新

      @Test
      public void update() {
          Configuration cfg = new Configuration().configure();
          SessionFactory factory = cfg.buildSessionFactory();
          Session session = factory.openSession();
          Transaction t = session.beginTransaction();
      
          Student student = new Student();
          student.setId(3);
          student.setName("s");
          student.setAge(19);
      
          session.update(student);
          t.commit();
          session.close();
      
      }
      
      Hibernate: 
          update
              stu_tab 
          set
              stu_name=?,
              stu_age=? 
          where
              stu_id=?
      

猜你喜欢

转载自blog.csdn.net/Hi_maxin/article/details/83658042