Hibernate

本文详细介绍Hibernate框架的基本概念,包括配置及代码实现。从下载jar包、创建数据库表结构、编写JavaBean实体类,到配置映射文件及核心配置文件,最后通过示例代码演示如何保存数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、Hibernate框架的概述

    Hibernate是对象关系映射框架ORM框架,他对JDBC进行了轻量级的对象封装。

2、HIbernate入门配置及基础代码

2.1、下载Hibernate5、jar包、配置文件和文档

    Hibernate5,点击打开链接

    hibernate5、jar包、配置文件和文档

    Hibernate5文档结构:lib目录下放的是jar包,jpa文件下下是Hibernate5的规范jar包,required目录下是必须的jar包,optional目录下是可选的jar包;project目录中提供一些开源的小项目,etc目录下放的是配置文件。eclipse查看源码直接导入zip文件或者链接根目录即可。

2.2、入门项目

入门步骤缩略:

1. 下载Hibernate框架的开发包,把jar包导入到web项目中:
    * MySQL驱动包、Hibernate开发的必须要有的jar包、日志的jar包2. 编写数据库和表结构
3. 编写JavaBean,以后不使用基本数据类型,使用包装类
4. 编写映射的配置文件(核心),先导入开发的约束,里面正常配置标签
5. 编写hibernate的核心的配置文件,里面的内容是固定的
6. 编写Hibernate入门代码

第一步:下载jar包,把jar包导入到web项目中。

  • 数据库驱动包(mysql-connection-java);
  • Hibernate5的lib下的required下的包(hibernate-core是hibernate核心包,hibernate-commons-annotations是注解,jpa是规范,javassist是动态代理的包,改变字节码文件,帮助加强,dom4j解析xml);
  • 日志包slf4j-api(是接口),log4j(是实现),slf4j-log4j(是桥梁)。


第二步:创建表结构。先导入数据库,觉得哪里有问题就新建一个小表进行验证。注意:标点符号一定要是英文的;整条语句以分号结尾;括号内结尾不要用逗号;primary key不要放在后面,放在第一个字段;表名,字段不要用引号。删除表和数据库用drop

CREATE TABLE shuzk_customer (
  shuzk_id BIGINT(32) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '客户编号(主键)',
  shuzk_name VARCHAR(32) NOT NULL COMMENT '客户名称(公司名称)',
  shuzk_user_id BIGINT(32) DEFAULT NULL COMMENT '负责人id',
  shuzk_create_id BIGINT(32) DEFAULT NULL COMMENT '创建人id',
  shuzk_source VARCHAR(32) DEFAULT NULL COMMENT '客户信息来源',
  shuzk_industry VARCHAR(32) DEFAULT NULL COMMENT '客户所属行业',
  shuzk_level VARCHAR(32) DEFAULT NULL COMMENT '客户级别',
  shuzk_linkman VARCHAR(64) DEFAULT NULL COMMENT '联系人',
  shuzk_phone VARCHAR(64) DEFAULT NULL COMMENT '固定电话',
  shuzk_mobile VARCHAR(16) DEFAULT NULL COMMENT '移动电话'
  
) ENGINE=INNODB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
第三步:编写JavaBean实体类。JavaBean类在domain目录下
public class Customer {
	private long shuzk_id;
	private String shuzk_name;
	private long shuzk_user_id;
	private long shuzk_create_id;
	private String shuzk_source;
	private String shuzk_industry;
	private String shuzk_level;
	private String shuzk_linkman;
	private String shuzk_phone;
	private String shuzk_mobile;
//crtl+shift+s+++s   创建get/set方法
//crtl+shift+s+++r   创建String方法
}

第四步:创建类和表结构的映射

1. 在JavaBean所在的包下创建映射的配置文件
    * 默认的命名规则为:实体类名.hbm.xml
    * 在xml配置文件中引入约束(引入的是hibernate3.0的dtd约束,不要引入4的约束)
        <!DOCTYPE hibernate-mapping PUBLIC 
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

2. 如果不能上网,编写配置文件是没有提示的,需要自己来配置
    * 先复制http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd --> window -->         preferences --> 搜索xml --> 选择xml catalog -->         点击add --> 现在URI --> 粘贴复制的地址 --> 选择location,选择本地的DTD的路径

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.shuzk.domain.Customer" table="shuzk_customer">
                <!-- 配置id 
			见到name属性,JavaBean的属性
			见到column属性,是表结构的字段
		-->
		<id name="shuzk_id" column="shuzk_id">
                        <!-- 主键的生成策略 -->
			<generator class="native"></generator>
		</id>

		<!-- 配置其他的属性 -->
		<property name="shuzk_name" column="shuzk_name"></property>
		<property name="shuzk_user_id" column="shuzk_user_id"></property>
		<property name="shuzk_create_id" column="shuzk_create_id"></property>
		<property name="shuzk_source" column="shuzk_source"></property>
		<property name="shuzk_industry" column="shuzk_industry"></property>
		<property name="shuzk_level" column="shuzk_level"></property>
		<property name="shuzk_linkman" column="shuzk_linkman"></property>
		<property name="shuzk_phone" column="shuzk_phone"></property>
		<property name="shuzk_mobile" column="shuzk_mobile"></property>
	</class>
</hibernate-mapping>

第五步:编写Hibernate核心的配置文件

1. 在src目录下,创建名称为hibernate.cfg.xml的配置文件
2. 在XML中引入DTD约束
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

3. 打开:资料/hibernate-release-5.0.7.Final/project/etc/hibernate.properties,可以查看具体的配置信息 
    * 必须配置的4大参数                 
        #hibernate.connection.driver_class com.mysql.jdbc.Driver
        #hibernate.connection.url jdbc:mysql:///test
        #hibernate.connection.username gavin
        #hibernate.connection.password
    * 数据库的方言(必须配置的)
        #hibernate.dialect org.hibernate.dialect.MySQLDialect
    * 可选的配置
        #hibernate.show_sql true
        #hibernate.format_sql true
        #hibernate.hbm2ddl.auto update
    * 引入映射配置文件(一定要注意,要引入映射文件,框架需要加载映射文件)
        * <mapping resource="com/itheima/domain/Customer.hbm.xml"/>             

4. 具体的配置如下
<?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>
<!-- 记住:先配置SessionFactory标签,一个数据库对应一个SessionFactory标签 -->
<session-factory>
        <!-- 必须要配置的参数有5个,4大参数,数据库的方言 -->
	<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/shuzk_ssh</property>
	<property name="hibernate.connection.username">root</property>
	<property name="hibernate.connection.password">root</property>
	<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- 可选配置 -->
	<!-- 显示SQL语句,在控制台显示 -->
	<property name="hibernate.show_sql">true</property>
	<!-- 格式化SQL语句 -->
	<property name="hibernate.format_sql">true</property>
	<!-- 生成数据库的表结构 
		update:如果没有表结构,创建表结构。如果存在,不会创建,添加数据-->
	<property name="hibernate.hbm2ddl.auto">update</property>

	<!-- 映射配置文件,需要引入映射的配置文件 -->
	<mapping resource="com/shuzk/domain/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>

第六步:编写Hibernate入门代码

1. 具体的代码如下
    /**
     * 测试保存客户
     */
    @Test
    public void testSave(){
        // 先加载配置文件
        Configuration config = new Configuration();
        // 默认加载src目录下的配置文件
        config.configure();
        // 创建SessionFactory对象
        SessionFactory factory = config.buildSessionFactory();
        // 创建session对象
        Session session = factory.openSession();
        // 开启事务
        Transaction tr = session.beginTransaction();
        // 编写保存代码
        Customer c = new Customer();
        // c.setShuzk_id(Shuzk_id);   已经自动递增
        c.setShuzk_name("测试名称");
        c.setShuzk_mobile("110");
        // 保存客户
        session.save(c);
        // 提交事务
        tr.commit();
        // 释放资源
        session.close();
        factory.close();
    }

技术分析请进入我的csdn点击打开链接,参考我的博客:

Hibernate配置文件分析

Hibernate常用的接口和类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值