Spring Boot之数据库访问

前几篇介绍了RESTful API的实现模板引擎的使用,可是这些内容不足以构建一个动态的WEB应用,做为一个后台服务,还须要各类类型的数据库,来持久化咱们的数据,为调用方提供数据来源,本篇则着重介绍一下如何在Spring Boot使用JDBC操做数据库,后续的篇章会介绍一些ORM框架与Spring Boot整合的案例。html

引入JDBC依赖

    为了链接数据库,咱们首先须要引入JDBC的起步依赖java

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

引入相应的数据库依赖

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

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

配置数据库链接配置

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

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对象
@Service
public 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注解直接注入。sql

  • 建立一个针对BookService的测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public 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使用,能够参考官方文档数据库

相关文章
相关标签/搜索