FrameWorks-框架

概念

作用		
	[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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章