一、自動配置
在生產環境中,可以使用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); }