spring-jdbc
Categories: Spring
spring原生操作数据库的方法
创建实体类
public class Dept {
private Integer id;
private String name;
}
创建映射Mapper类
public class DeptMapper implements RowMapper<Dept> {
@Override
public Dept mapRow(ResultSet resultSet, int i) throws SQLException {
Dept dept = new Dept();//对每个属性进行映射
dept.setName(resultSet.getString("NAME"));
dept.setId(resultSet.getInt("ID"));
return dept;
}
}
创建dao接口
public interface DeptDao {
void addDept(Dept emp);//添加
void updateDeptById(Dept dept);//修改
void deleteDeptById(Integer id);//删除
List<Dept> selectAllDept();//全查
List<Dept> selectDeptByName(String name);//条件查询
Dept selectDeptById(Integer id);//主键查询
}
创建dao实现类
public class DeptDaoImpl implements DeptDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
在spring-config.xml中配置bean
<bean id="deptDAO" class="dao.impl.DeptDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
增
@Override
public void addDept(Dept dept) {
String sql = "insert into DEPT(NAME) values (?)";
Object[] params = new Object[]{dept.getName()};
jdbcTemplate.update(sql, params);
}
删
@Override
public void deleteDeptById(Integer id) {
String sql = "delete from DEPT where ID=?";
Object[] params = new Object[]{id};
jdbcTemplate.update(sql, params);
}
改
@Override
public void updateDeptById(Dept dept) {
String sql = "update DEPT set NAME=? where ID=?";
Object[] params = new Object[]{dept.getName(), dept.getId()};
jdbcTemplate.update(sql, params);
}
查
@Override
public List<Dept> selectAllDept() {
String sql = "select ID,NAME from DEPT";
List<Dept> deptList = jdbcTemplate.query(sql, new DeptMapper());
return deptList;
}
条件查
@Override
public Dept selectDeptById(Integer id) {
String sql = "select ID,NAME from DEPT where ID =?";
Object[] params = new Object[]{id};
Dept dept = jdbcTemplate.queryForObject(sql, params, new DeptMapper());
return dept;
}