hibernate java web_JavaWeb学习之Hibernate入门
一、Hibernate概述1、什么是HibernateHibernate是一个开放源代码的ORM(对象关系关系映射)框架ORM:Object Relational Mapping(对象关系映射)。将Java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表。2、Hibernate具有以下几点优势:①、Hibernate对JDBC访问数据库的代码做了轻量级封装,简化了数
一、Hibernate概述
1、什么是Hibernate
Hibernate是一个开放源代码的ORM(对象关系关系映射)框架
ORM:Object Relational Mapping(对象关系映射)。将Java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表。
2、Hibernate具有以下几点优势:
①、Hibernate对JDBC访问数据库的代码做了轻量级封装,简化了数据访问村层繁琐的重复性代码,并且减少了内存消耗,加快了运行效率。
②、Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,很大程度简化了DAO(Data Access Object,数据访问对象)层编码工作。
③、Hibernate的性能非常好,映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系
④、可扩展性强,由于源码的开源及API的开发,当本身功能不够用时,可用自行编码进行扩展。
二、Hibernate使用
1、下载Hibernate的开发环境
2、解压Hibernate
documentation:Hibernate开发的文档
lib:Hibernate开发包
required:Hibernate开发的必须的依赖包
optional:Hibernate开发的可选的jar包
project:Hibernate提供的项目
3、创建一个使用Hibernate的项目
3.1、引入jar包
①、数据库驱动包
②、Hibernate开发的必须的jar包(required)
③、Hibernate日志记录包
3.2、创建表
CREATE TABLEcst_customer (
cust_idbigint NOT NULL IDENTITY(1,1) ,
cust_namevarchar(32) NOT NULL,
cust_sourcevarchar(32) DEFAULT NULL,
cust_industryvarchar(32) DEFAULT NULL,
cust_levelvarchar(32) DEFAULT NULL,
cust_phonevarchar(64) DEFAULT NULL,
cust_mobilevarchar(16) DEFAULT NULL)ON [PRIMARY]
3.3、创建实体类
public classCustomer {privateLong cust_id;privateString cust_name;privateString cust_source;privateString cust_industry;privateString cust_level;privateString cust_phone;privateString cust_mobile;
}
3.4、创建映射
映射需要通过XML的配置文件来完成,这个配置文件可以任意命名。尽量统一命名规范(类名.hbm.xml)
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
注意:com.microsoft.sqlserver.jdbc.SQLServerException:对象名xxx无效原因:指定catalog = "数据库名" schema =“模式”(正常情况下不用指定catalog、schema)不正
3.5、创建数据库配置文件
/p>
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://localhost:1433;databaseName=HibernateDB;
sa
AAA@111
org.hibernate.dialect.SQLServerDialect
true
true
注意:com.microsoft.sqlserver.jdbc.SQLServerException:对象名xxx无效的原因:hibernate.connection.url中的数据库名databaseName=不正
3.6、编写测试代码
importorg.hibernate.Transaction;importorg.hibernate.cfg.Configuration;importorg.junit.jupiter.api.Test;/*** @Title: HibernateTest
* @Description:
*@author: marw
* @date 2020/11/03 14:03:48*/
public classHibernateTest {
@Testpublic voiddemo1() {//1.加载Hibernate的配置文件Hibernate.cfg.xml
Configuration configuration=newConfiguration().configure();//2.获取SessionFactory对象 类似JDBC连接池
SessionFactory factory=configuration.buildSessionFactory();//3.获取Session对象 类似JDBC中Connection
Session session=factory.openSession();//4.开启事务(Hibernate版本5不用手动开启事务,要兼容版本3需要手动开启事务)
Transaction transaction=session.beginTransaction();//5.编写代码
Customer customer=newCustomer();
customer.setCust_name("zhang");
session.save(customer);//6.提交事务
transaction.commit();//7.资源释放
session.close();
}
}
更多推荐
所有评论(0)