JDBC  Template(简化持久化操作)

(一)创建项目

(1)Maven配置

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.11</version>
  6. <scope>test</scope>
  7. </dependency>
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. <version>5.1.41</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>org.springframework</groupId>
  15. <artifactId>spring-core</artifactId>
  16. <version>5.1.5.RELEASE</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>org.springframework</groupId>
  20. <artifactId>spring-beans</artifactId>
  21. <version>5.1.5.RELEASE</version>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework</groupId>
  25. <artifactId>spring-tx</artifactId>
  26. <version>5.1.5.RELEASE</version>
  27. </dependency>
  28. <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-aop</artifactId>
  32. <version>5.1.5.RELEASE</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework</groupId>
  36. <artifactId>spring-jdbc</artifactId>
  37. <version>5.1.5.RELEASE</version>
  38. </dependency>
  39. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  40. <dependency>
  41. <groupId>org.springframework</groupId>
  42. <artifactId>spring-context</artifactId>
  43. <version>5.1.5.RELEASE</version>
  44. </dependency>
  45.  
  46. </dependencies>

(2)spring配置

在resource中创建一个spring.xml文件

spring.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6.  
  7. xmlns:context="http://www.springframework.org/schema/context"
  8.  
  9. xmlns:aop="http://www.springframework.org/schema/aop"
  10.  
  11. xmlns:tx="http://www.springframework.org/schema/tx"
  12.  
  13. xsi:schemaLocation="http://www.springframework.org/schema/beans
  14.  
  15. http://www.springframework.org/schema/beans/spring-beans.xsd
  16.  
  17. http://www.springframework.org/schema/context
  18.  
  19. http://www.springframework.org/schema/context/spring-context.xsd
  20.  
  21. http://www.springframework.org/schema/aop
  22.  
  23. http://www.springframework.org/schema/aop/spring-aop.xsd
  24.  
  25. http://www.springframework.org/schema/tx
  26.  
  27. http://www.springframework.org/schema/tx/spring-tx.xsd">
  28.  
  29. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  30.  
  31. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  32.  
  33. <property name="url" value="jdbc:mysql://localhost:3306/zml?useUnicode=true&amp;characterEncoding=utf-8"/>
  34.  
  35. <property name="username" value="root"/>
  36.  
  37. <property name="password" value="root"/>
  38.  
  39. </bean>
  40.  
  41. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  42.  
  43. <property name="dataSource" ref="dataSource" ></property>
  44.  
  45. </bean>
  46.  
  47. </beans>
(二)JDBC  Template基本使用
(三)update和batchupdate

(1)使用方法

(2)实例

  1. public class UserTest {
  2. //创建jdbcTemplate对象,调用方法
  3.  
  4. private JdbcTemplate jdbcTemplate;
  5.  
  6. {
  7.  
  8. ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
  9.  
  10. jdbcTemplate=(JdbcTemplate)context.getBean("jdbcTemplate");
  11.  
  12. }
  13.  
  14. //增加
  15.  
  16. public void add1(){
  17.  
  18. String sql="insert into users values(null,?,?)";
  19.  
  20. jdbcTemplate.update(sql,"小木","123");
  21.  
  22. }
  23.  
  24. //修改
  25.  
  26. public void update1(){
  27.  
  28. String sql="update users set password=? where username=?";
  29.  
  30. jdbcTemplate.update(sql,new Object[]{"123456","张三"});
  31.  
  32. }
  33.  
  34. //删除
  35.  
  36. public void delete1(){
  37.  
  38. String sql="delete from users where username=?";
  39.  
  40. jdbcTemplate.update(sql,"李四");
  41.  
  42. }
  43.  
  44. //批量增加,修改,删除
  45.  
  46. public void batchUpdate(){
  47.  
  48. String[] sql={
  49.  
  50. "insert into users values(null,'小花','123')",
  51.  
  52. "insert into users values(null,'喵喵','123')",
  53.  
  54. "update users set password='123456' where username='小木'",
  55.  
  56. "delete from users where username='zhang'"
  57.  
  58. };
  59.  
  60. jdbcTemplate.batchUpdate(sql);
  61.  
  62. }
  63.  
  64. //批量增加
  65.  
  66. @Test
  67.  
  68. public void batchUpdate2(){
  69.  
  70. String sql="insert into users values(null,?,?)";
  71.  
  72. List<Object[]> list=new ArrayList<Object[]>();
  73.  
  74. list.add(new Object[]{"哈哈","123"});
  75.  
  76. list.add(new Object[]{"小黑","123"});
  77.  
  78. list.add(new Object[]{"沐沐","123"});
  79.  
  80. jdbcTemplate.batchUpdate(sql,list);
  81.  
  82. }
  83.  
  84. }
(四)查询

(1)查询简单数据项

(a)使用方法

(b)实例

  1. //查询密码为123的所有用户的用户名
  2.  
  3. public void select(){
  4.  
  5. String sql="select username from users where password=?";
  6.  
  7. List<String> li=jdbcTemplate.queryForList(sql, String.class,"123");
  8.  
  9. System.out.println(li);
  10.  
  11. }
  12.  
  13. //查询用户有几人
  14.  
  15. public void selectcount(){
  16.  
  17. String sql="select count(*) from users ";
  18.  
  19. int list=jdbcTemplate.queryForObject(sql,Integer.class);
  20.  
  21. System.out.println(list);
  22.  
  23. }
  1.  

(2)查询复杂对象

(a)使用方法

(b)实例

  1. //查询用户名为喵喵的用户的所有信息
  2.  
  3. public void selectname(){
  4.  
  5. String sql="select * from users where username=?";
  6.  
  7. Map<String ,Object> map=jdbcTemplate.queryForMap(sql, "喵喵");
  8.  
  9. System.out.println(map);
  10.  
  11. }
  12.  
  13. //查询所有用户的所有信息
  14.  
  15. public void selectall(){
  16.  
  17. String sql="select * from users ";
  18.  
  19. List<Map<String ,Object>> map=jdbcTemplate.queryForList(sql);
  20.  
  21. System.out.println(map);
  22.  
  23. }
  24.  
  25. //查询后返回一个实体对象
  26.  
  27. public void selectone(){
  28.  
  29. String sql="select * from users where username=?";
  30.  
  31. Users users=jdbcTemplate.queryForObject(sql,new UserRowMapper(),"小花");
  32.  
  33. System.out.println(users);
  34.  
  35. }
  36.  
  37. //查询所有用户信息,实体封装
  38.  
  39. @Test
  40.  
  41. public void selectAll(){
  42.  
  43. String sql="select * from users ";
  44.  
  45. List<Users> us=jdbcTemplate.query(sql,new UserRowMapper());
  46.  
  47. System.out.println(us);
  48.  
  49. }
  50. //将RowMapper分离,简化代码
  51.  
  52. private class UserRowMapper implements RowMapper<Users> {
  53.  
  54. @Override
  55.  
  56. public Users mapRow(ResultSet resultSet, int i) throws SQLException {
  57.  
  58. Users u = new Users();
  59.  
  60. u.setId(resultSet.getInt("id"));
  61.  
  62. u.setUsername(resultSet.getString("username"));
  63.  
  64. u.setPassword(resultSet.getString("password"));
  65.  
  66. return u;
  67.  
  68. }
  69.  
  70. }

spring学习笔记之---JDBC Template的更多相关文章

  1. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  2. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  3. 不错的Spring学习笔记(转)

    Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是s ...

  4. Spring学习笔记(六)—— SSH整合

    一.整合原理 二.整合步骤 2.1 导包 [hibernate] hibernate/lib/required hibernate/lib/jpa 数据库驱动 [struts2] struts-bla ...

  5. Java架构师之路 Spring学习笔记(一) Spring介绍

    前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...

  6. Spring学习笔记(一)

    Spring学习笔记(一) 这是一个沉淀的过程,大概第一次接触Spring是在去年的这个时候,当初在实训,初次接触Java web,直接学习SSM框架(当是Servlet都没有学),于是,养成了一个很 ...

  7. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  8. Spring学习笔记2——表单数据验证、文件上传

    在上一章节Spring学习笔记1——IOC: 尽量使用注解以及java代码中,已经搭建了项目的整体框架,介绍了IOC以及mybatis.第二节主要介绍SpringMVC中的表单数据验证以及文件上传. ...

  9. 【Spring学习笔记-MVC-15.1】Spring MVC之异常处理=404界面

    作者:ssslinppp       异常处理请参考前篇博客:<[Spring学习笔记-MVC-15]Spring MVC之异常处理>http://www.cnblogs.com/sssl ...

随机推荐

  1. 20191110 Spring Boot官方文档学习(4.1)

    4. Spring Boot功能 4.1.Spring应用 便捷的启动方式: public static void main(String[] args) { SpringApplication.ru ...

  2. Python 内置函数super

    super()函数是用于调用父类/超类的一个方法 super是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没有问题,但是如果使用多继承,会涉及到查找顺序(MRO),重复调用(钻石继 ...

  3. Charles的app抓包配置和抓包节点为unknown、乱码、手机无法上网等问题的处理

    关于手机端抓包配置Charles的一些配置,并且解决,请求存在unknown和内容为乱码的问题 关于请求节点为unknown.内容为乱码和手机端无法访问网络其实都是手机端证书配置问题导致,有的配置后还 ...

  4. java基础笔记)(5)

    xml文件:树形存储格式:通过相同的xml文件实现不同的软件.不同的操作系统.不同的平台之间的信息通讯: 声明xml文件: <?xml version="1.0" encod ...

  5. win10上的Django项目实现内网映射

    网上有很多关于django项目发布uwsgi模块在 windows上的下载以及安装过程, 可是他们也并没有真正的在windows上使用到这个模块(至少目前在网上还没看到过), 而大部分人就是在Djan ...

  6. Cocos2d-x-javaScript 的webSocket的代码

    var WebSocket = WebSocket || window.WebSocket || window.MozWebSocket; var WebSocketManager = cc.Clas ...

  7. 剑指offer-用两个栈实现队列-栈和队列-python

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.   # -*- coding:utf-8 -*- class Solution: def __init_ ...

  8. j网络爬虫之WebMagic

    WebMagic官网:http://webmagic.io/ 注意: 1.在自定义PageProcessor中使用System.out.println(“str”),Spider.create(new ...

  9. Antd时间选择框汉化问题总结------国际化全局设置

    import zh_CN from 'antd/lib/locale-provider/zh_CN'; import 'moment/locale/zh-cn'; import { ConfigPro ...

  10. <mvc:argument-resolvers> 自定义注解处理参数

    直接看引自: http://blog.csdn.net/u013160932/article/details/50609092