SpringJDBC操作技術總結——簡單版
阿新 • • 發佈:2019-02-04
通過SpringIOC技術, 實現資料庫的增刪改查
1.SpringJDBC
@Transactional public class StudentDAOImpl implements StudentDAO { /** * 依賴注入 * Spring 提供的 jdbc模板,操作資料表CRUD */ private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } //DAO實現層的操作程式碼 @Transactional(propagation=Propagation.REQUIRED,readOnly=false) @Override public int saveStudent(Student student) { //DBUtil int count = this.jdbcTemplate.update( "insert into T_STUDENT (STUNAME) VALUES (?)", new Object[]{student.getStuName()}); return count; } @Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true) @Override public Student getStudentById(Integer id) { return (Student) this.jdbcTemplate.queryForObject( "select * from T_STUDENT where stuid = ?", new Object[]{id}, new StudentRowMapper()); } //處理器 class StudentRowMapper implements RowMapper{ @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Student student = new Student(); //把Student結果集裡面的資料複製給 Student物件 student.setStuId(rs.getInt("stuid")); student.setStuName(rs.getString("stuname")); return student; } } }
2.Spring提供jdbc模板配置 (本次使用的是Oracle資料來源)
<!-- Spring提供 jdbc模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="oraclDataSource"></property>
</bean>
3.配置dbcp資料來源 模板配置
<!-- 配置Oracle的dbcp資料來源 --> <bean id="oraclDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <!-- & 轉義字元 其實就是代表一個& --> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="tiger"/> </bean> <!-- 配置mySQLd的dbcp資料來源 --> <bean id="mySqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <!-- & 轉義字元 其實就是代表一個& --> <property name="url" value="jdbc:mysql://localhost:3306/sxt"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean>
4.依賴注入給DAOImpl實現層
<!--DAO交給Spring管理 StudentDAOImpl -->
<bean id="studentDAOImpl" class="cn.springjdbc.dao.impl.StudentDAOImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>