首先比較一下JDBC的優缺點
JDBC的優點
直接底層操作
提供了很簡單
便捷的訪問數據庫的方法
跨平台性比較強
靈活性比較強
可以寫很復雜的SQL語句
JDBC的缺點
因為JAVA是面向對象的
JDBC沒有做到使數據能夠面向對象的編程
使程序員的思考仍停留在SQL語句上
操作比較繁瑣
很多代碼需要重復寫很多次
如果遇到批量操作
頻繁與數據庫進行交互
容易造成效率的下降
Jdbc是一個比較底層的東西 靈活寫SQL語句
注冊驅動
獲得連接
產生一個Statement
進行操作
返回數據ResultSet
new List對象
把ResultSet數據放入List過程中
A a = new A()
a
setXXX(rs
getString(
xxx
))
代碼比較繁瑣
純的JDBC是沒有緩存的
模型不匹配(阻抗不匹配)
Java面向對象語言
對象模型
其主要概念有
繼承
關聯
多態等
數據庫是關系模型
其主要概念有
表
主鍵
外鍵等
對象模型中對象與對象之間的關聯關系與關系模型中數據庫表之間的關系無法一一對應
對象模型中對象的繼承關系在關系模型中無法直接表示
對象模型中對象的等值性(equals)在關系模型中無法直接實現
對象模型中有關聯的對象之間的導航訪問在關系模型中無法直接實現
解決辦法
使用JDBC手工轉換
使用ORM(Object Relation Mapping對象關系映射)框架來解決
Hibernate是一個開源ORM框架
ORM全稱Object Relation Mapping
即對象關系映射
它是一種用來完成對象模型到關系模型的映射技術
就是把應用程序中的對象數據持久化到關系數據庫的表的一種技術
使用ORM( Object Relation Mapping )框架來解決
主流的ORM框架有JBoss公司的Hibernate
Oracle公司的TopLink
Apache組織的OJB
Sun公司的JDO
簡單的說
ORM能利用面向對象的思想開放基於關系型數據庫的應用程序
它的主要工作是將對象數據保存到關系數據庫的表中
以及將關系數據庫表中數據讀入到對象中
下載地址
使用
版本
解壓獲取必需類庫文件
將下載目錄/hibernate
jar和/lib下的hibernate運行時必須的包加入classpath中
安裝配置
配置文件hibernate
cfg
xml和hibernate
properties
XML和properties兩種
這兩個文件的作用一樣
提供一個即可
推薦XML格式
下載目錄/etc下是示例配置文件
可以在配置文件指定
數據庫的URL
用戶名
密碼
JDBC驅動類
方言等
啟動時Hibernate會在CLASSPATH裡找這個配置文件
映射文件(hbm
xml
對象模型和關系模型的映射)
在/eg目錄下有完整的hibernate示例
步驟
新建java項目
並加入相應的jar包
及jdbc驅動
創建持久化類
准備數據庫表
創建配置文件 hibernate
cfg
xml
創建映射文件 xxx
hbm
xml
創建測試文件
nnection
url 表示要鏈接的數據庫地址
nnection
driver_class 表示要鏈接的數據庫的驅動類
nnection
username 要連接的數據庫的用戶名
nnection
password 要連接的數據庫的密碼
Hibernate
dialect 表示要使用的數據庫的類型
org
hibernate
dialect
MySQL
Dialect mysql數據庫
org
hibernate
dialect
Oracle
Dialect oracle數據庫
org
hibernate
dialect
SQLServerDialect SQLServer數據庫
hibernate
hbm
ddl
auto
validate:加載hibernate時驗證創建表結構
update:加載hibernate時自動更新數據庫結構
如果表存在不用創建
如果不存在就創建
create:每一次加載hibernate時都創建表結構
create
drop:加載hibernate時創建
退出時刪除
<hibernate
mapping package=
com
hbsi
domain
>
<class name=
User
table=
user
>
<id name=
id
>
<generator class =
native
/>
</id>
<property name=
name
/>
<property name=
birthday
type=
datetime
/>
</class>
</hibernate
mapping>
<hibernate
configuration>
<session
factory name=
foo
>
<property name=
nnection
driver_class
>com
mysql
jdbc
Driver</property>
<property name=
connection
url
>jdbc:mysql:///test</property>
<property name=
connection
username
>root</property>
<property name=
connection
password
>root</property>
<property name=
dialect
>org
hibernate
dialect
MySQLDialect</property>
<property name=
connection
password
>root</property>
<property name=
show_sql
>true</property>
<property name=
hbm
ddl
auto
>update</property>
<mapping resource=
com/hbsi/domain/User
hbm
xml
/>
</session
factory>
</hibernate
configuration>
這些都是配置文件
還需要創建一個domain類
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28383.html