hibernate连接mysql 反射_1.[精通Hibernate笔记]Hibernate简介

Hibernate是Java应用关系数据库之间的桥梁,负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供面向对象的数据访问API。

Hibernate配置文件

Hibernate从其配置文件中读取和数据库连接有关的信息,Hibernate的配置文件有两种形式,配置文件默认文件名hibernate.properties;另一种是XML格式的文件;还有一种是Java属性文件,采用键值对形式。hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect

hibernate.connection.driver_class=com.mysql.jdbc.Driver

hibernate.connection.url=jdbc:mysql://localhost:3306/SAMPLEDB

hibernate.connection.username=root

hibernate.connection.password=1234

hibernate.show_sql=true

创建持久化类

持久化类是指其实例需要被Hibernate持久化到数据库的类。持久化类通常都是域模型的实体域类。持久化类符合JavaBean规范,包含属性,以及与之对对应的getXXX()和setXXX()方法。

Hibernate不需要持久化类必须实现java.io.Serializable接口,但对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口。

在Java Web应用中,如果希望对HttpSession中存放的Java对象进行持久化,这个Java独享所属的类必须实现Serializable接口。

Hibernate要求持久化类必须提供一个不带参数的默认构造方法,在程序运行时,Hibernate运用Java反射机制,调用java.lang.reflect.Constructor.newInstance()方法来构造持久化类的实例。

创建对象-关系映射文件

在运行时,Hibernate将根据这个映射文件来生成各种SQL语句。

Java类型、Hibernate映射类型以及SQL类型之间的对应关系Java类型Hibernate类型SQL类型

java.lang.StringstringVARCHAR(n)

intintINT

charcharacterCHAR(n)

booleanbooleanBIT

byte[]binaryBLOG

java.sql.DatedateDATE

java.sql.TimestamptimestampTIMESTAMP

通过Hibernate API操作数据库

a3f20d5a785f37d44659358b37895acd.pngpublic class BussinessService {

public static SessionFactory sessionFactory;

static {

try {

Configuration config = new Configuration();

config.addClass(Customer.class);

sessionFactory = config.buildSessionFactory();

} catch (Exception e) {

}

}

public void deleteAllCustomers() throws Exception {

Session session = sessionFactory.openSession();

Transaction tx = null;

try {

tx = session.beginTransaction();

session.delete("from Customer as C");

tx.commit();

} catch (Exception e) {

if (tx != null)

tx.rollback();

throw e;

} finally {

session.close();

}

}

}

Hiberante初始化

创建一个Configuration类的实例,Configuration类的构造方法把默认文件路径下的hibernate配置文件中配置信息读入到内存;

调用Configuration类中的addClass(Customer.class)方法,该方法把映射信息读入到内存中;

调用Configuration类的buildSessionFactory()方法,该方法创建一个SessionFactory实例,并发Configuration对象包含的配置信息拷贝到SessionFactory对象的缓存中。SessionFactory达标一个数据库存储源,一个数据库存储源值需创建一个SessionFactory实例,SessionFactory不和Configuration关联,如果修改Configuration对象包含的配置信息不会对SessionFactory对象有任何影响。

访问Hibernate的Session接口

初始化结束后,调用SessionFactory实例的openSession()方法类获得Session实例,然后通过它执行数据库的操作,Session接口提供操作数据库的各种方法:

save()方法:把Java独喜爱那个保存到数据库

update()方法:更新数据库的Java队形

delete()方法:把Java对象从数据库中删除

load()方法:从数据库中加载Java对象

find()方法:从数据库中查询Java对象

Session是一个轻量级对象,通常每一个Session实例和一个数据库事务绑定,即没执行一个数据库事务,都必须先创建一个新的Session实例。如果事务执行出现异常,应撤销事务。无论事务是否执行成功,最后都应该关闭Session。

685d14067f348b101de9a58787467c6a.png

说明:笔记内容摘自《精通Hibernate:Java对象持久化技术详解》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值