spring之jdbcTemplate的增删改查操作--不使用配置文件
首先spring针对Java EE三层,都有对应的解决技术。而对于持久化层,都提供了封装,方便操作。如jdbcTemplate对jdbc进行了封装。
下面针对jdbcTemplate的操作进行测试。
—>使用jdbcTemplate的增加,修改,删除,可以使用同一个方法实现,jdbcTemplate.update(sql, Object...args); sql:指需要执行的SQL语句,后面的是可变参数,表示预处理的参数设置。
—>而使用JbdcTemplate执行查询操作,需要实现RowMapper接口,里面的方法需要我们自己实现,对返回的结果集ResultSet进行封装处理。
对查询返回单个的数据,比如表中的总数:(使用
对于对象的返回使用这个返回的是对象结果集
或者使用这个是输入参数的返回的对象结果集
以下分各种情况进行数据测试。
1.增加的代码实现如下所示:
1 package com.gp.jdbc; 2 3 import org.springframework.jdbc.core.JdbcTemplate; 4 import org.springframework.jdbc.datasource.DriverManagerDataSource; 5 6 public class TemplateDemo { 7 8 //使用jdbcTemplate实现数据的增加 9 public void add (){ 10 DriverManagerDataSource dataSource=new DriverManagerDataSource(); 11 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 12 dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis"); 13 dataSource.setUsername("root"); 14 dataSource.setPassword("guo"); 15 16 JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); 17 String sql="insert into user(name,password) values(?,?)"; 18 int result=jdbcTemplate.update(sql, "丽丽","123456"); 19 if(result==1){ 20 System.out.println("添加成功"); 21 }else{ 22 System.out.println("添加失败"); 23 } 24 } 25 26 27 public static void main(String[] args) { 28 TemplateDemo td=new TemplateDemo(); 29 td.add(); 30 } 31 }
数据表中的结果前后如下所示:
2.下面把id=6的密码改为111111的程序如下所示;对上面的方法稍作修改:
package com.gp.jdbc;import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource;public class TemplateDemo1 {//使用jdbcTemplate实现数据的修改public void update (){DriverManagerDataSource dataSource=new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");dataSource.setUsername("root");dataSource.setPassword("guo");JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);String sql="update user set password=? where name=? ";int result=jdbcTemplate.update(sql, "111111","丽丽");if(result==1){System.out.println("修改成功");}else{System.out.println("修改失败");}}public static void main(String[] args) {TemplateDemo1 td=new TemplateDemo1();td.update();} }
修改后数据库表中的截图如下所示:
3.实现数据的删除操作,其代码如下所示:
1 package com.gp.jdbc; 2 3 import org.springframework.jdbc.core.JdbcTemplate; 4 import org.springframework.jdbc.datasource.DriverManagerDataSource; 5 6 public class TemplateDemo2 { 7 8 //使用jdbcTemplate实现数据的修改 9 public void delete (){ 10 DriverManagerDataSource dataSource=new DriverManagerDataSource(); 11 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 12 dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis"); 13 dataSource.setUsername("root"); 14 dataSource.setPassword("guo456789"); 15 16 JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); 17 String sql="delete from user where name=? "; 18 int result=jdbcTemplate.update(sql, "丽丽"); 19 if(result==1){ 20 System.out.println("删除成功"); 21 }else{ 22 System.out.println("删除失败"); 23 } 24 } 25 26 27 public static void main(String[] args) { 28 TemplateDemo2 td=new TemplateDemo2(); 29 td.delete(); 30 } 31 }
执行删除操作后的代码如下所示:
以上的增加,修改和删除都可以使用
4.实现查询一个表中数据的总数,结果如下所示:
package com.gp.jdbc;import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource;public class TemplateDemo3 {//使用jdbcTemplate实现数据的查询public void select (){DriverManagerDataSource dataSource=new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");dataSource.setUsername("root");dataSource.setPassword("guo");JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);String sql="select count(*) from user ";int result=jdbcTemplate.queryForObject(sql, Integer.class);System.out.println("查询结果为:"+result);}public static void main(String[] args) {TemplateDemo3 td=new TemplateDemo3();td.select();} }
5.查询表中的一条数据,测试代码如下所示:
实体类:
package com.gp.entity;public class User {private String name;private String password;@Overridepublic String toString() {return "User [name=" + name + ", password=" + password + "]";}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }
测试类:
1 package com.gp.jdbc; 2 3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5 6 import org.springframework.jdbc.core.JdbcTemplate; 7 import org.springframework.jdbc.core.RowMapper; 8 import org.springframework.jdbc.datasource.DriverManagerDataSource; 9 10 import com.gp.entity.User; 11 12 public class TemplateDemo4 { 13 14 // 使用jdbcTemplate实现数据的查询 15 public void select() { 16 DriverManagerDataSource dataSource = new DriverManagerDataSource(); 17 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 18 dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis"); 19 dataSource.setUsername("root"); 20 dataSource.setPassword("guo456789"); 21 22 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); 23 String sql = "select * from user where name=? "; 24 User user = (User) jdbcTemplate.queryForObject(sql, 25 new UserRowMapper(), "张三"); 26 System.out.println("查询结果为:" + user); 27 } 28 29 public static void main(String[] args) { 30 TemplateDemo4 td = new TemplateDemo4(); 31 td.select(); 32 } 33 } 34 35 class UserRowMapper implements RowMapper<User> { 36 37 @Override 38 public User mapRow(ResultSet rs, int rowNum) throws SQLException { 39 User user = new User(); 40 user.setName(rs.getString("name")); 41 user.setPassword(rs.getString("password")); 42 return user; 43 } 44 45 }
运行结果如下所示:
6.使用jdbcTemplate实现结果集的查询,测试代码如下所示:
实体类不变,测试类如下所示:
package com.gp.jdbc;import java.sql.ResultSet; import java.sql.SQLException; import java.util.List;import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.datasource.DriverManagerDataSource;import com.gp.entity.User;public class TemplateDemo5 {// 使用jdbcTemplate实现数据的查询public void select() {DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");dataSource.setUsername("root");dataSource.setPassword("guo456789");JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);String sql = "select * from user";List<User> users = jdbcTemplate.query(sql, new UserRowMapper1());System.out.println("查询结果为:");for (User u : users) {System.out.println(u);}}public static void main(String[] args) {TemplateDemo5 td = new TemplateDemo5();td.select();} }class UserRowMapper1 implements RowMapper<User> {@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User user = new User();user.setName(rs.getString("name"));user.setPassword(rs.getString("password"));return user;}}
测试结果为:
转载于:https://www.cnblogs.com/gpx-startup/p/8576728.html
spring之jdbcTemplate的增删改查操作--不使用配置文件相关推荐
- Spring JdbcTemplate CRUD增删改查操作
执行insert update delete操作 只需要使用JdbcTemplate的update方法就可以执行insert update delete操作. @RunWith(SpringJUnit ...
- java jdbctemplate的增删改查的实现
jdbctemplate终于到你啦,准备了三天的java jdbc的基础知识 准备从建项目中慢慢学习,遇见不知道的就查资料,在回来慢慢的补自己不知道的知识点 1.新建一个项目jdbctemplate ...
- Javaweb实现增删改查操作操作
Javaweb实现增删改查操作操作 一:准备工作 1:Idea编辑器(eclispe和myeclispe都可以,个人推荐使用idea),新建一个web项目 2:数据库mysql 3:需要提前了解的知识 ...
- Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作
此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...
- 利用Mybatis对数据库进行增删改查操作
文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...
- JdbcTemplate的增删改查用法
JdbcTemplate的增删改查用法 vue前端调用方法 async init() {var that = this;//that.tableData = [];that.page.total = ...
- Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建
Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...
- python增删改查的框架_简单的Django框架增删改查操作
Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...
- python操作mysql的增删改查_详解使用pymysql在python中对mysql的增删改查操作(综合)...
这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: #!/usr/bin/python #coding ...
最新文章
- Openstack平台搭建(先电版)
- python对图像二值化_python如何二值化图像
- 专科学计算机没有吗,我是专科生,学计算机信息管理专业的,我没有拿到..._考研_帮考网...
- hzwap u.php_『THINKPHP』U 函数
- C# ocr识别(Tesseract库)
- 全流量回溯分析系统介绍
- 19. 正则表达式(二)
- linux ubantu最新版本,过去十年最佳的Ubuntu版本
- 松翰单片机--SN8F5702学习笔记(六)TIMER2
- 网页游戏外挂资料(转)
- android 自定义locale,Android Locale填坑
- 【JSP笔记02】JSP注释、脚本、表达式、JSP三大指令、JSP七大动作的介绍及使用
- 数据挖掘中的模式发现(七)GSP算法、SPADE算法、PrefixSpan算法
- html src=true,embed属性变true
- leetcode sql:游戏玩法分析 III
- 计算机软件著作权侵权行为的认定,计算机软件著作权侵权行为认定方法探讨.doc...
- 海藻酸盐水凝胶包覆生长因子丝素蛋白微球
- python 学习笔记(二)数列
- JS中预处理是一种好无节操的机制
- java this 逸出_发布逸出 java this 逸出【转】
热门文章
- 【数据结构】树状数组笔记
- 1050. 螺旋矩阵(25)-PAT乙级真题
- python声明编码_Python 2.x 编码声明:是coding:utf-8还是coding=urf-8呢
- 【Python】SNMP的安装及Python的调用
- Oracle之唯一性约束(UNIQUEConstraint)用法详解
- Nisus Writer Pro for Mac拆分视图和注释技巧
- Rainbond 5.1.3 发布,快速部署和运维 Spring Cloud 集群
- 部署NEP-5智能合约 (第1部分)
- 记一次Ubuntu安装nodeJs过程
- css3-13 css3的3D动画如何实现