1.dao层结构图
2.配置文件配置数据源
#dao层mybatis配置
spring.datasource.url=jdbc:mysql://localhost:3306/demo?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useAffectedRows=true
spring.datasource.username=root
spring.datasource.password=123456
3.Java API读取数据库配置
(1)使用@ConfigurationProperties注解
ConfigurationProperties(prefix = "spring.datasource"):为当前注入的bean对象读取配置文件以spring.datasource开头的配置项,如果之后的部分和实体类的属性一致的话,会将配置的内容注入给对象的属性中
@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = "spring.datasource")
public class JDBCProperties {
private String url;
private String username;
private String password;
private String driver;
}
(2)Mybatis映射mapper、xml文件配置
/**
* 1.注入配置文件
* 2.加载jdbc文件配置
* 3.开启事务
* 4.扫描java mapper文件地址
*/
@Configuration
@EnableConfigurationProperties(com.vivo.internet.demo.dao.config.JDBCProperties.class)
@EnableTransactionManagement
@MapperScan("com.vivo.internet.demo.dao.mapper")
public class MybatisConfig {
@Autowired
private JDBCProperties properties;
/**
* 设置数据源和相应的连接属性
* @return
*/
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(properties.getUrl());
dataSource.setUsername(properties.getUsername());
dataSource.setPassword(properties.getPassword());
dataSource.setDriverClassName(properties.getDriver());
return dataSource;
}
/**
* 创建sql连接,映射mapper.xml文件地址,加载mybatis配置
* @param dataSource
* @return
* @throws IOException
*/
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws IOException {
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
String mapperPattern = "META-INF/mybatis/*.xml";
Resource[] configResource = pmrpr.getResources(mapperPattern);
sqlSessionFactory.setMapperLocations(configResource);
sqlSessionFactory.setConfigLocation(new ClassPathResource("META-INF/mybatis-configs.xml"));
return sqlSessionFactory;
}
}
(3)mybatis xml文件配置,为上面的mybatis-configs.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>
<settings>
<!-- 打印sql日志 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
</configuration>