博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring之jdbcTemplate的增删改查操作--不使用配置文件
阅读量:5790 次
发布时间:2019-06-18

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

首先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;    @Override    public 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
{36 37 @Override38 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
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
{ @Override public 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

你可能感兴趣的文章
VB关键字总结
查看>>
android代码生成jar包并混淆
查看>>
一个不错的vue项目
查看>>
屏蔽指定IP访问网站
查看>>
python学习 第一天
查看>>
根据毫秒数计算出当前的“年/月/日/时/分/秒/星期”并不是件容易的事
查看>>
python的图形模块PIL小记
查看>>
shell变量子串
查看>>
iOS的主要框架介绍 (转载)
查看>>
react报错this.setState is not a function
查看>>
poj 1183
查看>>
从根本解决跨域(nginx部署解决方案)
查看>>
javascript实现的一个信息提示的小功能/
查看>>
Centos7.x:开机启动服务的配置和管理
查看>>
HTML5 浏览器返回按钮/手机返回按钮事件监听
查看>>
xss
查看>>
iOS:百度长语音识别具体的封装:识别、播放、进度刷新
查看>>
JS获取服务器时间并且计算距离当前指定时间差的函数
查看>>
华为硬件工程师笔试题
查看>>
jquery居中窗口-页面加载直接居中
查看>>