文章目录

  • JdbcTemplate概述
  • 一、导入坐标
  • 二、在resource资源包下新建applicationContext.xml并配置
    • 在resource资源包下新建jdbc.properties存入MySQL的连接数据
  • 三、建包测试一下
    • 1、在pojo包下建User类
    • 2、在UserDao接口下定义增删改查方法
    • 3、在UserDaoImpl中实现Dao接口中的方法
    • 4、编写测试类

前言:当控制台报Unsupported class file major version 61错误时,建议更换JDK版本,换成JDK16以前的版本

父文章:Spring对数据持久化的支持

JdbcTemplate概述

Spring提供了工具类JdbcTemplate,该类对jdbc的操作进行了轻量级别的封装,包含了操作数据库的各种方法。该类包含一个dataSource属性(数据源),只有在初始化数据源的情况下才能调用JdbcTemplate的方法。

  • 数据源:数据源为主流连接池的数据源对象(例如C3P0,DBCP数据库连接池),因此在使用JdbcTemplate前,要创建数据源对象。

  • JdbcTemplate的优点:
    优点:运行期:高效、内嵌Spring框架中、支持基于AOP的声明式事务,可节省大量的冗余代码(创建连接,关闭连接,处理异常),只关注业务逻辑即可。

一、导入坐标

  • 这边呢有用的没用的我都导了几个,之前有bug的时候加入的
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.17</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.2.RELEASE</version></dependency></dependencies>

二、在resource资源包下新建applicationContext.xml并配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"><context:property-placeholder location="jdbc.properties"/>
<context:component-scan base-package="com.wk"></context:component-scan><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><constructor-arg index="0" ref="dataSource"></constructor-arg></bean>
</beans>

在resource资源包下新建jdbc.properties存入MySQL的连接数据

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123

三、建包测试一下

1、在pojo包下建User类

public class User {private String username;private String password;private String email;private String phone;private String birth;private Integer id;public User() {}public User(String username, String password, String email, String phone, String birth, Integer id) {this.username = username;this.password = password;this.email = email;this.phone = phone;this.birth = birth;this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getBirth() {return birth;}public void setBirth(String birth) {this.birth = birth;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +", email='" + email + '\'' +", phone='" + phone + '\'' +", birth='" + birth + '\'' +", id=" + id +'}';}
}

2、在UserDao接口下定义增删改查方法

public interface UserDao {//插入一条用户信息void adduser(User user);//查找用户信息List<User> queryuser(String username);//修改用户信息int  updateuser(String username,int id);//删除用户int  deleteuser(String username);}

3、在UserDaoImpl中实现Dao接口中的方法

public class UserDaoImpl implements UserDao {@Autowiredprivate JdbcTemplate jdbcTemplate;@Overridepublic void adduser(User user) {String sql="insert into user(username,password) value(?,?)";int update = jdbcTemplate.update(sql, user.getUsername(), user.getPassword());System.out.println(update);}@Overridepublic List<User> queryuser(String username) {String sql = "select * from user where username=?";//创建一个新的BeanPropertyRowMapper对象RowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);//将id绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录List<User> query = jdbcTemplate.query(sql, rowMapper, username);return query;}@Overridepublic int  updateuser(String username,int id) {String sql="update  user set username=? where id=?";int update = jdbcTemplate.update(sql, username,id);return update;}@Overridepublic int  deleteuser(String username) {String sql = "delete from user where username=?";int update = jdbcTemplate.update(sql, username);return update;}
}

4、编写测试类

public class Test {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");UserDao userDao= (UserDao) ctx.getBean("userDaoImpl");User user = new User();user.setUsername("北条");user.setPassword("123123");userDao.adduser(user);//        List<User> queryuser = userDao.queryuser("史蒂夫");
//        System.out.println(queryuser);//        int ikun = userDao.updateuser("ikun", 2);
//        if (ikun==0){//            System.out.println("信息修改失败");
//        }else {//            System.out.println("修改成功");
//        }
//
//        int kun = userDao.deleteuser("小黑子");
//        if (kun==0){//            System.out.println("删除失败");
//        }else {//            System.out.println("删除成功");
//        }}
}

Spring-JdbcTemplate环境搭配及基本功能相关推荐

  1. 【SSM框架系列】Spring - JdbcTemplate声明式事务

    JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作.操作麻烦冗余,影响编码的效率. Spring把对数据库的操作在j ...

  2. 06_02_任务三:Spring JDBCTemplate 声明式事务

    任务三:Spring JDBCTemplate & 声明式事务 课程任务主要内容: Spring的JdbcTemplate Spring的事务 Spring集成web环境 一 Spring的J ...

  3. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

  4. Spring MVC环境中的文件上传功能实现

    在实际开发过程中,尤其是web项目开发,文件上传和下载的需求的功能非常场景,比如说用户头像.商品图片.邮件附件等等.其实文件上传下载的本质都是通过流的形式进行读写操作,而在开发中不同的框架都会对文件上 ...

  5. 利用Maven搭建Spring开发环境 【转】

    2019独角兽企业重金招聘Python工程师标准>>> 一.   概要说明 最近几天在测试Spring3.0的AOP功能,在测试功能之前,首先是要搭建出Spring3.0的开发功能. ...

  6. jQuery 开发环境搭配(转)

    jQuery 作为一个轻量级的 JavaScript 库,至 06 年出来到现在, 也算是用得最火的 JavaScript 库了吧, 要开始学习 jQuery ,首先还是必须得把环境搭配好吧, 这一篇 ...

  7. 搭建spring boot环境并测试一个controller

    Idea搭建spring boot环境 一.新建项目 二.起步依赖 三.编写SpringBoot引导类 四.编写Controller 五.热部署 一.新建项目 1.新建project 2.选择Spri ...

  8. spring 开发环境_设置Spring 3开发环境

    spring 开发环境 本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程 ...

  9. Spring JdbcTemplate实例

    简介 Spring JdbcTemplate类是Spring提供的简化数据库操作的一个类,这个类使用了模板方法模式,可以减少一些重复代码.这里主要演示一下 JdbcTemplate 的使用. 完整的代 ...

最新文章

  1. anaconda创建环境
  2. apache和nginx的性能分析
  3. python【数据结构与算法】内建模块itertools(操作迭代对象)
  4. JVM垃圾回收3——参数详解(转载)
  5. Android—— ScrollView 与 ListView 滑动冲突处理
  6. python爬虫脚本ie=utf-8_Python网络爬虫出现乱码问题的解决方法
  7. Android EditText的设置
  8. 随机森林与梯度提升树
  9. Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)
  10. 【C++深度剖析教程4】C++的二阶构造模式
  11. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
  12. 印度软件和中国软件工程师_印度社区如何支持隐私和软件自由
  13. C++中类成员变量在初始化列表中的初始化顺序
  14. java jsp公共异常页面_Java如何创建JSP错误页面以处理异常?
  15. 内存分配知识:全局,局部,静态变量
  16. Javascript--闭包引起的IE内存泄露(转载)
  17. SPSS-PROCESS插件的使用
  18. PPC软件测试自学,一个成功的PPC广告活动所需的五个步骤
  19. java使用pdfbox将图片转换成pdf
  20. 武汉大学计算机学院成绩单,2018年武汉大学各学院总评成绩计算公式汇总

热门文章

  1. window.XMLHttpRequest
  2. Android电子书翻页效果实现
  3. Chrome浏览器开启手机调试模式就断网解决
  4. 使用JavaFX控件
  5. Note for Linux
  6. 线性代数学习笔记——第十三讲——行列式的定义
  7. Flutter 新闻客户端 - 09 详情页展示、分享、远程真机调试
  8. 计算机毕业设计SSM仿咸鱼二手物品交易系统【附源码数据库】
  9. 蚂蚁金服对收购英支付企业不予置评,雷军忆当年“被迫”当金山CEO往事 | 雷锋早报...
  10. 显示器接口_显示器USB接口的作用是什么?为什么会没有反应?