一、把对应的依赖都添加上:
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;@Beanpublic 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 {@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage("com.itheima.domain");ssfb.setDataSource(dataSource);return ssfb;}@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.itheima.dao");return msc;}
}
在创建SqlSessionFactory的函数内都是与原始的Mybatis-Config对应的。
事务管理使用mybatis-spring中默认配置的。
这里就是构建对应的映射文件。