本文介绍在Spring Boot基础下配置数据源和经过JdbcTemplate编写数据访问的示例。html
在咱们访问数据库的时候,须要先配置一个数据源,下面分别介绍一下几种不一样的数据库配置方式。java
首先,为了链接数据库须要引入jdbc支持,在pom.xml
中引入以下配置:mysql
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
好比,咱们能够在pom.xml
中引入以下配置使用HSQLspring
<dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency>
pom.xml
中加入:链接生产数据源<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
在src/main/resources/application.properties
中配置数据源信息sql
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=dbuser spring.datasource.password=dbpass spring.datasource.driver-class-name=com.mysql.jdbc.Driver
当你将应用部署于应用服务器上的时候想让数据源由应用服务器管理,那么能够使用以下配置方式引入JNDI数据源。数据库
spring.datasource.jndi-name=java:jboss/datasources/customers
@Autowired
来注入到你本身的bean中来使用。使用JdbcTemplate操做数据库举例:咱们在建立User
表,包含属性name
、age
,下面来编写数据访问对象和单元测试用例。api
public interface UserService { /** * 新增一个用户 * @param name * @param age */ void create(String name, Integer age); /** * 根据name删除一个用户高 * @param name */ void deleteByName(String name); /** * 获取用户总量 */ Integer getAllUsers(); /** * 删除全部用户 */ void deleteAllUsers(); }
经过JdbcTemplate实现UserService中定义的数据访问操做服务器
@Service public class UserServiceImpl implements UserService { @Autowired private JdbcTemplate jdbcTemplate; @Override public void create(String name, Integer age) { jdbcTemplate.update("insert into USER(NAME, AGE) values(?, ?)", name, age); } @Override public void deleteByName(String name) { jdbcTemplate.update("delete from USER where NAME = ?", name); } @Override public Integer getAllUsers() { return jdbcTemplate.queryForObject("select count(1) from USER", Integer.class); } @Override public void deleteAllUsers() { jdbcTemplate.update("delete from USER"); } }
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(Application.class) public class ApplicationTests { @Autowired private UserService userSerivce; @Before public void setUp() { // 准备,清空user表 userSerivce.deleteAllUsers(); } @Test public void test() throws Exception { // 插入5个用户 userSerivce.create("a", 1); userSerivce.create("b", 2); userSerivce.create("c", 3); userSerivce.create("d", 4); userSerivce.create("e", 5); // 查数据库,应该有5个用户 Assert.assertEquals(5, userSerivce.getAllUsers().intValue()); // 删除两个用户 userSerivce.deleteByName("a"); userSerivce.deleteByName("e"); // 查数据库,应该有5个用户 Assert.assertEquals(3, userSerivce.getAllUsers().intValue()); } }
经过上面这个简单的例子,咱们能够看到在Spring Boot下访问数据库的配置依然秉承了框架的初衷:简单。咱们只须要在pom.xml中加入数据库依赖,再到application.properties中配置链接信息,不须要像Spring应用中建立JdbcTemplate的Bean,就能够直接在本身的对象中注入使用。上面介绍的JdbcTemplate
只是最基本的几个操做,更多其余数据访问操做的使用请参考:JdbcTemplate APIapp