博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简述Spring中的JDBC框架
阅读量:4178 次
发布时间:2019-05-26

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

简述Spring JDBC框架

1,JDBC 框架概述

因为JDBC的操作过程比较烦索,并且操作步骤大多相对固定,所以很多框架都对其进行了封装与优化。其中著名的Spring框架也对JDBC做了简单封装。
Spring框架提供了一个JdbcTemplate类简化JDBC的开发,它的特点是:简单、方便,这个技术俗称Spring JDBC技术。
Spring JDBC理解为Spring框架对持久层JDBC操作进行了封装与优化,化繁琐为简单实用,即解决持久层的技术问题。

在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等。但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQL 语句,处理异常,处理事务,到最后关闭连接。

所以当从数据库中获取数据时,你所做的是定义连接参数,指定要执行的 SQL 语句,每次迭代完成所需的工作。

2,Spring JDBC 示例
想要理解带有 jdbc 模板类的 Spring JDBC 框架的相关概念,让我们编写一个简单的示例,来实现简单的查询操作。
这是我的项目结构
在这里插入图片描述

(1)建立一个数据库表 我的表数据如下:

在这里插入图片描述
(2)创建实体类

package cn.tb.entity;public class City {
private int cid; private String cname; private int pid; public int getCid() {
return cid; } public void setCid(int cid) {
this.cid = cid; } public String getCname() {
return cname; } public void setCname(String cname) {
this.cname = cname; } public int getPid() {
return pid; } public void setPid(int pid) {
this.pid = pid; } public City(int cid, String cname, int pid) {
this.cid = cid; this.cname = cname; this.pid = pid; } public City() {
}}

(3)创建接口

package cn.tb.dao;import cn.tb.entity.City;import java.util.List;public interface CityDao {
public List
findCnameAll(); //查询所有城市

(4)接口实现类 这里用到了JdbcTemplate 类

JdbcTemplate 类
Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
JdbcTemplate主要提供以下五类方法:
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
query方法及queryForXXX方法:用于执行查询相关语句;
call方法:用于执行存储过程、函数相关语句。

package cn.tb.dao.impl;import cn.tb.dao.CityDao;import cn.tb.entity.City;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowMapper;import org.springframework.lang.Nullable;import org.springframework.stereotype.Repository;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;@Repositorypublic class CityImpl implements CityDao{
//JdbcTemplate 类 @Autowired private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate; } @Override public List
findCnameAll() {
return jdbcTemplate.query("select * from city",new RowMapper(){
@Nullable @Override public City mapRow(ResultSet rs, int i) throws SQLException {
City city = new City(); city.setCid(rs.getInt(1)); city.setCname(rs.getString(2)); city.setPid(rs.getInt(3)); return city; } }); }

(5)service

package cn.tb.service;import cn.tb.dao.CityDao;import cn.tb.entity.City;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class CityService {
@Autowired private CityDao cityDao; public CityDao getCityDao() {
return cityDao; } public void setCityDao(CityDao cityDao) {
this.cityDao = cityDao; } public List
findCnameAll(){
return cityDao.findCnameAll(); } public void update(City cid){
cityDao.update(cid); }}

(6)配置XML文件 (这也是最重要的一步)

(7)测试

package cn.tb.test;import cn.tb.entity.City;import cn.tb.service.CityService;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.List;public class Test {
public static void main(String[] args) {
ApplicationContext alc = new ClassPathXmlApplicationContext("Spring.xml"); CityService ct = alc.getBean("cityService", CityService.class); List
list = ct.findCnameAll(); for (City c : list) {
System.out.println(c.getCname()); } }}

(8)测试结果

在这里插入图片描述

转载地址:http://ccqai.baihongyu.com/

你可能感兴趣的文章
JAVA 并发——synchronized的分析
查看>>
Echarts——使用 dataset 管理数据
查看>>
DES 加解密工具类
查看>>
SpringBoot多模块项目实践(Multi-Module)
查看>>
第一篇: 服务的注册与发现Eureka(Greenwich版)
查看>>
第二篇: 服务消费者(rest+ribbon)(Greenwich版本)
查看>>
第三篇: 服务消费者(Feign)(Greenwich版本)
查看>>
获取客户的真实IP地址
查看>>
第四篇: 熔断器(Ribbon+Feign)(Greenwich版本)
查看>>
Linux的常用命令(一)
查看>>
Linux的常用命令(二)
查看>>
第六篇: 分布式配置中心(Greenwich版本)
查看>>
SpringBoot | 配置logback-spring.xml
查看>>
SpringBoot | 第一章:构建第一个SpringBoot工程
查看>>
SpringBoot | 第二章:配置多环境以及上传文件
查看>>
Spring Data JPA |自定义非实体类的映射
查看>>
SpringBoot | 常用注解记录
查看>>
JavaBean对象转换EntityUtils工具类
查看>>
Maven常用命令
查看>>
SpringBoot | 运行报错,无法加载oracle连接驱动
查看>>