Hibernate 连接 Mysql 写入数据

hibernate 版本 : 3.6.10

mysql 驱动 :mysql-connector-java-8.0.23.jar

mysql 版本: 8.0.22

 

1. eclipse 中创建 Dynamic Web Project

  File -> new -> other -> Web -> Dynamic Web Project

 

2. 在mysql数据库中创建 hibernate 库 & user 表, user 表中字段及类型与 User 实体类相对应

  代码如下:

create database hibernate;
use hibernate;

CREATE TABLE IF NOT EXISTS `user` (
    `id` INT AUTO_INCREMENT,
    `name` VARCHAR(50),
     PRIMARY KEY ( `id` )
)

  注:A:使用的是 navicat 数据库工具,付费软件,可免费试用14天。

       打开navicat -> 连接 -> Mysql -> 连接名(自行定义) -> 密码框输入mysql数据库密码 -> 点击测试连接 -> 连接成功 -> 即可点击确定进行保存连接。

       连接名上右键 -> 点击新建查询 -> 填入上方SQL代码,即可创建数据库&表

    B:使用MySql Conmand Line Client 工具创建:

       

       创建成功后可以使用命令: desc user;查看表结构

       

 

3. 将hibernate所需jar包和mysql-connector-java-xxx.jar 粘贴到 WebContent->WEB-INF->lib 目录下。

    antlr-2.7.6.jar

    commons-collections-3.1.jar

    dom4j-1.6.1.jar

    hibernate-jpa-2.0-api-1.0.1.Final.jar

    hibernate3.jar

    javassist-3.12.0.GA.jar

    jta-1.1.jar

    mysql-connector-java-8.0.23.jar

    ojdbc6.jar

    slf4j-api-1.6.1.jar

    slf4j-api-1.7.28.jar

    slf4j-simple-1.6.1.jar

    jar包下载地址: https://wwr.lanzous.com/i0kBooataeh  密码:1234

 

4. eclipse中src目录下创建grant包 & grant包下创建User实体类

public class User{

    private Integer id;

    private String name;

    //add getter & setter

    public Integer getId() {

      return id; 

    }

    public void setId( Integer id ) {

      this.id = id;

    }

    public String getName() {

      return name;

    }

    public void setName(String name) {

      this.name = name;

    }

  }

 

5. 在grant包下创建 User.hbm.xml 文件

内容如下:

<?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>
    <!-- name属性对应类名,table属性对应表名 -->
    <class name="grant.User" table="user">
        <!-- name代表的是User类中的id属性,column代表的是user表中的主键id -->
        <id name="id" column="id">
            <!-- 主键生成策略 -->
            <generator class="native" />
        </id>
        <!-- 其他属性使用property标签映射 -->
        <property name="name" column="name" type="java.lang.String" />
    </class>
</hibernate-mapping>

 

6. 在src目录下创建 hibernate.cfg.xml 文件

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- 指定方言 -->
        <property name="dialect">
            org.hibernate.dialect.MySQL5Dialect
        </property>
        <!-- 链接数据库url -->
        <property name="connection.url">
              <![CDATA[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=utf-8]]>
        </property>
        <!-- 连接数据库的用户名 -->
        <property name="connection.username">
            root
        </property>
        <!-- 数据库的密码 -->
        <property name="connection.password">
            XXX(此处填写mysql数据库密码)
        </property>
        <!-- 数据库驱动 -->
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <!-- 显示sql语句 -->
        <property name="show_sql">
            true
        </property>
        <!-- 格式化sql语句 -->
        <property name="format_sql">true</property>
        <!-- 映射文件配置 -->
        <mapping resource="grant/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>

 

7. 为web项目添加Junit测试

  web项目名上右键 -> Build Path -> Configure Build Path -> 点击 Library -> Add Library -> JUnit -> Next -> Finish -> Apply -> Apply and close

 

8. 在src目录下创建 test 包 & test 包下创建HibernateTest 类

  

package test;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;

import grant.User;

public class HibernateTest {
    
    @Test
    public void testInsert() {
        // 创建Configuration对象并加载hibernate.cfg.xml配置文件
        Configuration config = new Configuration().configure();
        // 获取SessionFactory
        SessionFactory sessionFactory = config.buildSessionFactory();
        // 从sessionFactory 获取 Session
        Session session = sessionFactory.openSession();
        // 事务开启
        Transaction transaction = session.beginTransaction();
        // 对User类持久化操作
        User user = new User();
        user.setName("zhangsan");
        user.setAge(21);
        user.setGender("男");
        // 将对象(User)保存到表中
        session.save(user);
        // 事务提交
        transaction.commit();
        // 关闭session & sessionFactory
        session.close();
        sessionFactory.close();
    }
}

 

9. web项目名称上右键 -> Run As -> JUnit Test

  控制台显示,即为成功

     

  数据库可视化工具中查看:数据添加成功

    

   mysql Conmand Line Client中查看方式:

    

 

posted @ 2021-04-20 11:31  asdjuice  阅读(175)  评论(0)    收藏  举报