Hibernate简单实例:数据库驱动配置及数据的输入

前言:本次使用的hibernate框架为idea自动创建的版本:5.3.7.Final   本机的mysql版本为 8.0.11 

下载的mysql 驱动程序版本为 mysql-connector-java-8.0.11.jar

一、Hibernate开发的环境搭建

1.使用idea工具创建hibernate项目

然后一路next,按照自己的需要填写项目名称,项目存放的路径。

随后创建成功hibernate项目。

 

2、加入数据库驱动。下面例子中主要采用MySQL数据库进行演示,所以也要导入MySQL的JDBC驱动

注:此外需要注意到的是数据库的时区设置,mysql默认使用的时区为美国时间,如果不修改在连接数据库时可能会出现 

The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone的错误,解决方法如下:

2.1进入cmd程序,使用命令 mysql -u root -p 登录进数据库(注意需要在mysql/bin目录下)

2.2使用命令show variables like '%time_zone%';查看当前的系统时区设置,默认如图:

2.3 使用命令set global time_zone='+8:00';设置时区

2.4随后再次查看时区设置,如图为设置成功。(如果还是System的话,关掉重新打开输入密码show一下,一般就是+08:00了

 

3、idea已经自动生成了hibernate.cfg.xml配置文件,根据需要做自己的修改。

 

二.配置文件的书写

以下附上相关的配置文件

1.hibernate.cfg.xml(此为核心配置文件)

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

       "-//Hibernate/Hibernate Configuration DTD//EN"

       "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

   <session-factory>

       <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_first_test</property>

       <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

       <property name="connection.username">root</property>

       <property name="connection.password">123123123</property>

 

       <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>

       <property name="hibernate.hbm2ddl.auto">update</property>

       <mapping resource="User.hbm.xml"/>

 

       <!-- DB schema will be updated if needed -->

       <!-- <property name="hbm2ddl.auto">update</property> -->

   </session-factory>

</hibernate-configuration>

注意图中标红位置代码,若书写不准确可能会出现Table 'hibernate_first_test.user' doesn't exist的错误

图中标红处应该去hibernate-core包下的org.hibernate.dialect中寻找适合自己mysql版本的类名

2.user.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="User">

       <id name="userId">

          <generator class="native"></generator>

       </id>

       <property name="userName"/>

       <property name="passWord"/>

   </class>

</hibernate-mapping>

注意文中标红的配置,如果不写可能会出现

ids for this class must be manually assigned before calling save() 的错误

3.简单的user类(javaBean)

public class User {
    private Integer userId;
    private String userName;
    private String passWord;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    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;
    }

}

4.启动程序类(注意导包为hibernate下的包)

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class TestApp {
    public static void main(String[] args) {
        User user = new User();
        user.setUserName("yu");
        user.setPassWord("123");
        Configuration config = new Configuration().configure();
        SessionFactory factory = config.buildSessionFactory();
        Session session = factory.openSession();
        Transaction transaction = session.beginTransaction();
        session.save(user);
        transaction.commit();
        session.close();
        factory.close();
    }
}

5.右键run此main函数就可以连接到数据库并且创建表了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值