标签:des style blog class c code
1、直接通过JDBC API持久化实体域对象:
A、java.sql常用接口和类:
DriverManager:驱动程序管理器,负责创建数据库连接。
Connection:代表数据库连接。
Statement:负责执行SQL语句。
PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能。
ResultSet:代码SQL查询语句的查询结果集。
2、常用的ORM中间件:
Hibernate\Mybatis\Toplink\Torque\ObjectRelationBridge\FrontierSuite\Castor\FreeFROM\Expresso\JRelationFramework\VBSF\Jgrinder
3、Hibernate 核心接口:
A、Configuration类:用来读取Hibernate配置文件,并生成SessionFactory对象。在Hibernate
的启动过程中,Configuration
类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。
B、SessionFactory接口:产生Session实例工厂。SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。
C、Session接口:用来操作PO。它有get(),load(),save(),update()和delete()等方法用来对PO进行加载,保存,更新及删除等操作。它是Hibernate的核心接口。Session
对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。
D、Query接口:来对PO进行查询操。它可以从Session的createQuery()方法生成。Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
E、Criteria接口:Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。
F、Transaction接口:用来管理Hibernate事务,它主要方法有commit()和rollback(),可以从Session的beginTrancation()方法生成。
G、Callback
接口:当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback
接口会通知Hibernate去接收一个通知消息。Interceptor,Lifecycle,和Validatable接口。
H、策略接口:当你感觉到Hibernate 的某些功能不足,或者有某些缺陷时,你可以开发一个自己的策略来替换它,而你所要做的仅仅只是继承它的某个策略接口,然后实现你的新策略就可以了
主键的生成 (IdentifierGenerator 接口)
本地SQL语言支持 (Dialect 抽象类)
缓冲机制 (Cache 和CacheProvider 接口)
JDBC 连接管理 (ConnectionProvider接口)
事务管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)
ORM 策略 (ClassPersister 接口)
属性访问策略 (PropertyAccessor 接口)
代理对象的创建 (ProxyFactory接口)
I、用于扩展Hibernate的功能的接口:UserType,CompositeUserType
四、使用hibernate的一般步骤:
A、创建hibernate的配置文件。
B、创建持久化类。
C、创建对象-关系映射文件。
D、通过hibernate API编写访问数据库的代码。
五、第一个hibernate程序:
A、hibernate.properties:
|
1
2
3
4
5
6 |
hibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.connection.driver_class=com.mysql.jdbc.Driverhibernate.connection.username=roothibernate.connection.password=roothibernate.show_sql=true |
B、创建持久化类:
C、创建对象-关系映射文件:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<hibernate-mapping> <class name="mypack.Customer"
table="CUSTOMERS"> <id name="id"
column="ID"
type="long"> <generator class="increment"/> </id> <property name="name"
column="NAME"
type="string"
not-null="true"
/> <property name="email"
column="EMAIL"
type="string"
not-null="true"
/> <property name="password"
column="PASSWORD"
type="string"
not-null="true"/> <property name="phone"
column="PHONE"
type="int" /> <property name="address"
column="ADDRESS"
type="string"
/> <property name="sex"
column="SEX"
type="character"/> <property name="married"
column="IS_MARRIED"
type="boolean"/> <property name="description"
column="DESCRIPTION"
type="text"/> <property name="image"
column="IMAGE"
type="binary"/> <property name="birthday"
column="BIRTHDAY"
type="date"/> <property name="registeredTime"
column="REGISTERED_TIME"
type="timestamp"/> </class></hibernate-mapping> |
D、通过hibernate API编写访问数据库的代码:
攻城狮在路上(壹) Hibernate(二)--- 第一个hibernate程序,布布扣,bubuko.com
攻城狮在路上(壹) Hibernate(二)--- 第一个hibernate程序
标签:des style blog class c code
原文地址:http://www.cnblogs.com/tq03/p/3740177.html