JDBC Template基本使用方法详解

 更新时间:2020年06月11日 14:32:19   作者:shouyaya  
这篇文章主要介绍了JDBC Template基本使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.使用maven引用依赖

<dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>

  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-beans</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aop</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-jdbc</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-tx</artifactId>
   <version>5.2.5.RELEASE</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.19</version>
  </dependency>
 </dependencies>

2.编写spring的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


  <!--配置dataSource-->
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/demo1?serverTimezone=UTC"></property>
    <property name="username" value="root"></property>
    <property name="password" value="root"></property>
  </bean>
  
<!--使用jdbcTemplate工具类-->
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
  </bean>
</beans>

3.ddl操作(建表之类)

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class test {
@Test
  public void test(){
    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("myApplication.xml");
    JdbcTemplate springTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    springTemplate.execute("create table test(id int,username varchar(10))");
  }
}

4.增删改:

对应的使用例子

public void testUpdate(){
    String sql = "insert into student(name,sex) values(?,?)";
    jdbcTemplate.update(sql,new Object[]{"张飞","男"});
  }

  public void testUpdate2(){
    String sql = "update student set sex=? where id=?";
    jdbcTemplate.update(sql,"女",1003);
  }

  public void testBatchUpdate(){
    String[] sqls={
        "insert into student(name,sex) values('关羽','女')",
        "insert into student(name,sex) values('刘备','男')",
        "update student set sex='女' where id=2001"
    };
    jdbcTemplate.batchUpdate(sqls);
  }

  public void testBatchUpdate2(){
    String sql = "insert into selection(student,course) values(?,?)";
    List<Object[]> list = new ArrayList<Object[]>();
    list.add(new Object[]{1005,1001});
    list.add(new Object[]{1005,1003});
    jdbcTemplate.batchUpdate(sql,list);
  }

5.查询

public void testQuerySimple1(){
    String sql = "select count(*) from student";
    int count = jdbcTemplate.queryForObject(sql,Integer.class);
    System.out.println(count);
  }

  public void testQuerySimple2(){
    String sql = "select name from student where sex=?";
    List<String> names = jdbcTemplate.queryForList(sql,String.class,"女");
    System.out.println(names);
  }

  public void testQueryMap1(){
    String sql = "select * from student where id = ?";
    Map<String,Object> stu = jdbcTemplate.queryForMap(sql,1003);
    System.out.println(stu);
  }

  public void testQueryMap2(){
    String sql = "select * from student";
    List<Map<String,Object>> stus = jdbcTemplate.queryForList(sql);
    System.out.println(stus);
  }

  public void testQueryEntity1(){
    String sql = "select * from student where id = ?";
    Student stu = jdbcTemplate.queryForObject(sql, new StudentRowMapper(), 1004);
    System.out.println(stu);
  }
  @org.junit.Test
  public void testQueryEntity2(){
    String sql = "select * from student";
    List<Student> stus = jdbcTemplate.query(sql,new StudentRowMapper());
    System.out.println(stus);
  }

  private class StudentRowMapper implements RowMapper<Student>{
    public Student mapRow(ResultSet resultSet, int i) throws SQLException {
      Student stu = new Student();
      stu.setId(resultSet.getInt("id"));
      stu.setName(resultSet.getString("name"));
      stu.setSex(resultSet.getString("sex"));
      stu.setBorn(resultSet.getDate("born"));
      return stu;
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Java的readBytes是怎么实现的

    详解Java的readBytes是怎么实现的

    众所周知,Java是一门跨平台语言,针对不同的操作系统有不同的实现,下面小编就来从一个非常简单的api调用带大家来看看Java具体是怎么做的吧
    2023-07-07
  • Java 多线程学习详细总结

    Java 多线程学习详细总结

    本文主要介绍 Java 多线程的知识资料,这里整理了详细的多线程内容,及简单实现代码,有需要的朋友可以参考下
    2016-09-09
  • 解决参数命名不规范,造成使用@NotNull进行校验出现的问题

    解决参数命名不规范,造成使用@NotNull进行校验出现的问题

    这篇文章主要介绍了解决参数命名不规范,造成使用@NotNull进行校验出现的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • SpringBoot开启异步调用方法

    SpringBoot开启异步调用方法

    这篇文章主要为大家详细介绍了SpringBoot开启异步调用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • SpringBoot配置连接两个或多个数据库的常用方法

    SpringBoot配置连接两个或多个数据库的常用方法

    在Spring Boot应用中连接多个数据库或数据源可以使用多种方式,本文讲给大家介绍两种常用的方法:使用Spring Boot官方支持的多数据源配置和使用第三方库实现多数据源,文章通过代码介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Java线程并发中常见的锁机制详细介绍

    Java线程并发中常见的锁机制详细介绍

    越来越多的互联网企业面临着用户量膨胀而带来的并发安全问题。接下来通过本文给大家介绍Java线程并发中常见的锁机制,感兴趣的朋友一起看看吧
    2016-05-05
  • 详解Java打包镜像部署

    详解Java打包镜像部署

    这篇文章主要介绍了Java打包镜像部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • 分布式Netty源码分析概览

    分布式Netty源码分析概览

    这篇文章主要为大家介绍了分布式Netty源码分析概览,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • SpringBoot集成Redis实现消息队列的方法

    SpringBoot集成Redis实现消息队列的方法

    这篇文章主要介绍了SpringBoot集成Redis实现消息队列的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)

    Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)

    这篇文章主要为大家详细介绍了如何利用Java语言实现超大Excel文件解析(XSSF,SXSSF,easyExcel)以及速度的对比,感兴趣的可以了解一下
    2022-07-07

最新评论