淺談jdbcTemplate與mybatis
阿新 • • 發佈:2017-06-26
root true method per .get utf alibaba void tweene
Spring對數據庫的操作在jdbc上面做了深層次的封裝,也就是工具類 jdbcTemplate
作用:
1: 它提供了AOP式的事務管理
AOP式的事物管理:在以前的事務管理是要融合在邏輯代碼中的,在邏輯代碼中決定事務是否提交或者回滾,這樣很容易造成代碼難以維護,代碼冗余
但是使用spring的聲明式事務後,只需要在數據庫處理方法上註解事務,就可以對操作進行管理,事務的設置和邏輯代碼分開,容易維護。
<!--定義組件時 template需要一個數據連接池 來管理數據庫連接 數據連接池 有很多種 這裏用的是定義template組件 --> <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 註入連接信息 --> <property name="dataSource" ref="bonecp"> </property> </bean>
com.alibaba.druid.pool.DruidDataSource
<!-- DataSource 數據源 連接池 存儲管理大量的鏈接 流行的 dbcp c3p0,proxool --> <!-- 數據源配置, 使用 BoneCP 數據庫連接池 --> <bean id="bonecp" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 數據源驅動類可不寫,Druid默認會自動根據URL識別DriverClass --> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <!-- 基本屬性 url、user、password --> <property name="url" value="jdbc:mysql://localhost:3306/medicine?useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="root" /> <!-- 配置獲取連接等待超時的時間 --> <property name="maxWait" value="60000" /> <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- 配置監控統計攔截的filters --> <property name="filters" value="stat" /> </bean>
下一部是根據表 編寫實體類
實體類
package com.mxp.jdbc.entity; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String id; private String userName; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
還需要根據實體類寫一個rowmapper
註意這裏要繼承
org.springframework.jdbc.core.RowMapper,然後重寫maprow方法
package com.mxp.jdbc.entity; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; /** * 每個實體類都有這個封裝組件 * 將User記錄封裝成 User對象 * @author Administrator * */ public class UserRowMapper implements RowMapper<User>{ /** * arg1:第幾行記錄 */ @Override public User mapRow(ResultSet arg0, int arg1) throws SQLException { User user = new User(); user.setId(arg0.getString("id")); user.setUserName(arg0.getString("user_name")); return user; } }
淺談jdbcTemplate與mybatis