发表于: 2018-01-15 00:48:44
1 656
今天完成
1.jdbcTemplate实现crud操作;
照网上的示例,先搞一遍:
数据访问接口文件
public interface DAO {
public void setDataSource(DataSource dataSource);
public void create(String name,Integer id);
public Student getStudent(Integer id);
public List<Student> listStudents();
public void delete(Integer id);
public void update(Integer id,Integer age);
}
实体类文件
package DataBassConnection2;
public class Student {
private Integer age;
private String name;
private Integer id;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
public class StudentMapper implements RowMapper<Student> {
@Override
public Student mapRow(ResultSet rs, int i) throws SQLException {
Student student=new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("nameq"));
student.setAge(rs.getInt("age"));
return student;
}
}
DAO 的实现类文件
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.util.List;
public class StudentJDBCTemplate implements DAO{
private DataSource dataSource;
private JdbcTemplate jdbcTemplateObject;
@Override
public void setDataSource(DataSource dataSource) {
this.dataSource=dataSource;
this.jdbcTemplateObject=new JdbcTemplate(dataSource);
}
@Override
public void create(String name, Integer age) {
String SQL="insert into Student(name,age) values(?,?)";
jdbcTemplateObject.update(SQL,name,age);
System.out.println("Creat Record Name="+name+"Age="+age);
return;
}
@Override
public Student getStudent(Integer id) {
String SQL="select * from Student where id=?";
Student student=jdbcTemplateObject.queryForObject(SQL,new Object[]{id},new StudentMapper());
return student;
}
@Override
public List<Student> listStudents() {
String SQL="delete from Student ";
List <Student> students=jdbcTemplateObject.query(SQL,new StudentMapper());
return students;
}
@Override
public void delete(Integer id) {
String SQL="delete from Student where id=?";
jdbcTemplateObject.update(SQL,id);
System.out.println("Deleted Record with ID="+id);
return;
}
@Override
public void update(Integer id, Integer age) {
String SQL="update Student set age=? where id=?";
jdbcTemplateObject.update(SQL,age,id);
System.out.println("Updated Record with ID="+id);
return;
}
}
运行后抛出以下异常:
Exception in thread "main" java.lang.ClassCastException: org.springframework.jdbc.datasource.DriverManagerDataSource cannot be cast to DataBassConnection2.StudentJDBCTemplate
at DataBassConnection2.MainTest.main(MainTest.java:11)
可能是照着网上的实例敲,没有进行实际情况的更改造成的。看来还是得学习后自己写代码
埋下一个坑,明天填上
明天计划
1·解决今天遇到的问题;
2.对自己数据库中的数据进行操作练习;
遇到问题
——
收获
练习了jdbcTemplate实现crud操作;
评论