博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot之数据库访问
阅读量:6091 次
发布时间:2019-06-20

本文共 2574 字,大约阅读时间需要 8 分钟。

hot3.png

前几篇介绍了、,但是这些内容不足以构建一个动态的WEB应用,作为一个后台服务,还需要各种类型的数据库,来持久化我们的数据,为调用方提供数据来源,本篇则着重介绍一下如何在Spring Boot使用JDBC操作数据库,后续的篇章会介绍一些ORM框架与Spring Boot整合的案例。

引入JDBC依赖

    为了连接数据库,我们首先需要引入JDBC的起步依赖

org.springframework.boot
spring-boot-starter-jdbc

引入相应的数据库依赖

    数据库的种类比较多,有H2、HSQL、Derby、Mysql、Oracle等等,此处我们以mysql为例介绍,引入mysql依赖包

mysql
mysql-connector-java

配置数据库连接配置

    在src/main/resources/application.yml中添加数据库的相关配置

spring:  datasource:    url: jdbc:mysql://localhost:3306/restful?useUnicode=true&characterEncoding=UTF-8&useSSL=false    username: root    password: root    driver-class-name: com.mysql.jdbc.Driver

 使用JDBC操作数据库

  • 创建一个book表,表中有两个字段“name”、“isbn”两个字段。创建一个BookService接口
public interface BookService {    /**     * 添加一本书     * @param name     * @param isbn     */    void addBook(String name, String isbn);    /**     * 根据isbn删除     * @param isbn     */    void deleteBook(String isbn);    /**     * 获取数据库中书本总数     * @return     */    Integer getBookCount();    /**     * 删除所有数据     */    void deleteAll();}
  • 实现接口并注入JdbcTemplate对象
@Servicepublic class BookServiceImpl implements BookService{    @Resource    private JdbcTemplate jdbcTemplate;    @Override    public void addBook(String name, String isbn) {        jdbcTemplate.update("insert into BOOK(NAME, ISBN) values(?, ?)", name, isbn);    }    @Override    public void deleteBook(String isbn) {        jdbcTemplate.update("delete from BOOK where ISBN = ?", isbn);    }    @Override    public Integer getBookCount() {        return jdbcTemplate.queryForObject("select count(1) from BOOK", Integer.class);    }    @Override    public void deleteAll() {        jdbcTemplate.update("delete from BOOK");    }}

    由于Spring Boot中JdbcTemplate是自动配置的,你可以直接使用@Autowired或者@Resource注解直接注入。

  • 创建一个针对BookService的测试类
@RunWith(SpringRunner.class)@SpringBootTestpublic class Demo4ApplicationTests {	@Autowired	private BookService bookService;	@Before	public void setUp() {		// 准备,清空user表		bookService.deleteAll();	}	@Test	public void contextLoads() {		// 插入5本书		bookService.addBook("a", "1");		bookService.addBook("b", "2");		bookService.addBook("c", "3");		bookService.addBook("d", "4");		bookService.addBook("e", "5");		// 查数据库,应该有5本书		Assert.assertEquals(5, bookService.getBookCount().intValue());		// 删除两本书		bookService.deleteBook("1");		bookService.deleteBook("2");		// 查数据库,应该有3本书		Assert.assertEquals(3, bookService.getBookCount().intValue());	}}

    至此即完成jdbc操作数据库的简单操作,当然这只是几个最基本的操作,如果大家想了解更多的JdbcTemplate使用,可以参考。

 

 

转载于:https://my.oschina.net/wangxincj/blog/811443

你可能感兴趣的文章
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>