使用hibernate实现对mysql数据库的增删改查


前言

使用hibernate实现对mysql数据库的增删改查


一、CRUD前的hibernate配置

1.导入maven依赖

<dependencies>
        <!--junit依赖,用于单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--添加hibernate的核心依赖-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.0.12.Final</version>
        </dependency>
        <!--添加mysql的jdbc驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
        </dependency>
        <!--添加log4j依赖-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

2.配置配置文件

配置文件这东西一般都是hibernate.cfg.xml命名的,其他的命名方式没试过,感兴趣的可以去搜一下
该文件放在src目录下,其他地方可能会报异常,文件找不到

<?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="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate?serverTimezone=UTC</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>

        <!-- SQL dialect -->
        <!--使用MYSQL方言,告诉hibernate数据库类型-->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!--事务管理方式,即每个线程一个事务-->
        <property name="current_session_context_class">thread</property>
        <!--是否在控制台显示执行的sql语句-->
        <property name="show_sql">true</property>
        <!--是否会自动更新数据库的表结构,不需要创建表,Hibernate会自动去创建表结构-->
        <property name="hbm2ddl.auto">update</property>
        <!--去识别UsersEntity实体类-->
        <mapping resource="mapper/Student.hb.xml" />
    </session-factory>

</hibernate-configuration>

3.映射实体类和数据库表关系

一般的命名规则是实体类ming.hbn.xml
该文件位置没有特别要求,我一般都是放在resource下面的mapper里面,在hibernate.hbn.xml里面进行文件路径映射即可

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!--映射实体类Student-->
<hibernate-mapping package="entity">
    <class name="Student" table="student">
        <!--属性id,映射表里的字段id-->
        <id name="id" column="id">
            <!--id的自增长方式采用数据库的本地方式-->
            <generator class="native"></generator>
        </id>
        <property name="name" />
        <property name="source" />
    </class>

</hibernate-mapping>

4.创建测试类

package util;

import entity.Student;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * @author :LSS
 * @description: hibernate的增删改查
 * @date :2020/12/25 10:08
 */
public class Test {
    public static void main(String[] args) {
        //获取SessionFactory
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        //获取Session
        Session session = sessionFactory.openSession();
        //开启事务
        session.beginTransaction();

        //get查询方式
        Student student = session.get(Student.class, 2);
        System.out.println("student = " + student);
        //load查询方式
        Student load = session.load(Student.class, 1);
        System.out.println("load = " + load);

        //插入数据
        Student xz = new Student(5,"小庄", 150);
        session.save(xz);

        //更改数据
        student.setName("cl");
        session.update(student);
        Student student1 = session.get(Student.class, 2);
        System.out.println("student1 = " + student1);

        //删除数据
        session.delete(load);

        //事务提交
        session.getTransaction().commit();
        //关闭事务,SessionFactory
        session.close();
        sessionFactory.close();
    }
}


总结

这只是最基本的hibernate操作mysql的用法,后面会有更多深入的用法!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVC(Model-View-Controller)是一种软件架构模式,常用于构建用户界面并处理用户交互的程序。在使用MVC访问MySQL数据库完成增删改查操作时,我们可以遵循以下步骤: 1. 模型(Model)层:模型负责与数据库进行交互,包括建立数据库连接、执行SQL语句以及处理数据库返回的结果。我们可以使用MySQL提供的官方驱动程序或者一些开源框架(如Hibernate、MyBatis)来简化数据库操作。 2. 视图(View)层:视图负责展示数据和接收用户的输入,对于数据库操作的结果,可以通过视图将其展示给用户。在MVC中,视图通常被定义为一些用户界面组件,如网页、移动应用程序的界面等。 3. 控制器(Controller)层:控制器负责接收来自视图层的用户输入,并将其转发给模型层进行相应的数据库操作。控制器还可以对模型层返回的数据进行处理,再将处理后的结果返回给视图层展示给用户。在MVC中,控制器可以看作是模型和视图之间的桥梁。 通过按照上述步骤使用MVC访问MySQL数据库进行增删改查操作,我们可以实现以下功能: - 增加数据:用户在视图层中输入数据,控制器将其传递给模型层对数据库进行增加操作。 - 删除数据:用户在视图层中选择要删除的数据,控制器将其传递给模型层对数据库进行删除操作。 - 修改数据:用户在视图层中选择要修改的数据并输入修改后的内容,控制器将其传递给模型层对数据库进行修改操作。 - 查询数据:用户在视图层中选择相应的查询条件,控制器将其传递给模型层对数据库进行查询操作,并将查询结果返回给视图层展示给用户。 通过使用MVC访问MySQL数据库完成增删改查操作,可以使代码结构更加清晰、可维护性更高,同时也能更好地分离数据层和用户界面层之间的耦合度,提供更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值