hibernate如何使用?使用hibernate有哪些好处?

阳光 2022-01-19 14:44:40 java常见问答 6961

Hibernate是一个开放源代码的对象关系映射框架,可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。那hibernate如何使用?下面来我们就来给大家讲解一下。

1.创建一个项目

可以Java项目中使用

可以在Web项目中使用都可以

2.引入必须的jar包

数据库的驱动包

Hibernate开发必须的Jar包

3.建表

CREATE TABLE `customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',
`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

4.创建ORM类

可以用lombok插件自动生成set和get方法。

5.创建Hibernate的核心配置文件

通常都叫hibernate.cfg.xml

创建完毕后, 也有一个约束要引入

在org.hibernate包当中可以找到对应的dtd configuration.dtd

属性名记不住

在目录提供的project当中有一个etc

在etc当中 有一个hibernate.properties的文件打开

打开后,会看到连接各种数据库时需要的属性参数

需要配置方言

不同的数据库,使用的语言不一样

在hibnate当中,sql语句会自动帮你生成

设置方言,就是设置自动生成的语言是哪个数据库当中的sql

配置核心配置文件要加载哪一个映射

映射的路径就是上面创建的跟表相对应的配置文件

把全路径的点,要换成斜杠

配置演示

<!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://localhost:3307/hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">abcd</property>
<!-- 配置Hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 打印SQL -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL -->
<property name="hibernate.format_sql">true</property>
<!-- 自动创建表 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--加载映射文件 -->
<mapping resource="com/xzh/hibernate/domain/Customer.hbm.xml" />
</session-factory></hibernate-configuration>

6.创建映射关系

通过XML的配置文件来进行配置

这个配置文件可以任意命名

类名.hbm.xml

别人一看,就能够知道是哪个类的映射文件

在xml当中引入dtd

在hibernate-core.jar包当中

在org.hibernate包当中可以找到对应的dtd

打开mapping.dtd

把里面的约束复制一份,放到xml当中

建立类与表的映射

1.建立表与类的映射

2.建立主键的映射

3.建立普通属性的映射

配置演示

<?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="com.xzh.hibernate.domain.Customer" table="customer">
<!--建立类属性哪一个是主键 还要跟数据库当中主键进行对应 -->
<id name="cust_id" column="cust_id">
<generator class="native" />
</id>
<!--建立类中的普通属性与数据库当中字段进行关联 -->
<property name="cust_name" column="cust_name" />
<property name="cust_source" column="cust_source" />
<property name="cust_industry" column="cust_industry" />
<property name="cust_level" column="cust_level" />
<property name="cust_phone" column="cust_phone" />
<property name="cust_mobile" column="cust_mobile" />
</class></hibernate-mapping>

7.创建类执行

@Testpublic void test1()
{
    // 1.加载配置文件
    Configuration configure = new Configuration()
        .configure();
    // 2.创建sessionFactory --JDBC链接池
    SessionFactory sessionFactory = configure.buildSessionFactory();
    // 3.获取session --连接对象
    Session session = sessionFactory.openSession();
    Customer customer = new Customer();
    customer.setCust_name("myxq");
    customer.setCust_level("2");
    // 4.保存
    session.save(customer);
    // 5.释放资源
    session.close();
    sessionFactory.close();
}

使用hibernate有哪些好处?

1.对JDBC访问数据库的代码进行了轻量级封装,简化了数据访问层繁琐重复性的代码,减少了内存消耗,加快了运行效率;

2.是一个基本JDBC的主流持久化框架,很大程度上简化了DAO层的编码工作;

3.性能非常好, 映射灵活性比较好,支持多关系数据库,一对一,一对多,多对多的各种复杂关系;

4.可扩展性强,源代码及API开放,当本身功能不够用时,可以自行编码进行扩展;

总之使用hibernate的好处还是很多的,hibernate是工作中经常会遇见的,对于hibernate的使用大家一定要学会!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

hibernate是orm框架吗?hibernate开发环境是怎样的?

java异常处理代码是什么?java异常类型有哪些?

spring框架怎么搭建?为什么使用Spring框架?