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

回到顶部