JdbcTemplate简明教程

112 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

JdbcTemplate

它是spring框架中的一个对象, 一个操作数据库的模板类. 是对Jdbc API对象的简单封装.

导入JdbcTemplate

向pom.xml文件中导入spring-jdbc和spring-tx依赖

 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-jdbc</artifactId>
     <version>5.2.16.RELEASE</version>
 </dependency>
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-tx</artifactId>
     <version>5.2.16.RELEASE</version>
 </dependency>

使用Navicat创建users表

t_users

在代码中创建User类

 public class User {
     private String username;
     private String password;
 ​
     public String getUsername() {
         return username;
     }
 ​
     public void setUsername(String username) {
         this.username = username;
     }
 ​
     public String getPassword() {
         return password;
     }
 ​
     public void setPassword(String password) {
         this.password = password;
     }
 ​
     @Override
     public String toString() {
         return "User{" +
                 "username='" + username + ''' +
                 ", password='" + password + ''' +
                 '}';
     }
 }

手动创建数据源和模板对象

 // 创建数据源对象
 ComboPooledDataSource ds = new ComboPooledDataSource();
 ds.setJdbcUrl("jdbc:mysql://localhost:3306/LCLDataBase");
 ds.setUser("root");
 ds.setPassword("fengqing2018");
 ​
 // 创建Jdbc模板
 JdbcTemplate jt = new JdbcTemplate();
 ​
 // 给模板设置数据源对象
 jt.setDataSource(ds);

spring创建数据源和模板对象

  1. 创建jdbc.properties文件
 jdbc.jdbcUrl=jdbc:mysql://localhost:3306/LCLDataBase
 jdbc.user=root
 jdbc.password=fengqing2018
  1. 创建数据源和模板Bean
 <!--    加载配置文件-->
     <context:property-placeholder location="classpath:jdbc.properties"/>
 ​
 <!--    数据源对象-->
     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
         <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
         <property name="user" value="${jdbc.user}"/>
         <property name="password" value="${jdbc.password}"/>
     </bean>
 <!--    模板对象-->
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
         <property name="dataSource" ref="dataSource"/>
     </bean>

从容器中获得JdbcTemplate对象

 ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
 ​
 JdbcTemplate jt = app.getBean(JdbcTemplate.class);

JdbcTemplate的update方法

添加操作

 jt.update("insert into users (username, password) values (?, ?)", "yuer", "111222");

修改操作

 jt.update("update users set password = ? where username = ?", "111111", "tianming");

删除操作

jt.update("delete from users where username = ?", "yuer");

JdbcTemplate的query方法

查询一条数据

User u = jt.queryForObject("select * from users where username = ?", new BeanPropertyRowMapper<User>(User.class), "shaosiming");
System.out.println(u);

查询多条数据

List<User> userList = jt.query("select * from users", new BeanPropertyRowMapper<User>(User.class));
System.out.println(userList);

使用聚合语句

Integer i = jt.queryForObject("select count(*) from users", Integer.class);
System.out.println(i);