一、把对应的依赖都添加上:
mysql、mybatis、spring的依赖(都是基础的)
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
Spring中操作数据库专用的包:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
Spring整合mybatis用的包:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
二、具体细节步骤
首先在配置文件中,需要这两个配置文件:JdbcConfig(管理第三方的数据源)和SpringConfig(实现用注解开发)
JdbcConfig中代替最初mybatis-config.xml中的这一部分
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
使用的为Druid数据源
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
}
Value注解中如何读取jdbc.properties?
答:在SpringConfig中,也就是最基础的配置文件增加对应的properties文件注解:
@PropertySource("classpath:jdbc.properties")
当JdbcConfig配置完成之后导入到SpringConfig下
@Import({JdbcConfig.class ,MybatisConfig.class})
此时即可以访问数据库了。
三、
对于Mybatis-config.XML中的文件来说
第二层、第三层的内容都是为SqlSessionFactory服务,使创建的对象可以openSession()
这一段的内容是连接对应的数据库来写的,这一部分相当于JdbcConfig来完成了。
所以MyBaitsConfig中的配置如下
public class MybatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
ssfb.setTypeAliasesPackage("com.itheima.domain");
ssfb.setDataSource(dataSource);
return ssfb;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
在创建SqlSessionFactory的函数内都是与原始的Mybatis-Config对应的。
事务管理使用mybatis-spring中默认配置的。
这里就是构建对应的映射文件。