博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
峰Spring4学习(7)spring对JDBC的支持
阅读量:6296 次
发布时间:2019-06-22

本文共 11438 字,大约阅读时间需要 38 分钟。

第一节:

工程结构:

1)student.java:

package com.cy.model;public class Student {    private int id;    private String name;    private int age;        public Student() {        super();        // TODO Auto-generated constructor stub    }    public Student(String name, int age) {        super();        this.name = name;        this.age = age;    }        public Student(int id, String name, int age) {        super();        this.id = id;        this.name = name;        this.age = age;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";    }        }
View Code

2)StudentDao.java/StudentDaoImpl.java:

package com.cy.dao;import java.util.List;import com.cy.model.Student;public interface StudentDao {    public int addStudent(Student student);        public int updateStudent(Student student);        public int deleteStudent(int id);        public List
findStudents();}
View Code
package com.cy.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowCallbackHandler;import com.cy.dao.StudentDao;import com.cy.model.Student;public class StudentDaoImpl implements StudentDao {        private JdbcTemplate jdbcTemplate;        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {        this.jdbcTemplate = jdbcTemplate;    }    @Override    public int addStudent(Student student) {        String sql = "insert into t_student values (null, ?, ?)";        Object params[] = new Object[]{student.getName(), student.getAge()};        return jdbcTemplate.update(sql, params);    }    @Override    public int updateStudent(Student student) {        String sql = "update t_student set name=?, age=? where id = ?";        Object params[] = new Object[]{student.getName(), student.getAge(), student.getId()};        return jdbcTemplate.update(sql, params);    }    @Override    public int deleteStudent(int id) {        String sql = "delete from t_student where id = ?";        Object params[] = new Object[]{id};        return jdbcTemplate.update(sql, params);    }        /**     * 查询所有的学生     */    @Override    public List
findStudents() { String sql = "select * from t_student"; final List
studentList = new ArrayList
(); jdbcTemplate.query(sql, new RowCallbackHandler(){ @Override public void processRow(ResultSet rs) throws SQLException { Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); studentList.add(student); } }); return studentList; }}
View Code

3)StudentService.java/StudentServiceImpl.java:

package com.cy.service;import java.util.List;import com.cy.model.Student;public interface StudentService {    public int addStudent(Student student);        public int updateStudent(Student student);        public int deleteStudent(int id);        public List
findStudents();}
View Code
package com.cy.service.impl;import java.util.List;import com.cy.dao.StudentDao;import com.cy.model.Student;import com.cy.service.StudentService;public class StudentServiceImpl implements StudentService{    private StudentDao studentDao;        public void setStudentDao(StudentDao studentDao) {        this.studentDao = studentDao;    }    @Override    public int addStudent(Student student) {        return studentDao.addStudent(student);    }    @Override    public int updateStudent(Student student) {        return studentDao.updateStudent(student);    }    @Override    public int deleteStudent(int id) {        return studentDao.deleteStudent(id);    }    @Override    public List
findStudents() { return studentDao.findStudents(); } }
View Code

4)beans.xml配置文件:

5)jdbc.properties:

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/db_springjdbc.username=rootjdbc.password=root
View Code

6)测试代码:

package com.cy.test;import java.util.List;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cy.model.Student;import com.cy.service.StudentService;public class T {    private ApplicationContext ac;        @Before    public void setUp() throws Exception {        ac=new ClassPathXmlApplicationContext("beans.xml");    }        @Test    public void addStudent() {        StudentService studentService=(StudentService)ac.getBean("studentService");        int addNums=studentService.addStudent(new Student("晶", 1));        if(addNums==1){            System.out.println("添加成功");        }    }        @Test    public void updateStudent() {        StudentService studentService=(StudentService)ac.getBean("studentService");        int updateNums=studentService.updateStudent(new Student(4, "杨静", 10));        if(updateNums==1){            System.out.println("修改成功");        }    }        @Test    public void deleteStudent() {        StudentService studentService=(StudentService)ac.getBean("studentService");        int deleteNums = studentService.deleteStudent(4);        if(deleteNums==1){            System.out.println("删除成功!");        }    }        @Test    public void findStudents() {        StudentService studentService=(StudentService)ac.getBean("studentService");        List
studentList = studentService.findStudents(); for(Student student : studentList){ System.out.println(student); } }}
View Code

查询所有学生findStudents方法console打印:

 

 

第二节:

 

 1.通过继承JdbcDaoSupport,我们原来的JdbcTemplate就不用写了:

 根据上面项目的代码,做些修改:

1)StudentDaoImpl.java:

package com.cy.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.springframework.jdbc.core.RowCallbackHandler;import org.springframework.jdbc.core.support.JdbcDaoSupport;import com.cy.dao.StudentDao;import com.cy.model.Student;public class StudentDaoImpl extends JdbcDaoSupport implements StudentDao {        @Override    public int addStudent(Student student) {        String sql = "insert into t_student values (null, ?, ?)";        Object params[] = new Object[]{student.getName(), student.getAge()};        return this.getJdbcTemplate().update(sql, params);    }    @Override    public int updateStudent(Student student) {        String sql = "update t_student set name=?, age=? where id = ?";        Object params[] = new Object[]{student.getName(), student.getAge(), student.getId()};        return this.getJdbcTemplate().update(sql, params);    }    @Override    public int deleteStudent(int id) {        String sql = "delete from t_student where id = ?";        Object params[] = new Object[]{id};        return this.getJdbcTemplate().update(sql, params);    }        /**     * 查询所有的学生     */    @Override    public List
findStudents() { String sql = "select * from t_student"; final List
studentList = new ArrayList
(); this.getJdbcTemplate().query(sql, new RowCallbackHandler(){ @Override public void processRow(ResultSet rs) throws SQLException { Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); studentList.add(student); } }); return studentList; }}
View Code

2)beans.xml配置:

测试代码不变,执行都ok;

 

2.NamedParameterJdbcTemplate 的使用:

1)StudentDaoImpl.java:

package com.cy.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.springframework.jdbc.core.RowCallbackHandler;import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;import com.cy.dao.StudentDao;import com.cy.model.Student;public class StudentDaoImpl implements StudentDao {        private NamedParameterJdbcTemplate namedParameterJdbcTemplate;    public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {        this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;    }    @Override    public int addStudent(Student student) {        String sql = "insert into t_student values (null, :name, :age)";        MapSqlParameterSource sps = new MapSqlParameterSource();        sps.addValue("name", student.getName())            .addValue("age", student.getAge());        return namedParameterJdbcTemplate.update(sql, sps);    }    @Override    public int updateStudent(Student student) {        String sql = "update t_student set name=:name, age=:age where id =:id";        MapSqlParameterSource sps = new MapSqlParameterSource();        sps.addValue("name", student.getName())            .addValue("age", student.getAge())            .addValue("id", student.getId());        return namedParameterJdbcTemplate.update(sql, sps);    }    @Override    public int deleteStudent(int id) {        String sql = "delete from t_student where id = :id";        MapSqlParameterSource sps = new MapSqlParameterSource();        sps.addValue("id", id);        return namedParameterJdbcTemplate.update(sql, sps);    }        /**     * 查询所有的学生     */    @Override    public List
findStudents() { String sql = "select * from t_student"; final List
studentList = new ArrayList
(); namedParameterJdbcTemplate.query(sql, new RowCallbackHandler(){ @Override public void processRow(ResultSet rs) throws SQLException { Student student = new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); studentList.add(student); } }); return studentList; }}
View Code

2)beans.xml配置:

测试代码不变,测试ok

 

 

 

----------------------------------

 

转载于:https://www.cnblogs.com/tenWood/p/7051156.html

你可能感兴趣的文章
django forms 错误处理
查看>>
cacti监控(3)配置cacti
查看>>
Flask restful api与blueprint结合实践
查看>>
Win7旗舰版安装Oracle_11gR1_database
查看>>
linux sed
查看>>
有关rsync的一些语句
查看>>
Mysql密码修改
查看>>
Windows 7加域操作手册下
查看>>
Python Tools for Machine Learning
查看>>
php扩展模块安装-lamp
查看>>
Windows 系统优化与瘦身
查看>>
【前端开发与项目管理】
查看>>
H3C 无线控制器WX5004配置案例
查看>>
在fedora21 上的php+mysql+apache环境搭建
查看>>
表示需要
查看>>
excel用vlookup查询的值存在两个相同数值的时候,如何都显示出来?
查看>>
向服务器请求数据的五种技术
查看>>
CentOS 7.x自定义开机启动设置
查看>>
Web动画API教程:可爱的运动路径(Motion Path)
查看>>
数据库软件安装和数据库创建的几种方法
查看>>