SpringBoot初学(4)– JdbcTemplate和Mybatis
前言
github: https://github.com/vergilyn/SpringBootDemo
代码位置:
一、Spring Boot集成JdbcTemplate或NamedParameterJdbcTemplate
spring boot中JdbcTemplate与NamedParameterJdbcTemplate都是被自动配置的,所以只要注入就可用。(在传统的spring中NamedParameterJdbcTemplate并没有被自动配置)
必须准备:
如果你使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa 'starter POMs',你将会自动获取对tomcat-jdbc的依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
application.properties:
#### 28.1.2. 连接到一个生产环境数据库 ## 注:其他的连接池可以手动配置。如果你定义自己的DataSource bean,自动配置不会发生。 #### ## Spring Boot能够从大多数数据库的url上推断出driver-class-name,那么你就不需要再指定它了。 spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver ## 默认会从url推断driver class spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl spring.datasource.username=vergilyn spring.datasource.password=409839163 ## JDNI # spring.datasource.jndi-name=java:jboss/datasources/customers
/* Spring的JdbcTemplate和NamedParameterJdbcTemplate类是被自动配置的, * 你可以在自己的beans中通过@Autowire直接注入它们。 */ @Repository public class JdbcTemplateDao { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private NamedParameterJdbcTemplate namedJdbc; @SuppressWarnings("unused") public Long testDao(){ Map<String,Object> param = new HashMap<String,Object>(); String sql = " select count(*) from child"; if(true){ sql += " where child_name = :name "; param.put("name", "周一"); } Long count = this.namedJdbc.queryForObject(sql, param, Long.class); System.out.println(count); return count; } }
@SpringBootApplication @RestController public class DatabaseApplication { @Autowired private JdbcTemplateDao dao; public static void main(String[] args) { SpringApplication.run(DatabaseApplication.class, args); } @RequestMapping("/jdbc") public String testDao(){ return dao.testDao()+""; } }
二、Spring boot集成Mybatis
2.1 准备
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency>
2.2 xml模式的mybatis配置
mybatis的sql映射xml, mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<package name="com.vergilyn.demo.springboot.mybatis.domain"/>
</typeAliases>
<mappers>
<mapper resource="config/mybatis/mapper/CityMapper.xml"/>
<mapper resource="config/mybatis/mapper/HotelMapper.xml"/>
</mappers>
</configuration>
application.properties中对应要指明此映射路径。
application.properties:
## spring.datasource.schema=classpath:config/mybatis/init-oracle.sql mybatis.config-location=classpath:config/mybatis/mybatis-config.xml
mybatis的mapper定义: