文章目录

  • JdbcTemplate基本使用
    • 一、开发工具及环境
    • 二、Spring Boot基本配置
      • 1、Spring initializr 设置
      • 2、pom.xml
      • 3、JdbcTemplateApplication类
      • 4、JdbcTemplateApplicationTests类
      • 5、MyMvcConfig类
    • 三、数据库搭建
      • 1、数据准备
      • 2、application.properties 配置数据库连接
      • 3、测试是否能连接上数据库
    • 四、整合JdbcTemplate
      • 1、创建实体类User.java
      • 2、创建UserDao.java
      • 3、创建JdbcController

JdbcTemplate基本使用

一、开发工具及环境

  • 电脑操作系统:Win10

  • Java版本:JDK1.8

  • MySQL数据库版本:mysql-8.0.26-winx64

  • 编辑器:IntelliJ IDEA 2021.2 企业版

  • SpringBoot版本:2.6.3

  • 工作目录

二、Spring Boot基本配置

1、Spring initializr 设置

2、pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>jdbcTemplate</artifactId><version>0.0.1-SNAPSHOT</version><name>jdbcTemplate</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

3、JdbcTemplateApplication类

package com.example.jdbcTemplate;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class JdbcTemplateApplication {public static void main(String[] args) {SpringApplication.run(JdbcTemplateApplication.class, args);}}

4、JdbcTemplateApplicationTests类

package com.example.jdbcTemplate;import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class JdbcTemplateApplicationTests {@Testvoid contextLoads() {}}

5、MyMvcConfig类

package com.example.jdbcTemplate.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.util.Locale;//全面扩展SpringMVC  dispatcherServlet
@Configuration
@EnableWebMvc
public class MyMvcConfig implements WebMvcConfigurer {//ViewResolver 实现了视图解析器接口的类,我们就可以把它看做视图解析器@Beanpublic ViewResolver myViewResolver(){return new MyViewResolver();}public static class MyViewResolver implements ViewResolver{@Overridepublic View resolveViewName(String viewName, Locale locale) throws Exception {return null;}}
}

三、数据库搭建

1、数据准备

创建User表,并插入三行数据

CREATE TABLE `jdbctemplate`.`User`( `id` INT(4) NOT NULL, `username` VARCHAR(30) NOT NULL, `password` VARCHAR(30) NOT NULL, `email` VARCHAR(30), `gender` INT(1), `birth` DATE, PRIMARY KEY (`id`) ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `jdbctemplate`.`user` (`id`, `username`, `password`, `email`, `gender`, `birth`) VALUES ('1', 'zhangsan', '123456', 'test01@qq.com', '1', '2000-06-14');
INSERT INTO `jdbctemplate`.`user` (`id`, `username`, `password`, `email`, `gender`, `birth`) VALUES ('2', 'xiaoming', '654321', 'test02@qq.com', '1', '2001-07-03');
INSERT INTO `jdbctemplate`.`user` (`id`, `username`, `password`, `email`, `gender`, `birth`) VALUES ('3', 'zhangcuihua', '123456789', 'test03@qq.com', '0', '1999-08-12');

2、application.properties 配置数据库连接

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/jdbcTemplate?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3、测试是否能连接上数据库

package com.example.jdbcTemplate;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;@SpringBootTest
class JdbcTemplateApplicationTests {//DI注入数据源@AutowiredDataSource dataSource;@Testvoid contextLoads() throws SQLException {//看一下默认数据源System.out.println(dataSource.getClass());//获得连接Connection connection = dataSource.getConnection();System.out.println(connection);//关闭连接connection.close();}}

运行测试是否运行成功,如果成功,则说明成功连接数据库。

四、整合JdbcTemplate

先创建pojo、dao、controller三个文件夹

1、创建实体类User.java

在pojo文件夹中新建User类

package com.example.jdbcTemplate.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Integer id;private String username;private String password;private String email;private Integer gender;//0:女生;1:男生private Date birth;}

2、创建UserDao.java

在Dao文件夹中创建UserDao.java并整合JdbcTemplate

package com.example.jdbcTemplate.dao;import com.example.jdbcTemplate.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;import java.util.List;
import java.util.Map;@Repository
public class UserDao {@AutowiredJdbcTemplate jdbcTemplate;public List<Map<String,Object>> getUserList(){String sql = "select * from `user`";List<Map<String, Object>> userList = jdbcTemplate.queryForList(sql);return userList;}public User getUserById(int id){String sql = "select * from `user` where id="+id;User user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(User.class));return user;}public String addUser(User user){String sql = "insert into `user`(id,username,password,email,gender,birth) values(?,?,?,?,?,?)";Object[] objects = new Object[6];objects[0] = user.getId();objects[1] = user.getUsername();objects[2] = user.getPassword();objects[3] = user.getEmail();objects[4] = user.getGender();objects[5] = user.getBirth();jdbcTemplate.update(sql,objects);return "add ok";}public String updateUser(User user){String sql = "update `user` set username=?,password=?,email=?,gender=?,birth=? where id=?";Object[] objects = new Object[6];objects[0] = user.getUsername();objects[1] = user.getPassword();objects[2] = user.getEmail();objects[3] = user.getGender();objects[4] = user.getBirth();objects[5] = user.getId();jdbcTemplate.update(sql,objects);return "update ok";}public String deleteUserById(int id){String sql = "delete from `user` where id="+id;jdbcTemplate.update(sql);return "delete ok";}
}

3、创建JdbcController

package com.example.jdbcTemplate.controller;import com.example.jdbcTemplate.dao.UserDao;
import com.example.jdbcTemplate.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;
import java.util.List;
import java.util.Map;@RestController
public class JdbcController {@AutowiredUserDao userDao;@GetMapping({"/","/userList"})public String getUserList(){List<Map<String, Object>> userList = userDao.getUserList();return userList.toString();}@GetMapping("/user/{id}")public String getUserById(@PathVariable("id") Integer id){User user = userDao.getUserById(id);return user.toString();}@GetMapping("/addUser")public String addUser(){User user = new User(4, "chenyonwu", "xiangyue2035", "test04@qq.com", 1, new Date());String s = userDao.addUser(user);return s;}@GetMapping("/updateUser")public String updateUser(){User user = new User(4, "AAA", "123456", "test05@qq.com", 0, new Date());String s = userDao.updateUser(user);return s;}@GetMapping("/deleteUser/{id}")public String deleteUser(@PathVariable("id") Integer id){String s = userDao.deleteUserById(id);return s;}
}

SpringBoot JdbcTemplate相关推荐

  1. SpringBoot+JdbcTemplate通用Mapper的实现

    文章目录 SpringBoot+JdbcTemplate通用Mapper的实现 通用Mapper 针对User的jdbcMapper 针对 User的Service 相应的Controller Spr ...

  2. Springboot+JdbcTemplate +thymeleaf 页面 做迷你版的bug系统

    https://www.cnblogs.com/qianjinyan/p/10065160.html  在我上一篇随笔中介绍了关于要做的系统的数据结构,连接如上 今天实现连接mssql server, ...

  3. SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用

    什么是JdbcTemplate 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架. 作为 SpringJDBC 框架的核心, JDB ...

  4. jdbcTemplate 后台接口中的分页

    Springboot+jdbcTemplate  对查询结果列表做分页, 之前开发的小项目,数据逐渐增多,每次返回所有的查询结果,耗费性能和时间 想到做分页. 于是从简单的分页做起. jdbcTemp ...

  5. Spring Boot JdbcTemplate 入门

    原创出处 http://www.iocoder.cn/Spring-Boot/JdbcTemplate/ 「芋道源码」 1. 概述 虽然说,我们现在项目的 DAL 数据访问层,大多使用 MyBatis ...

  6. 必学框架新版SpringBoot教程(下集)

    个人简介 作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门. 文章目录 个人简介 SpringBoot+JDB ...

  7. 为什么不推荐使用uuid或者雪花id作为主键?

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.MySQL和程序实例 1.1 要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,use ...

  8. 使用雪花id或uuid作为Mysql主键,被老板怼了一顿!

    点击关注公众号,Java干货及时送达一.mysql和程序实例1.1 要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示 ...

  9. 为什么MySQL不推荐使用uuid或者雪花id作为主键?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:Yrion cnblogs.com/wyq178/p/125 ...

最新文章

  1. graphql_普通英语GraphQL指南
  2. parent winform 位置_winform 弹出窗体指定位置
  3. 2020-11-06 Python OpenCV给证件照换底色
  4. 机器学习中什么是端到端的训练方法(端到端学习)?(end2end learning)
  5. 2017.12.1T19_B2_2zuoye
  6. pip 安装_安装 pip 轻松管理 PyPI 软件包 | Linux 中国
  7. 使用 nw-builder 构建跨平台桌面应用程序
  8. hdu 3473 Minimum Sum 划分树
  9. 开发环境运行正常,发布服务器后提示HTTP 错误 403.14 - Forbidden
  10. NetBeans 时事通讯(刊号 # 51 - Apr 07, 2009)
  11. ClassNotFoundException和NoClassDefError之间的区别
  12. Oracle文件路径——.dbf与.ora
  13. 《R数据可视化手册》——3.8 绘制百分比堆积条形图
  14. 奥卡姆剃刀定律在程序设计中的应用[化繁为简]
  15. 编程中遇到的优秀网站收藏
  16. SAP BASIS ADM100 中文版 Unit 7(1)
  17. 8/11 Perl和Postgresql联合在京交流会 Perl6项目经理远道参加
  18. 高数学习日记——矢量场与数量场的概念
  19. 0xbc指令 st75256_st75256 - 涂Sir的个人空间 - OSCHINA - 中文开源技术交流社区
  20. st3搭建python开发环境

热门文章

  1. c语言float小数点精度
  2. 如何实现java主线程等待子线程执行完毕之后再执行?
  3. ⭐算法入门⭐《哈希表》中等05 —— LeetCode 215. 数组中的第K个最大元素
  4. mmdet2.7 doc
  5. influxdb 笔记: Continuous Queries - CQs
  6. 如何解决 could not open `E:\java\lib\amd64\jvm.cfg‘
  7. pppoe linux软件,在Ubuntu 18.04上编译安装pppoe客户端软件
  8. C语言实现扫雷 附带源代码
  9. H5跳回小程序的wx.miniProgram.navigateTo不起效果,无法跳转页面,已解决
  10. php实现token验证,PHP如何实现Token验证