导入坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.17.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
创建数据库配置文件
jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=123456
提供jdbcconfig
public class DbConfig {
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
/**
* 配置德鲁伊连接池
* @return
*/
@Bean
public DataSource dataSource(){
DruidDataSource source = new DruidDataSource();
source.setUrl(url);
source.setDriverClassName(driver);
source.setPassword(password);
source.setUsername(username);
return source;
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager manager = new DataSourceTransactionManager();
manager.setDataSource(dataSource);
return manager;
}
}
springconfig
@Configuration
@ComponentScan(value = {"cn.sycoder.service","cn.sycoder.dao"})
@EnableTransactionManagement
@PropertySource("classpath:db.properties")
@Import({DbConfig.class,MybatisConfig.class})
public class SpringConfig {
}
mybatis 交给spring管理
public class MybatisConfig {
@Bean
public SqlSessionFactoryBean sessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setTypeAliasesPackage("cn.sycoder.domain");
return bean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer configurer = new MapperScannerConfigurer();
configurer.setBasePackage("cn.sycoder.dao");
return configurer;
}
}
创建模块并填入基础信息


添加依赖

等价于手动添加配置依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
添加mysql配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot_ssm
username: root
password: 123456
创建 domain
@Data
public class Item {
private Long id;
private String name;
private String remark;
}
创建 mapper
@Mapper
public interface ItemMapper {
@Insert("insert into item(name,remark) value(#{name},#{remark})")
void insert(Item item);
@Select("select * from item where id = #{id}")
public Item getById(Long id);
}
测试验证
@SpringBootTest
class SpringbootSsmApplicationTests {
@Autowired
ItemMapper mapper;
@Test
void contextLoads() {
Item item = new Item();
item.setName("上云 javase 精讲");
item.setRemark("课程免费,知识全面");
mapper.insert(item);
System.out.println(mapper.getById(1L));
}
}
默认springboot会给我们使用 Hikari 连接池

整合德鲁伊
导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.15</version>
</dependency>
配置如下
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/springboot_ssm
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
日志查看

配置总结
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
传统方式
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class ItemTest {
@Autowired
IItemService service;
@Test
public void save(){
Item item = new Item();
item.setName("单元测试");
item.setRemark("单元测试");
item.setType("单元测试");
boolean save = service.save(item);
System.out.println(save);
}
}
现在的使用
@SpringBootTest
class SpringbootSsmApplicationTests {
@Autowired
ItemMapper mapper;
@Test
void contextLoads() {
Item item = new Item();
item.setName("上云 javase 精讲");
item.setRemark("课程免费,知识全面");
mapper.insert(item);
System.out.println(mapper.getById(1L));
}
}