概念
作用
[1]抽取公共問題
[2]開發專注業務
[3]降低維護成本
[4]層級邏輯複用
分層
數據訪問層
業務邏輯層
界面層
分類
[1]Activiti 工作流
[2]Structs 持久層
[3]Hibernate 持久層
[4]Mybatis 持久層
[5]SpringData 持久層
[6]Spring 服務層
[7]SpringMVC 表現層
JDBC
定義 Java DataBase Connectivity
屬性 SQL執行API
流程
[1]加載驅動 Class.forName("com.mysql.jdbc.Driver").newInstance();
[2]獲取DB連接 Connection connection = DriverManger.getConnection( url,username,password);
[3]執行SQL PrepareStatement ps = connection.prepareStatement(SQL);
ps.execute();
[4]處理結果集 ResultSet rs = ps.getResultSet();
[5]關閉DB連接
整合-c3p0
[1]獲取數據源 ComboPooledDataSource(); [ c3p0-config.xml ]
[2]獲取DB連接
[3]執行SQL
[4]處理結果集
[5]關閉連接
安全_防止SQL注入 PrepareStatement
區別
[1]直接編譯Statement SQL使用參數 單次連接有效 每次編譯
[2]預先編譯PreparedStatement SQL使用佔位符 整個DB有效 一次編譯,每次傳參
DBUtils
屬性 JDBC訪問框架_輕量級別
條件 JavaBean屬性與DB字段必須一致
組成
[一]QueryRunner
[二]ResultSetHandler
[1]ArrayHandler 結果集第一行,轉換數組
[2]ArrayListHandler 結果集每一行,轉換數組,存放List
[3]BeanHandler 結果集第一行,封裝JavaBean
[4]BeanListHandler 結果集每一行,封裝JavaBean,存放List
[5]ScalarrHandler 單行單列的結果集
[三]c3p0
[1]連接數據源 默認掃描 classpath目錄的"c3p0-config.xml"
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
[2]創建查詢實例 封裝獲取數據源、預編譯PreparedStatement、處理結果集
QueryRunner queryRunner = new QueryRunner( C3P0Util.getDataSource() );
[3]執行查詢 封裝釋放資源 [ 放回連接池與DB的連接 ]
queryRunner.query( SQL,new ScalarHandler() ) ;
[4]執行操作
queryRunner.update( SQL,, );
安全_防止SQL注入 PrepareStatement
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mhg</property>
<property name="user">root</property>
<property name="password">k9718</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
</c3p0-config>
Hibernate
屬性 全自動ORMORM數據訪問層框架
原理 解析xml,反射調用JavaBean方法
組成
[1]*.java 映射類 描述數據庫表結構
[2]*.hbm.xml 映射文件 描述數據庫表與映射類的關係 屬性:字段;類:表;實例:記錄
[3]*.cfg 配置文件 數據庫連接信息
[4]*.xml 配置文件 數據庫連接信息
[5]*.properties 配置文件 數據庫連接信息
MyBatis
屬性 半自動ORM數據訪問層框架_輕量級別
原理 解析xml,反射調用JavaBean方法
條件 JavaBean屬性與DB字段不必一致,可以設置別名
內核 JDBC
組成
[1]配置文件 管理數據源、事務
[2]映射文件 管理SQL、JavaBean、映射輸入參數、輸出參數
功能
[1]SQL動態生成 配置文件標籤拼接
[2]SQL位置分離 配置文件與代碼分離
[3]SQL集中管理 SQLMapper
[4]緩存功能 一級緩存sqlSession級別、二級緩存mapper級別
[5]延遲加載
安全_防止SQL注入 #{}沒有注入問題,${}存在注入問題
說明 資源文件mapper.xml,修改後無須重新編譯
Spring
SpringMVC
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20191012145358840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RkaG1iYmtseWsyMDE4,size_16,color_FFFFFF,t_70)