一、JDBC_Template模板的使用
1.1 需要的支持jar包
1.2 JDBC 实现查询功能
1.2.1 设计思想
一、搭建框架:dao、srtvice、dmo 、pojo;
二、建立关系:主要就是后台进行配置;
三、实际使用Spring提供的jdbc;
1.2.1 实际搭建
- 首先按照分层架构的使用正常的写出几个类与其对应的接口。注意聚合问题
设计demo中注意如下设计
//更换运行器
@RunWith(SpringJUnit4ClassRunner.class)
//指定核心配置文件的位置
@ContextConfiguration(locations = "classpath:/xml/beans04.xml")
public class JDBCTemplateDemo01 {
@Autowired
private EmpService empService;
@Test
public void test01(){
List<Emp> empList = empService.getEmpList();
for (Emp emp : empList) {
System.out.println(emp);
}
}
}
- 配置文件:注意在进行数据注入时要在对应的类中插入set方法。
```xml
4. JDBC的实际使用:首先在持久层聚合jdbcTemplate
**查询使用:jdbcTemplate.query **<br />**增删改使用:jdbcTemplate.update**
```xml
@Override
public List<Emp> getEmpList() {
//注意 new RowMapper<Emp>()后会自动生成后面的内容
return jdbcTemplate.query("select * from user", new RowMapper<Emp>() {
@Override
public Emp mapRow(ResultSet resultSet, int i) throws SQLException {
Emp emp = new Emp();
int id = resultSet.getInt("id");
String username = resultSet.getString("username");
String password =resultSet.getString("password");
emp.setId(id);
emp.setUsername(username);
emp.setPassword(password);
return emp;
}
});
}
1.3 JDBC 实现添加功能
首先在测试类中加入要添加的数据
@Test
public void test02(){
Emp emp = new Emp();
//注意id作为主键不能重复,否则会报错的
emp.setId(7);
emp.setUsername("小王");
emp.setPassword("123");
boolean b = empService.addEmp(emp);
System.out.println(b?"添加成功":"添加失败");
}
其次在持久层连接数据库进行添加注意格式与返回值
@Override
public boolean addEmp(Emp emp) {
//注意返回值的类型
//注意insert语句是不加逗号的。
return jdbcTemplate.update("insert into user(id,username,password) values(?,?,?)",
emp.getId(),emp.getUsername(),emp.getPassword())==1? true: false;
}
1.4 JDBC 实现修改功能
@Test
public void test03(){
Emp emp = new Emp();
emp.setUsername("小王");
emp.setPassword("12345");
emp.setId(7);
boolean b = empService.updateEmpById(emp);
System.out.println(b?"修改成功":"修改失败");
}
@Override
public boolean updateEmpById(Emp emp) {
return jdbcTemplate.update("update user set id = ?,username=?,password=? where id =?",
emp.getId(),emp.getUsername(),emp.getPassword(),emp.getId())==1? true: false;
}