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常用的接口和类