导入相关依赖坐标
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!--mybatis框架-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!--lombok,快速构建标准javabean类-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<!--spring坐标,支持jdk8.0,同时tomcat要求8.5以上-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<!--spring管理jdbc依赖-->
<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.0</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!--连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
<!--spring管理单元测试-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
编写配置类
编写数据库配置文件
创建jdbc配置类配置DataSource数据源
@PropertySource("classpath:jdbc.properties")
//TODO:构建数据库连接池对象DataSource
public class JdbcConfig {
//简单类型的依赖注入用@Value,其中$符号获取配置文件中的相应的键值
//注入驱动类名,表示为mysql数据库产品
@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的配置,使用@Bean注解
@Bean
public DataSource getConnection() {
//创建Druid数据源对象
DruidDataSource dataSource = new DruidDataSource();
//分别设置驱动类名、连接信息、用户名和密码
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
创建mybatis配置类整合mybatis
//TODO:配置SqlSessionFactory和MapperScannerConfigurer
public class MybatisConfig {
//第三方bean的配置,使用@Bean注解
@Bean
public SqlSessionFactoryBean getSqlSession(DataSource dataSource) {
//在Mybatis-Spring通过SqlSessionFactoryBean来创建SqlSessionFactory对象
//SqlSessionFactoryBean通过getObject方法来创建SqlSessionFactory对象
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//设置数据源
//设置此实例应为其管理事务的 JDBC 数据源。数据源应与 SqlSessionFactory 使用的数据源匹配
sqlSessionFactoryBean.setDataSource(dataSource);
//设置包路径别名
sqlSessionFactoryBean.setTypeAliasesPackage("com.ssm.domain");
return sqlSessionFactoryBean;
}
//第三方bean的配置,使用@Bean注解
@Bean
public MapperScannerConfigurer getMapper() {
MapperScannerConfigurer msc = new MapperScannerConfigurer();
//此属性允许您设置映射器接口文件的基本包。可以使用分号或逗号作为分隔符来设置多个包。映射器将从指定的包中递归搜索。
msc.setBasePackage("com.ssm.mapper");
return msc;
}
}
创建Spring主配置类,要导入Jdbc配置类和Mybatis配置类
//定义此类为Spring的配置类
@Configuration
//导入两个配置文件,用大括号包裹起来,以逗号分隔
@Import({MybatisConfig.class, JdbcConfig.class})
//@ComponentScan配置组件扫描指令以用于@Configuration类。
//提供与Spring XML的<context:component-scan>元素并行的支持。
//可以指定 basePackageClasses 或 basePackages(或其别名值)来定义要扫描的特定包。
//如果未定义特定包,则将从声明此注释的类的包进行扫描。
@ComponentScan("com.ssm")
public class SpringConfig {
}
编写测试类
在test包下创建测试类
使用@Runwith和@ContextConfiguration两个注解
//当一个类被@RunWith批注或扩展一个用@RunWith批注的类时,JUnit 将调用它引用的类来运行该类中的测试,而不是 JUnit 内置的运行器。
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration可用于声明基于路径的资源位置(通过位置或值属性)或组件类(通过类属性)
//classes用于加载应用程序上下文的组件类。
//配置classes后,点击旁边的小叶子可以到Spring配置类;
//其中可以配置多个,大括号包裹,逗号分隔
@ContextConfiguration(classes = {SpringConfig.class})
public class Demo {
@Test
public void test1() {
//编写测试内容
}
}