《Hibernate上课笔记》----class2----Hibernate的增删改查操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 《Hibernate上课笔记》----class2----Hibernate的增删改查操作

一:使用Hibernate对数据库进行增删改查操作

准备环境 eclipse+mysql5.3+hibernate5.3

Hibernate配置文件


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password"></property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <mapping resource="com/hibernate/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

Hibernate工具类

public class HibernateUtil {
      private static SessionFactory factory;
      private  static StandardServiceRegistry registry;
     //得到sessionFactory
      static {
        try {
          //1.获取注册的register
            registry=new StandardServiceRegistryBuilder().configure().build();
             //2.得到factory
           factory =new MetadataSources(registry).buildMetadata().buildSessionFactory();
        }catch(Exception e) {
          e.printStackTrace();
          StandardServiceRegistryBuilder.destroy(registry);         
        }
      }
      //获得session对象
      public static Session openSession() {
        return factory.openSession();
      }
      //关闭sessionFactory
      public static void closeFactory() {
        factory.close();
      }
}

用户实体类:

package com.hibernate.entity;
public class User {
  private Integer id;
  private String userName;
  private String passWord;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getUserName() {
    return userName;
  }
  public void setUserName(String userName) {
    this.userName = userName;
  }
  public String getPassWord() {
    return passWord;
  }
  public void setPassWord(String passWord) {
    this.passWord = passWord;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", userName=" + userName + ", passWord=" + passWord + "]";
  }
}

用户配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hibernate.entity">
    <class name="User" table="t_user">
        <id name="id" type="int" >
           <column name="id"></column>
           <generator class="native"></generator>
        </id>
        <property name="userName" column="user_name" type="java.lang.String">
        </property>
       <property name="passWord" type="java.lang.String"></property>      
    </class>
</hibernate-mapping>

1.Hibernate增加操作

//持久化操作
  public static void saveUser(User user) {
    Transaction tx = null;
    Session session = null;
    try {
      //1.获得session对象
        session=HibernateUtil.openSession();
      //2.获得要保存的实体对象
      //3.保存实体
       tx=session.beginTransaction();
      session.save(user);
      tx.commit();
      //4.关闭session
    }catch(Exception e) {
      tx.rollback();
    }finally {
      session.close();
    }
  }

2.Hibernate查询操作

  public static User getUserById(int id) {
    Session session = null;
    User user = null;
    try {
      //1.获取session
      session=HibernateUtil.openSession();
      //2.去查询
       user=session.get(User.class, id);//Hibernate会包装成数据类型
      //3.关闭session
      session.close();
    }catch(Exception e) {
      e.printStackTrace();
    }finally {
      session.close();
    }
    return user;
  }

3.Hibernate修改操作

public static void updateUser(User user) {
    //先查询出用户然后再更新
    Session session = null;
    Transaction tx=null;
    try {
      //1.先获取session对象
      session=HibernateUtil.openSession();
      //2.对数据进行更改
      tx=session.beginTransaction();
      user.setPassWord("456");
      //3.进行保存更新操作
      session.update(user);
      tx.commit();
    }catch(Exception e){
      e.printStackTrace();
      tx.rollback();
    }finally {
      //4.session关闭
      session.close();
    }
  }

4.Hibernate删除操作

public static void deleteUser(User user) {
    //先查询到对象后再删除
    //1.打开session
    //2.删除用户
    //3.关闭session
        Session session = null;
        Transaction tx=null;
        try {
          //1.先获取session对象
          session=HibernateUtil.openSession();
          //2.对数据进行更改
          tx=session.beginTransaction();      
          session.delete(user);
          tx.commit();
        }catch(Exception e){
          e.printStackTrace();
          tx.rollback();
        }finally {
          //4.session关闭
          session.close();
        }
  }
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 关系型数据库 数据库连接
《Hibernate上课笔记》---class1---Hibernate简介
《Hibernate上课笔记》---class1---Hibernate简介
71 0
《Hibernate上课笔记》---class1---Hibernate简介
|
XML Java 数据库连接
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
92 0
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
|
XML Java 数据库连接
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
67 0
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
60 0
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
91 0
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
107 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
118 0
|
Java 数据库连接 数据库
hibernate常见异常笔记(11)
hibernate常见异常笔记(11)
156 0
|
Java 数据库连接
hibernate常见异常笔记(10)
hibernate常见异常笔记(10)
104 0
|
Java 数据库连接
hibernate常见异常笔记(9)
hibernate常见异常笔记(9)
125 0