Spring-JDBDTamplate 的操作
基本的
增,删,改:(只演示增加 因为他们调用的方法都是update方法):
package com.hxzy.spring_jdbc_template;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class JDBC_Tamplate {
/**
* JDBCTamplate spring针对JDBC技术进行 了封装 使我们更容易的对数据库进行crud操作
*/
public static void main(String[] args) {
//获取数据源对象
DriverManagerDataSource dataSource = new DriverManagerDataSource();
//向里面存取数据
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/student");
dataSource.setUsername("root");
dataSource.setPassword("gubin");
//获得JDBCTempleat对象
JdbcTemplate template = new JdbcTemplate(dataSource);
//编写Sql语句
String sql = "INSERT INTO student VALUES(15,?,?,?,?)";
//使用问号占位符操作 向数据库存取数据
int row = template.update(sql,"赵小凡",,"男","");
System.out.println("执行成功!有" + row + "行,受到了影响"); }
}
执行结果图:
演示:查询的代码:
单一的查询:(查询 返回的结果是一个数值 比如查询总条数)返回结果过为一个值返回一个值 使用queryForObject(sql,String.class)
/** * JDBC Tamplate 查询的操作 */ public static void main(String[] args) { /** * 获得数据源对象 */ JdbcTemplate jdbcTemplate = Utils.getjdbcTemplate(); /** * 查询 返回一个值 queryForObject(sql,String.class) */ String sql = "select count(0) from student"; //查询数据库中的条数 String s = jdbcTemplate.queryForObject(sql,String.class); //返回结果是一个的话 使用qyeryForObject(sql语句,String.class) System.out.println(s); }
查询操作 返回一个对象:
(今天被这个方法恶心到了... 返回的结果只能是1条不能是多条..)不建议使用!!
使用 queryForObject(sql ,new 实现类 )
这个方法使用 需要一个实体类 与数据库表对应 然后需要一个实现类 这个类实现 RowMapper<实体类> 重写 接口的MapRow方法 获得的数据返给对象 进行Set 存入对象
实现:
我的实体类叫 Student 实现类叫StudentImps
Student:
package com.hxzy.spring_jdbc_template.Dao; import lombok.Data; @Data
public class Student {
private String s_name;
private Integer s_id;
private Integer s_age;
private String s_sex;
private String s_phone;
}
StudentImpl:
package com.hxzy.spring_jdbc_template; import com.hxzy.spring_jdbc_template.Dao.Student;
import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet;
import java.sql.SQLException; public class Studentimpl implements RowMapper<Student> { @Override
public Student mapRow(ResultSet resultSet, int i) throws SQLException {
//获得数据
int s_id = resultSet.getInt("sid");
int s_age = resultSet.getInt("sage");
String s_name = resultSet.getString("sname");
String s_sex = resultSet.getString("ssex");
String s_phone = resultSet.getString("sphone");
System.out.println("进入了...");
//将数据存入数据库
Student student = new Student();
student.setS_id(s_id);
student.setS_age(s_age);
student.setS_name(s_name);
student.setS_phone(s_phone);
student.setS_sex(s_sex);
return student;
}
}
我的JDBCTamplate:
/**
* 查询 返回一个对象
*/
String sql = "select * from student limit 0,1";
Student student = jdbcTemplate.queryForObject(sql,new Studentimpl()); System.out.println(student);
返回集合操作:
跟上面返回对象的步骤一个 使用 query() 返回的是一个集合 注意 “一个” 集合 只有一个 同样都是 创建实体类 创建实现类 .....
代码:
/**
* 查询 返回一个集合
*/
String sql = "select * from student limit 0,5";
List<Student> list = jdbcTemplate.query(sql,new Studentimpl());
System.out.println(list);
Spring-JDBDTamplate 的操作的更多相关文章
- 使用spring连接及操作mongodb3.0
前边有一篇记录过不使用spring,直接在java代码中连接和操作mongodb数据库,这里就紧随其后记录一下使用spring的情况下,在java中简单操作mongodb. maven导包配置: ...
- spring boot 入门操作(二)
spring boot入门操作 使用FastJson解析json数据 pom dependencies里添加fastjson依赖 <dependency> <groupId>c ...
- spring boot 入门操作(三)
spring boot入门操作 devtools热部署 pom dependencies里添加依赖 <dependency> <groupId>org.springframew ...
- spring的事务操作(重点)
这篇文章一起来回顾复习下spring的事务操作.事务是spring的重点, 也是面试的必问知识点之一. 说来这次面试期间,也问到了我,由于平时用到的比较少,也没有关注过这一块的东西,所以回答的不是特别 ...
- spring 学习(四): spring 的 jdbcTemplate 操作
spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...
- 使用Spring Data Redis操作Redis(集群版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- spring data jpa 操作pipelinedb 的continuous view 与stream
一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...
- Spring的jdbcTemplate操作
Spring的jdbcTemplate操作 dao层,使用jdbcTemplate Spring对不同的持久化层技术的支持,都进行了封装 JDBC Hibernate5.0 MyBatis JPA 相 ...
- Spring的IOC操作
Spring的IOC操作 把对象的创建交给spring ioc操作两个部分 (1)ioc的配置文件方式 (2)ioc基于注解的方式 IOC 的底层原理 1.ioc底层原理使用技术 (1)xml配置文件 ...
- Spring aop 记录操作日志 Aspect
前几天做系统日志记录的功能,一个操作调一次记录方法,每次还得去收集参数等等,太尼玛烦了.在程序员的世界里,当你的一个功能重复出现多次,就应该想想肯定有更简单的实现方法.于是果断搜索各种资料,终于搞定了 ...
随机推荐
- 跟我学算法- tensorflow 卷积神经网络训练验证码
使用captcha.image.Image 生成随机验证码,随机生成的验证码为0到9的数字,验证码有4位数字组成,这是一个自己生成验证码,自己不断训练的模型 使用三层卷积层,三层池化层,二层全连接层来 ...
- ICaptureGraphBuilder2::RenderStream 智能连接方法浅析
ICaptureGraphBuilder2::RenderStream HRESULT RenderStream( [in] const GUID *pCategory, [in] const GUI ...
- VUE项目 - IE报vuex requires a Promise polyfill in this browser问题解决
第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install --save babel-polyfill ...
- Excel数据转化为sql脚本
在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况.这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库. 1 在数据前插入一列单元格,用来拼写sql语句. 具体 ...
- application获取资源
通过application获取资源,它的根路径是WebContent,它可以获取web-inf下的资源 通过getclassload()获取资源,它的根路径是classes,不能获取web-inf下的 ...
- JS nodeJs 的日期计算
目录[-] date-utils Static Methods 静态方法 Instance Methods 接口方法 date-utils 前端引用 <script type="tex ...
- 录制手机的视频,转换成gif
Android: 通过adb命令去进行录屏,然后将录制的视频转换成gif图片: 前提:确保电脑上安装了adb,且Android的level高于19. 1.adb shell screenrecord ...
- ICG游戏:斐波那契博弈
描述: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍: ...
- input checkbox 复选框大小修改
设置zoom属性(放大) 利用style: <input type="checkbox" name="returnfee" style="zo ...
- N 秒打开一个新窗口
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...