发表于: 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操作;


返回列表 返回列表
评论

    分享到