Hibernate学习笔记Word下载.docx

上传人:b****2 文档编号:15279652 上传时间:2022-10-29 格式:DOCX 页数:72 大小:101.23KB
下载 相关 举报
Hibernate学习笔记Word下载.docx_第1页
第1页 / 共72页
Hibernate学习笔记Word下载.docx_第2页
第2页 / 共72页
Hibernate学习笔记Word下载.docx_第3页
第3页 / 共72页
Hibernate学习笔记Word下载.docx_第4页
第4页 / 共72页
Hibernate学习笔记Word下载.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

Hibernate学习笔记Word下载.docx

《Hibernate学习笔记Word下载.docx》由会员分享,可在线阅读,更多相关《Hibernate学习笔记Word下载.docx(72页珍藏版)》请在冰豆网上搜索。

Hibernate学习笔记Word下载.docx

session-factory>

(设置显示Hibernate产生的SQL语句)

<

propertyname="

show_sql"

true<

/property>

(设置MySQL的SQL语法的方言)

hibernate.dialect"

org.hibernate.dialect.MySQLDialect<

(设置MySQL的驱动程序)

hibernate.connection.driver_class"

org.gjt.mm.mysql.Driver

(设置MySQL的数据库路径、用户名、密码)

hibernate.connection.url"

jdbc:

mysql:

///java<

hibernate.connection.username"

root<

hibernate.connection.password"

lizhiwei<

(设置当数据库要保存的表不存在时,就新建表)

hibernate.hbm2ddl.auto"

update<

(设置对象与数据库表的关系映射文件)

mappingresource="

vo/User.hbm.xml"

/>

/session-factory>

/hibernate-configuration>

(3)此配置文件一般放在项目的src目录下。

(注意:

在项目中要加入MySQL的驱动jar包)

3.编写实例类与对象-关系映射文件

(1)一个实例类对象就是数据库表里的一条记录,关系映射文件就指明了类的成员变量与数据库字段间的关系以及该类对象保存在哪个表中。

(2)实例类User.java:

publicclassUser{

privatelongid;

privateStringname;

privateintage;

privatecharsex;

publiclonggetId(){

returnid;

}

publicvoidsetId(longid){

this.id=id;

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicintgetAge(){

returnage;

publicvoidsetAge(intage){

this.age=age;

publicchargetSex(){

returnsex;

publicvoidsetSex(charsex){

this.sex=sex;

@Override

publicStringtoString(){

return"

User[id="

+id+"

name="

+name+"

age="

+age+"

sex="

+sex+"

]"

;

}

(3)User.java对应的User.hbm.xml文件:

DOCTYPEhibernate-mappingPUBLIC

-//Hibernate/HibernateMappingDTD3.0//EN"

//www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"

(package的值是User.java所在的包路径)

hibernate-mappingpackage="

vo"

(name的值是实例的类名,table的值是对应的数据库表名)

classname="

User"

table="

(name的值是实例的主键名)

idname="

id"

(定义了主键值生成器)

<

generatorclass="

native"

/generator>

/id>

(定义实例属性与数据库表字段的对应关系)

name"

age"

sex"

/class>

/hibernate-mapping>

(4)User.hbm.xml文件与User.java文件放在同一目录下。

4.编写测试类

(1)测试类Hibernate.java如下:

packagetest;

importorg.hibernate.Session;

importorg.hibernate.SessionFactory;

importorg.hibernate.Transaction;

importorg.hibernate.cfg.Configuration;

importorg.hibernate.service.ServiceRegistry;

importorg.hibernate.service.ServiceRegistryBuilder;

importvo.User;

publicclassHibernate{

publicstaticvoidmain(String[]args){

Configurationcfg=newConfiguration();

cfg.configure();

ServiceRegistrysr=newServiceRegistryBuilder()

.applySettings(cfg.getProperties())

.buildServiceRegistry();

SessionFactorysf=cfg.buildSessionFactory(sr);

Sessions=sf.openSession();

Transactiontx=s.beginTransaction();

Useru=newUser();

u.setName("

KKKK"

);

u.setAge(20);

u.setSex('

f'

s.save(u);

mit();

s.close();

System.out.println("

OK"

(2)运行Hibernate.java即可在数据库里保存一条记录!

Hibernate核心知识

1.创建Session对象操作数据库

(1)创建Session对象的过程

•创建Configuration对象使用new关键字,如:

Configurationcfg=newConfiguration()。

•读取Hibernate配置文件(hibernate.cfg.xml),有如下三种方式:

//读取默认名称的配置文件

cfg.configure("

hibernate.cfg.xml"

//读取指定名称的配置文件

cfg.setProperty("

"

org.hibernate.dialect.MySQLInnoDBDialect"

.setProperty("

hibernate.connection.datasource"

java:

comp/env/jdbc/test"

.setProperty("

hibernate.order_updates"

true"

//程序设置配置属性

•读取对象—关系映射文件,有如下两种方式:

cfg.addResource("

Student.hbm.xml"

).addResource("

Teacher.hbm.xml"

//读取配置文件

cfg.addClass(vo.Student.class).addClass(vo.Teacher.class);

//读取类

•得到SessionFactory,得到了该对象就可以得到很多Session对象,有如下两种方式:

.applySettings(cfg.getProperties())

.buildServiceRegistry();

SessionFactorysf=cfg.buildSessionFactory(sr);

SessionFactorysessions=cfg.buildSessionFactory();

//此种方式已过时

•得到Session对象的两种方式以及区别:

Sessions=sf.getCurrentSession();

//要配置"

hibernate.current_session_context_class"

如果前一个Session未close,从上下文得到Session,不一定会new一个新的。

建议使用。

Sessions=sf.openSession();

//一定会new一个新的Session

注意:

getCurrentSession()方法创建的Session对象提交事务时就会自动关闭Session,不必调用close()方法。

而openSession()不会,需要调用close()方法关闭Session。

•得到一个Session后就可以对数据进行增删查改了。

可以把一个Session看成一个事务。

(2)事务的开始与提交

Transactiontx=s.beginTransaction();

//开始事务

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1