Spring JDBC 框架使用JdbcTemplate 类的一个实例
本文内容纲要:
- JDBC 框架概述- JdbcTemplate 类
- 1.创建数据访问对象接口文件 StudentDAO.java 的内容:
- 2.创建一个实体类Student:
- 3.创建一个StudentMapper.java 文件,用来映射结果集(通常用于查询语句~)内容如下:
- 4.下面是为定义的 DAO 接口 StudentDAO 的实现类文件 StudentJDBCTemplate.java,具体实现到数据库的操作:
- 5.建立一个 MainApp.java 文件,用于测试。内容如下:
-
- 测试结果:
JDBC 框架概述
在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等。但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQL 语句,处理异常,处理事务,到最后关闭连接。
所以当从数据库中获取数据时,你所做的是定义连接参数,指定要执行的 SQL 语句,每次迭代完成所需的工作。
Spring JDBC 提供几种方法和数据库中相应的不同的类与接口。我将给出使用 JdbcTemplate 类框架的经典和最受欢迎的方法。这是管理所有数据库通信和异常处理的中央框架类。
JdbcTemplate 类
JdbcTemplate 类执行 SQL 查询、更新语句和存储过程调用,执行迭代结果集和提取返回参数值。它也捕获 JDBC 异常并转换它们到 org.springframework.dao 包中定义的通用类、更多的信息、异常层次结构。
JdbcTemplate 类的实例是线程安全配置的。所以你可以配置 JdbcTemplate 的单个实例,然后将这个共享的引用安全地注入到多个 DAOs 中。
使用 JdbcTemplate 类时常见的做法是在你的 Spring 配置文件中配置数据源,然后共享数据源 bean 依赖注入到 DAO 类中,并在数据源的设值函数中创建了 JdbcTemplate。
环境:导入: mysql-connector-java.jar,org.springframework.jdbc.jar这两个包
1.创建数据访问对象接口文件 StudentDAO.java 的内容:
1 package com.spring.jdbcTemplate; 2
3 import java.util.List;
4
5 import javax.sql.DataSource;
6 /**
7 * 接口StudentDao,是用来封装查询方法
8 * @author Administrator
9 *
10 */
11
12 public interface StudentDao {
13
14 public void setDataSource(DataSource ds);
15 //添加记录
16 public void addStudent(String name,Integer age);
17 //通过Student ID查询学生记录,返回值为Student类型
18 public Student getStudentId(Integer id);
19 //删除数据通过Student ID
20 public void delectStudent(Integer id);
21 //更新数据
22 public void updata(Integer id,Integer age);
23 //查询所有数据
24 public List<Student> SelectAllStudent();
25 }
2.创建一个实体类Student:
1 package com.spring.jdbcTemplate; 2
3 public class Student {
4 /**
5 * 定义学生类
6 */
7 private String name;
8 private Integer age;
9 private Integer id;
10
11 public Integer getId() {
12 return id;
13 }
14
15 public void setId(Integer id) {
16 this.id = id;
17 }
18
19 public String getName() {
20 return name;
21 }
22
23 public void setName(String name) {
24 this.name = name;
25 }
26
27 public Integer getAge() {
28 return age;
29 }
30
31 public void setAge(Integer age) {
32 this.age = age;
33 }
34
35 public void printAdvice() {
36 System.out.println("name:" + name + ",age:" + age);
37
38 }
39
40 }
3.创建一个StudentMapper.java 文件,用来映射结果集(通常用于查询语句~)内容如下:
1 package com.spring.jdbcTemplate; 2
3 import java.sql.ResultSet;
4 import java.sql.SQLException;
5
6 import org.springframework.jdbc.core.RowMapper;
7
8 public class StudentMapper implements RowMapper<Student>{
9 /**
10 * 接口RowMapper被JdbcTemplate 用来映射每一行结果集的数据
11 * JdbcTemplate 用来执行query方法或者调用存储过程 包含方法mapRow(ResultSet rs, int rowNum)
12 * 第一个参数表示获取到的结果集、第二个表示结果集中获取到的结果个数,通常用于查询语句~
13 */
14 @Override
15 public Student mapRow(ResultSet rs, int row) throws SQLException {
16 Student student=new Student();
17 student.setId(rs.getInt("id"));
18 student.setName(rs.getString("name"));
19 student.setAge(rs.getInt("age"));
20 return student;
21 }
22
23 }
4.下面是为定义的 DAO 接口 StudentDAO 的实现类文件 StudentJDBCTemplate.java,具体实现到数据库的操作:
1 package com.spring.jdbcTemplate; 2
3 import java.util.List;
4
5 import javax.sql.DataSource;
6
7 import org.springframework.jdbc.core.JdbcTemplate;
8 /**
9 * 利用Spring 内置jdbc JdbcTemplate来实现StudentDao接口,连接数据库。
10 * @author Administrator
11 *
12 */
13 public class StudentJdbcTemplate implements StudentDao {
14 private DataSource dataSource;
15 private JdbcTemplate jdbcTemplateObject;
16
17 // 设置数据源
18 @Override
19 public void setDataSource(DataSource dataSource) {
20 this.dataSource = dataSource;
21 this.jdbcTemplateObject = new JdbcTemplate(dataSource);
22 }
23
24 // 添加学生数据
25 @Override
26 public void addStudent(String name, Integer age) {
27 String sql = "insert into Student(name,age) value(?,?)";
28 jdbcTemplateObject.update(sql, name, age);
29 System.out.println("Created Record Name = " + name + " Age = " + age);
30 return;
31 }
32
33 // 查询学生
34 @Override
35 public Student getStudentId(Integer id) {
36 String sql = "select * from Student where id=?";
37 Student student = jdbcTemplateObject.queryForObject(sql, new Object[] { id }, new StudentMapper());
38 return student;
39 }
40
41 // 删除学生记录
42 @Override
43 public void delectStudent(Integer id) {
44 String sql = "delete from Student where id=?";
45 jdbcTemplateObject.update(sql, id);
46 System.out.println("Deleted Record with ID = " + id);
47 return;
48 }
49 //更新数据
50 @Override
51 public void updata(Integer id,Integer age) {
52 String SQL = "update Student set age = ? where id = ?";
53 jdbcTemplateObject.update(SQL, age, id);
54 System.out.println("Updated Record with ID = " + id);
55 return;
56 }
57 //查询所有数据
58 @Override
59 public List<Student> SelectAllStudent() {
60 String SQL = "select * from Student";
61 List<Student> students = jdbcTemplateObject.query(SQL, new StudentMapper());
62 return students;
63 }
64
65
66 }
5.建立一个 MainApp.java 文件,用于测试。内容如下:
1 package com.spring.jdbcTemplate; 2
3 import java.util.List;
4
5 import org.springframework.context.support.ClassPathXmlApplicationContext;
6 import org.springframework.jdbc.core.JdbcTemplate;
7
8 public class MainApp {
9
10 public static void main(String[] args) {
11 ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring_xml/bean.xml");
12 //获取getBean("StudentJdbcTemplate")对象,调用其方法操作数据库
13 StudentJdbcTemplate jdbcTemplate = (StudentJdbcTemplate)applicationContext.getBean("StudentJdbcTemplate");
14
15 //插入数据
16 /* jdbcTemplate.addStudent("张三", 23);
17 jdbcTemplate.addStudent("李四", 24);
18 jdbcTemplate.addStudent("王五", 25);
19 jdbcTemplate.addStudent("赵六", 26);
20 jdbcTemplate.addStudent("田七", 27);*/
21
22 //查询所有数据
23 /* List<Student> list=jdbcTemplate.SelectAllStudent();
24 for(Student student:list){
25 System.out.println(student.getId()+student.getName()+student.getAge());
26 }*/
27 //查询单条记录
28 /* Student student=jdbcTemplate.getStudentId(1);
29 System.out.println(student.getId()+student.getName()+student.getAge());*/
30
31 //删除单条记录
32 /*jdbcTemplate.delectStudent(2);*/
33
34 //更新数据
35 jdbcTemplate.updata(3, 45);
36 }
37
38 }
测试结果:
本文内容总结:JDBC 框架概述,JdbcTemplate 类,1.创建数据访问对象接口文件 StudentDAO.java 的内容:,2.创建一个实体类Student:,3.创建一个StudentMapper.java 文件,用来映射结果集(通常用于查询语句~)内容如下:,4.下面是为定义的 DAO 接口 StudentDAO 的实现类文件 StudentJDBCTemplate.java,具体实现到数据库的操作:,5.建立一个 MainApp.java 文件,用于测试。内容如下:,,测试结果:,
原文链接:https://www.cnblogs.com/ysource/p/12869779.html
以上是 Spring JDBC 框架使用JdbcTemplate 类的一个实例 的全部内容, 来源链接: utcz.com/z/362677.html