一、自动配置
在生产环境中,可以使用DataSource池进行自动配置。
如果你使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa 'starter POMs',你将会自动获取对tomcat-jdbc的依赖。
通过spring-boot-starter-jdbc快速配置数据源,需要引入的maven依赖:
<!--spring-boot-starter-jdbc自动配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>2.2.0.RELEASE</version> </dependency> <!--数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version> </dependency>
DataSource配置通过外部配置文件的spring.datasource.*属性控制。示例中,你可能会在application.properties中声明下面的片段:
#数据库配置
spring.datasource.url=jdbc:mysql://localhost:port/test
spring.datasource.username=root
spring.datasource.password=***
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
测试代码:
@Autowired private DataSource dataSource; @Test void springDataSourceTest() { try { Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from article1"); while(resultSet.next()){ JSONObject rsJson = new JSONObject(); ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); for (int i = 0; i < resultSetMetaData.getColumnCount(); i++) { String field = resultSetMetaData.getColumnLabel(i+1); rsJson.put(field.toLowerCase(), resultSet.getObject(field)); } System.out.println(rsJson); } statement.close(); connection.close(); } catch (Exception exception) { exception.printStackTrace(); } }
二、使用JdbcTemplate
Spring的JdbcTemplate是被自动配置的,可以beans中通过@Autowire直接注入它们。
测试代码:
@Autowired private JdbcTemplate jdbcTemplate; @Test void springJdbcTemplateTest() { String sql = "select * from article1"; List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql); System.out.println(resultList); }