声明:本案例学习http://blog.csdn.net/je_ge,在此感谢je_ge提供的学习用的资料

1、项目结构

2、pom.xml的内容

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.jege.spring.boot</groupId><artifactId>spring-boot-jdbc</artifactId><version>1.0.0.RELEASE</version><packaging>jar</packaging><name>spring-boot-jdbc</name><url>http://blog.csdn.net/je_ge</url><developers><developer><id>je_ge</id><name>je_ge</name><email>1272434821@qq.com</email><url>http://blog.csdn.net/je_ge</url><timezone>8</timezone></developer></developers><!-- 公共spring-boot配置,下面依赖jar文件不用在写版本号 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.1.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version></properties><dependencies><!-- 持久层 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- h2内存数据库 --><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><finalName>spring-boot-jdbc</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin></plugins></build>
</project>

3、User的内容

package com.jege.spring.boot.jdbc.entity;/*** @author JE哥* @email 1272434821@qq.com* @description:模型对象*/
public class User {private Long id;private String name;private Integer age;public User() {}public User(String name, Integer age) {this.name = name;this.age = age;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}

4、IUserDao的内容

package com.jege.spring.boot.jdbc.dao;import java.util.List;import com.jege.spring.boot.jdbc.entity.User;/*** @author JE哥* @email 1272434821@qq.com* @description:持久层接口,由spring自动生成其实现*/
public interface IUserDao {void dropTable();void createTable();void save(User user);List<User> findAll();void deleteAll();List<User> findByNameLike(String name);}

5、UserDaoImpl的内容

package com.jege.spring.boot.jdbc.dao.impl;import java.util.List;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 com.jege.spring.boot.jdbc.dao.IUserDao;
import com.jege.spring.boot.jdbc.entity.User;/*** @author JE哥* @email 1272434821@qq.com* @description:jdbc CRUD*/
@Repository
public class UserDaoImpl implements IUserDao {@AutowiredJdbcTemplate jdbcTemplate;@Overridepublic void dropTable() {jdbcTemplate.update("drop table t_user if exists");}@Overridepublic void createTable() {jdbcTemplate.update("create table t_user (" +"id bigint generated by default as identity, " +"age integer, " +"name varchar(255), " +"primary key (id))");}@Overridepublic void save(User user) {jdbcTemplate.update("insert into t_user(name,age) values(?,?)", user.getName(), user.getAge());}@Overridepublic List<User> findAll() {return jdbcTemplate.query("select id,name,age from t_user", BeanPropertyRowMapper.newInstance(User.class));}@Overridepublic void deleteAll() {jdbcTemplate.update("delete from t_user");}@Overridepublic List<User> findByNameLike(String name) {return jdbcTemplate.query("select id,name,age from t_user where name like ?", new Object[] { name },BeanPropertyRowMapper.newInstance(User.class));}}

6、Application的内容

package com.jege.spring.boot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author JE哥* @email 1272434821@qq.com* @description:spring boot 启动类*/@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

7、UserDaoTest的内容

package com.jege.spring.boot.data.jpa;import static org.assertj.core.api.Assertions.assertThat;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.jege.spring.boot.jdbc.dao.IUserDao;
import com.jege.spring.boot.jdbc.entity.User;/*** @author JE哥* @email 1272434821@qq.com* @description:*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest()
public class UserDaoTest {@AutowiredIUserDao userDao;// 每次执行Test之前先删除表,创建表@Beforepublic void before() throws Exception {userDao.dropTable();userDao.createTable();}@Testpublic void save() throws Exception {for (int i = 0; i < 10; i++) {User user = new User("jege" + i, 25 + i);userDao.save(user);}}@Testpublic void all() throws Exception {save();assertThat(userDao.findAll()).hasSize(10);}@Testpublic void findByName() throws Exception {save();assertThat(userDao.findByNameLike("jege%")).hasSize(10);}@Afterpublic void destroy() throws Exception {userDao.deleteAll();}}

SpringBoot使用JdbcTemplate案例(学习笔记)相关推荐

  1. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  2. ArcGIS案例学习笔记-找出最近距离的垂线

    ArcGIS案例学习笔记-找出最近距离的垂线 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于任意矢量要素类,查找最近距离并做图 数据: 方法: 0. 计算 ...

  3. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画

    ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...

  4. ArcGIS模型构建器案例学习笔记-字段处理模型集

    ArcGIS模型构建器案例学习笔记-字段处理模型集 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 由四个子模型组成 子模型1:判断字段是否存在 方法:python工 ...

  5. ArcGIS案例学习笔记2_1

    ArcGIS案例学习笔记2_1 联系方式:向日葵,135_4855_4328,xiexiaokui#qq.com 时间:第二天上午 案例1:学校选址 内容:栅格数据分析 教程:pdf page=323 ...

  6. ArcGIS案例学习笔记4_2_城乡规划容积率计算和建筑景观三维动画

    ArcGIS案例学习笔记4_2_城乡规划容积率计算和建筑景观三维动画 概述 计划时间:第4天下午 目的:城市规划容积率计算和建筑三维景观动画 教程: pdf page578 数据:实验数据\Chp13 ...

  7. Unity MVC 案例学习笔记《二》

    MVC 案例学习笔记 注册事件,就是把事件加入到事件字典 发送事件,并携带参数,就是在事件字典中遍历找到具体的 controller 进行处理 using System.Collections; us ...

  8. Hypermesh案例学习笔记

    根据我要自学网Hypermesh2017教程,1-10~1-13课程学习笔记 面板介绍 直接放教程里的图了 模型静力分析 模型导入与简化 尽量使用板壳单元,因此抽取模型中面: 点一下模型,点extra ...

  9. springboot尚硅谷雷神学习笔记

    学习要求 熟悉Spring基础 熟悉Maven使用 环境要求 Java8及以上 Maven 3.3及以上:https://docs.spring.io/spring-boot/docs/current ...

最新文章

  1. 面向对象的五大原则与IOC
  2. 什么是启发式?什么是产生式?
  3. redispython源文件_Redis与Python在项目中的交互
  4. leetcode_894. All Possible Full Binary Trees
  5. Mac过热降频的罪魁祸首,竟是插到了左边的Type-C口
  6. .Net 中的反射(反射特性) - Part.3
  7. 10个顶级的CSS3代码生成器
  8. C#委托,事件理解入门 (译稿)
  9. 对象反序列化出现类型不匹配的情况(spring-boot-devtools)
  10. linux内核路由反向检查,Linux路由设置 反向路由设置
  11. php curl 发送post请求带参数
  12. 加载elementor时出现问题_Elementor新手教程:怎么使用elementor设计网站页面!
  13. Eclipse Java快捷键
  14. 华为y220t android版本升级,华为 Y220T 刷机详细图文教程
  15. oracle 将钱转换万元单位,oracle 金额单位转换
  16. CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)
  17. (附源码)springboot电子病历管理APP 毕业设计 010350
  18. 二次型、特征值/向量、奇异值、特征值、奇异值分解、奇异值分解(SVD)原理与在降维中的应用
  19. 二叉树有关的高频面试题
  20. solar2lunar 实现农历、天干地支

热门文章

  1. python爬虫简单的添加代理进行访问
  2. Python中的GIL(全局解释器锁)
  3. wordcloud库的常规方法及词云绘制实例
  4. 深入理解 HTTPS
  5. wxWidgets:wxPixelData< Image, PixelFormat >类模板用法
  6. boost::hana::empty用法的测试程序
  7. boost::hana::suffix用法的测试程序
  8. boost::hana::deque用法的测试程序
  9. boost::fusion::fused用法的测试程序
  10. Boost:具有bind和weak_ptr的function_equal扥测试程序