概述
对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template、Repository 来简化我们对数据访问层的操作,我们使用时只需进行简单的配置即可。
数据源获取
1、使用 Maven 构建 SpringBoot 项目,引入如下场景启动器:
2、配置数据库连接相关信息:
# application.yml
spring:
datasource:
username: root
password: root
url: jdbc:mysql://192.168.202.135:3306/springboot_jdbc
driver-class-name: com.mysql.jdbc.Driver
3、做完上述两个操作我们就可以直接测试获取数据源了:
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.SpringRunner;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DataJdbcApplicationTests {
@Autowired
public DataSource dataSource;
@Test
public void testDataSource() throws SQLException {
System.out.println(dataSource);
System.out.println(dataSource.getClass());
/*
org.apache.tomcat.jdbc.pool.DataSource@6107165{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=com.mysql.jdbc.Driver; maxActive=100;...}
class org.apache.tomcat.jdbc.pool.DataSource
*/
}
}
数据库操作
SpringBoot 通过 org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration
自动配置类为我们自动配置了 JdbcTemplate
,所以可以直接从容器中获取使用它。
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.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DataJdbcApplicationTests {
@Autowired
public JdbcTemplate jdbcTemplate;
@Test
public void testJdbcTemplate() throws SQLException {
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from user;");
System.out.println(maps);
/*
[{id=1, name=张三}]
*/
}
}
评论区