版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39459229/article/details/81094940
通过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>