Spring 通过调用 JdbcTemplate来实现对数据库的增删改查,主要用到JdbcTemplate类的4个方法,
首先,配置数据库信息,创建对象,代码通用:
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

  1、修改、删除、插入 jdbcTemplate.update(sql,参数) sql示例:update users set age=? where name=? delete from users where name=? insert into users(name,age) values(?,?)

 例子:String sql = "update users set age=? where name=? ";
    int rows = jdbcTemplate.update(sql ,20,"zhaong"); 2、查询一个统计值的情况,用jdbcTemplate.queryForObject():
String sql = "select count(*) from users";
  int rows = jdbcTemplate.queryForObject(sql,Integer.class);
3、查询结果是一个对象object,用jdbcTemplate.queryForObject
例:String sql = "select * from users where name=? ";
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(),"china");
4、查询结果是一个列表list:jdbcTemplate.queryForObject
  例:String sql = "select * from users";
   List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
 package spring.jdbc;

 public class User {
private String name;
private int age;
public String getName() {
return name;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }

JdbcTemplateDemo.java 测试代码

 package spring.jdbc;

 import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource; public class JdbcTemplateDemo { public void testObject() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //调用 JDBCteMPLATE 对象时面的方法实现操作 //创建SQL语句
String sql = "select * from users where name=? ";
//调用方法得到记录
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(),"china");
System.out.println(user);
} public void testList() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//创建SQL语句
String sql = "select * from users";
//调用 JDBCteMPLATE 对象时面的方法实现操作
List<User> list = jdbcTemplate.query(sql, new MyRowMapper()); System.out.println(list);
}
@Test
public void testCount() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //调用 JDBCteMPLATE 对象时面的方法实现操作 //创建SQL语句,查询一个统计数值
String sql = "select count(*) from users";
int rows = jdbcTemplate.queryForObject(sql,Integer.class);
System.out.println(rows);
} public void update() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //调用 JDBCteMPLATE 对象时面的方法实现操作 //创建SQL语句
String sql = "update users set age=? where name=? ";
int rows = jdbcTemplate.update(sql ,20,"zhaong");
System.out.println(rows);
} public void add() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); //调用 JDBCteMPLATE 对象时面的方法实现操作 //创建SQL语句
String sql = "insert into users(name,age) values(?,?)";
int rows = jdbcTemplate.update(sql ,"zhaorng",50);
System.out.println(rows);
} } class MyRowMapper implements RowMapper<User>{ @Override
public User mapRow(ResultSet rs ,int num) throws SQLException{
//1从结果集里把数据午到
String name = rs.getString("name");
int age = rs.getInt("age"); //2把得到的数据封装到对象里面
User user = new User();
user.setName(name);
user.setAge(age);
return user;
} }

spring入门之JdbcTemplate 操作crud的更多相关文章

  1. Spring框架针对dao层的jdbcTemplate操作crud之delete删除数据库操作 Spring相关Jar包下载

    首先,找齐Spring框架中IoC功能.aop功能.JdbcTemplate功能所需的jar包,当前13个Jar包 1.Spring压缩包中的四个核心JAR包,实现IoC控制反转的根据xml配置文件或 ...

  2. Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作

    查询目标是完成3个功能: (1)查询表,返回某一个值.例如查询表中记录的条数,返回一个int类型数据 (2)查询表,返回结果为某一个对象. (3)查询表,返回结果为某一个泛型的list集合. 一.查询 ...

  3. Spring框架针对dao层的jdbcTemplate操作crud之update修改数据库操作

    使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...

  4. Spring框架针对dao层的jdbcTemplate操作crud之add添加数据库操作

    使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...

  5. Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作 —— 查询表,返回结果为对象的list集合

    用JdbcTemplate的方法完成, 查询数据库表,把用户表sw_user所有数据以List<User>集合返回 在JdbcTemplateDemo类中增加查询返回所有对象集合的方法qu ...

  6. Spring Boot入门系列(十四)使用JdbcTemplate操作数据库,配置多数据源!

    前面介绍了Spring Boot 中的整合Mybatis并实现增删改查.如何实现事物控制.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/c ...

  7. Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

    Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个 ...

  8. JdbcTemplate实现CRUD操作

    ------------------siwuxie095                                     JdbcTemplate 实现 CRUD 操作         1.J ...

  9. spring 学习(四): spring 的 jdbcTemplate 操作

    spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...

随机推荐

  1. iOS:Masonry练习详解

    Masonry练习详解   添加约束的方式: 1.通过使用NSLayoutConstraints添加约束到约束数组中,之前必须设置translatesAutoresizingMaskIntoConst ...

  2. XSS跨站脚本测试用例

    '><script>alert(document.cookie)</script>='><script>alert(document.cookie)&l ...

  3. photo sphere viewer使用图像数据替代路径来生成全景图

    photo sphere viewer是一个js库,用来将全景图片生成360度的全景图像,但是其要求传入的是个路径.如何使用数据代替路径生成图像. 我采用的方法是用img标签生成图像,然后调用img. ...

  4. csharp 面向对象编程

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shap ...

  5. 在Dell XPS 13安装WIN10和ubuntu双系统

    新入了Dell的XPS 13超级本,之所以买这个本子,就是看中它轻便且续航持久.这款本子也是为数不多的能够和苹果的13'' mac book air一较高下的本子.在重量上,占地面积和综合性价比上,还 ...

  6. [转载]Android开发者必须深入学习的10个应用开源项目

    [转载]Android开发者必须深入学习的10个应用开源项目 原文地址:Android开发者必须深入学习的10个应用开源项目(http://blog.sina.com.cn/s/blog_7b8a63 ...

  7. mac中yeoman构建你的项目

    一开始用在mac中构建一个项目就遇到一个很奇怪的事, 做好各种准备工作后,我开始创建一个angular01作为测试目录,结果运行yo脚手架之后,选择angular工作流进行构建项目,出来的结果我开始慌 ...

  8. Python学习笔记(七)函数的使用

    python中的函数使用较简单,这里列出值得注意的几点:   内嵌函数   例如: # coding: utf-8 def foo(): def bar(): print 'bar() called. ...

  9. react 解决 setState 异步问题

    1.先保存,后调用 this.setState({ params },() => { this.getList(); }) .

  10. XML之Schema

    前面学习了DTD.相同我们有了一套更完好的定义法则-Schema. 以下环绕Schema是什么.为何用以及怎么用谈谈自己的感受. XML Schema是基于XML的DTD替代者. XML Schema ...