Hibernate5.x Eclipse搭建

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 今天写一个简单的hibernate框架搭建流程首先准备好我们的jar包,这里附上一个jar包链接hibernate下载下载完jar后新建一个简单的java工程,结构如下项目结构接下来编写我们的hibernate的配置文件hibernate.

今天写一个简单的hibernate框架搭建流程

首先准备好我们的jar包,这里附上一个jar包链接

hibernate下载

下载完jar后新建一个简单的java工程,结构如下

img_032bea112c2647d24683a586e7354939.jpe
项目结构

接下来编写我们的hibernate的配置文件hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 该声明可以到org/hibernate/hibernate-configuration-3.0.dtd查看-->
<!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.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 数据库的地址 -->
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
        <!-- 链接数据库的用户名 -->
        <property name="hibernate.connection.user">root</property>
        <!-- 密码 -->
        <property name="hibernate.connection.password">root</property>
        <!-- 是否显示SQL语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 链接的编码 -->
        <property name="connection.characterEncoding">utf8</property>
        <!-- hibernate使用的方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 映射文件 -->
        <mapping resource="com/education/bean/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>

下面列举一些常用的属性以及一些常用的方言设置

属性名 作用
hibernate.dialect 为所选数据库使用其SQL
hibernate.connection.driver_class JDBC驱动
hibernate.connection.url 链接地址
hibernate.connection.pool_size 连接池的数量
hibernate.connection.autocommint 自动提交模式

方言设置(可以在org/hibernate/dialect中找到)

数据库 属性
SQL Server 2000 org.hibernate.dialect.SQLServerDialect
SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect
MySQL org.hibernate.dialect.MySQLDialect
Oracle org.hibernate.dialect.OracleDialect

创建一个简单的User类,定义了三个属性以及他们的get/set方法

package com.education.bean;

public class User {
    
    private int id;
    
    private String name;
    
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password
                + "]";
    }

    
}

我们要做的是将数据库的表与实体类相连接,所以需要创建一个映射文件,映射文件的命名方式为 className.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 可以在org/hibernate/hibernate-mapping-3.0.dtd中找到 -->
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<!-- 指明为哪个包下的,如果此处的package没有指明,则下面的class中需要全名 -->   
<hibernate-mapping package="com.eduask.bean">
    <!-- 规定该类对应哪张表 -->
    <class name="User" table="user">
        <!-- 主键使用id标签,name为属性名与column列名相对应 -->
        <id name="id" type="int" column="id">
            <!-- 主键增长设置 -->
            <generator class="native"></generator>
        </id>
    <!-- 其余属性映射 type是java类型与数据库类型的对应设置 -->
    <property name="name" type="string" column="username"/>
    <property name="password" type="string" column="passwd"></property>     
    </class>

</hibernate-mapping>

附上自增长类型表与对应类型表

生产器 说明
increment 从数据库取出主键的最大值,然后递增1
identity 使用数据库的自增长策略
sequence 只能在支持序列的数据中使用,如oracle
native 由hibernate根据数据库自动选择identity/hilo/sequence中的任意一种
assigned 在外部生成,在save前必须指定一个
java类型 映射类型 sql类型
int/Integer int/Integer integer
long/Long long bigint
short/Short short samllint
byte/Byte byte tinyint
float/Float float float
double/Double double double
String string varchar
boolean/Boolean true/false char(1)('T'/'F')
Date date date
Date/Time time time
Date/Timestamp timestamp timestamp
Clob clob clob
Blob blob blob

最后编写一个测试类来测试一下我们的hibernate框架是否搭建成功

package com.education.controller;

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

import com.education.bean.User;

public class IndexController {

    public static void main(String[] args) {
        
        //configuration  主配置类   负责读取hibernate运行的底层信息
        //sessionFactory 会话工厂   充当数据源,负责创建session对象
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        //session         会话     应用程序与数据库的一次交互,包含了一般的CURD方法
        Session session = sessionFactory.openSession();
        //实例化出一个对象
        User user = new User();
        user.setName("隔壁老王");
        user.setPassword("123123");
        //使用事务管理
        Transaction transcation = session.getTransaction();
        //开始事务
        transcation.begin();
        //此时数据不会真的保存到数据库中
        session.save(user);
        //提交事务后,数据才会真正的保存到数据库中
        transcation.commit();
    }
}

控制台已经将sql语句答应出来了

img_7874a6cc09be4061f46fce0883428949.jpe
sql语句

最后看一下数据库中是否添加成功

img_e3489297869d5006a3618683a317bede.jpe
数据库.jpg

到此为止,hibernate的框架搭建完毕。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
Java 应用服务中间件 Apache
Java Web入门之开发环境的搭建(包括下载Tomcat和 Eclipse for Java EE)
Java Web入门之开发环境的搭建(包括下载Tomcat和 Eclipse for Java EE)
228 0
Java Web入门之开发环境的搭建(包括下载Tomcat和 Eclipse for Java EE)
|
Java Android开发
在用 Eclipse 搭建 SAP Commerce Cloud 调试环境时,错误和正确的 buildfile
在用 Eclipse 搭建 SAP Commerce Cloud 调试环境时,错误和正确的 buildfile
114 0
在用 Eclipse 搭建 SAP Commerce Cloud 调试环境时,错误和正确的 buildfile
|
Java Android开发 Spring
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象
146 0
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象
|
Java Android开发 数据安全/隐私保护
spring练习,使用Eclipse搭建的Spring开发环境,属性注入通过构造方法方式实现,模拟用户的正常登录。
spring练习,使用Eclipse搭建的Spring开发环境,属性注入通过构造方法方式实现,模拟用户的正常登录。
116 0
spring练习,使用Eclipse搭建的Spring开发环境,属性注入通过构造方法方式实现,模拟用户的正常登录。
|
Java Android开发 Spring
sping练习,在Eclipse搭建的Spring开发环境中,使用工厂方式创建Bean对象,将创建的Bean对象输出到控制台。
sping练习,在Eclipse搭建的Spring开发环境中,使用工厂方式创建Bean对象,将创建的Bean对象输出到控制台。
230 0
sping练习,在Eclipse搭建的Spring开发环境中,使用工厂方式创建Bean对象,将创建的Bean对象输出到控制台。
|
Java Android开发 Spring
spring练习,使用Eclipse搭建的Spring开发环境,使用set注入方式为Bean对象注入属性值并打印输出。
spring练习,使用Eclipse搭建的Spring开发环境,使用set注入方式为Bean对象注入属性值并打印输出。
152 0
spring练习,使用Eclipse搭建的Spring开发环境,使用set注入方式为Bean对象注入属性值并打印输出。
|
Java 关系型数据库 MySQL
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
381 0
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
|
SQL Java 数据库连接
eclipse搭建Mybatis
eclipse搭建Mybatis
330 0
|
IDE 开发工具 Android开发
搭建Eclipse 2020安卓开发环境
搭建Eclipse 2020安卓开发环境
141 0
搭建Eclipse 2020安卓开发环境
|
IDE 开发工具 Android开发
Python IDE之Pydev: 基于Eclipse搭建python的编译环境(Eclipse+pydev)简介、安装、使用的详细攻略
Python IDE之Pydev: 基于Eclipse搭建python的编译环境(Eclipse+pydev)简介、安装、使用的详细攻略