<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          zd-web-utils基于 Spring-JDBC 的 ORM 簡單封裝

          聯(lián)合創(chuàng)作 · 2023-09-30 01:57

          一直以來關(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>

          詳細介紹:https://my.oschina.net/donger11/blog/994435

          瀏覽 13
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧洲-级毛片内射八十老太婆 | 黄色影片在线观看 | 九九视频黄片 | 成人A级免费视频 | 东京热卡一卡二卡三卡四卡100 |