zd-web-utils基于 Spring-JDBC 的 ORM 簡單封裝
一直以來關(guān)于持久層框架選擇的討論都比較多,網(wǎng)上查了下比較,大致得出的結(jié)果:hibernate太繁,springjdbc太簡, mybatis 剛好,可見如今選用mybatis的勢頭也越來越明顯。畢竟mybatis有DAO模版,強大的代碼生成工具,這些都是在做開發(fā)的時候很容易提高效率的。
但我個人偏向喜歡用Jdbctemplate,Jdbctemplate運行期更高效、內(nèi)嵌Spring框架中、支持基于AOP的聲明式事務(wù),并且方便擴展,但是相信使用過Jdbctemplate的朋友應(yīng)該知道,需要寫一大堆的Rowmapper,而且開發(fā)完成后,由于sql是手寫的,很可能會出現(xiàn)低級錯誤,這些都是Jdbctemplate的弊端,稍微有心的朋友這里肯定會選擇自己封裝一次。
現(xiàn)在我分享一下自己實現(xiàn)的基于mysql Jdbctemplate 的上層封裝,我已將自己的代碼上傳到了maven中央庫,如果覺得不錯,可以引用。
<dependency> <groupId>com.github.11dong</groupId> <artifactId>codes-common</artifactId> <version>1.0.1</version> </dependency>
項目若使用此jar包無需做過多配置,項目數(shù)據(jù)源配置按正常的Jdbctemplate配置即可:
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 初始化連接大小 -->
<property name="initialSize" value="20" />
<!-- 連接池最大使用連接數(shù)量 -->
<property name="maxActive" value="100" />
<!-- 連接池最小空閑 -->
<property name="minIdle" value="20" />
<!-- 獲取連接最大等待時間 -->
<property name="maxWait" value="60000" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="33" />
<!-- 用來檢測有效sql <property name="validationQuery" value="${validationQuery}"
/> <property name="testOnBorrow" value="false" /> <property name="testOnReturn"
value="false" /> <property name="testWhileIdle" value="true" /> -->
<!-- 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打開removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分鐘 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 關(guān)閉abanded連接時輸出錯誤日志 -->
<property name="logAbandoned" value="true" />
<!-- 監(jiān)控數(shù)據(jù)庫 -->
<property name="filters" value="mergeStat" />
</bean>
<!-- 數(shù)據(jù)源 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
評論
圖片
表情
