首先构建项目选择mybatis 会自动生成依赖 生成所需要的mybatis启动器
1、配置yml文件
spring:
datasource:
username: root
password: xxxxx
url: jdbc:mysql://127.0.0.1:3306/mybatis-boot?serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 8
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
filters: stat,wall,logback
maxPoolPreparedStatementPerConnectionSize: 25
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
2、配置 mybatis配置文件 【druid配置(略)】
/**
* mybatis注解版 相关配置类
* @author AnQi
* @date 2020/3/8 10 16:49
* @description
*/
@Configuration
public class MybatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
ConfigurationCustomizer customizer = new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
//开启驼峰命名方式
configuration.setMapUnderscoreToCamelCase(true);
}
};
return customizer;
}
}
3、mapper接口
/**
* 使用注解版
* @author AnQi
* @date 2020/3/8 09 55:52
* @description
*/
//@Mapper//指定这是操作数据的mapper
public interface ProviderMapper {
@Select("select * from provider where pid =#{pid}")
Provider getProviderById(Integer pid);
//useGeneratedKeys是否使用自增主键,keyProperty 指定实体类中的哪一个属性封装主键值
@Options(useGeneratedKeys = true , keyProperty = "pid" )
@Insert("insert into provider(providerName)values (#{providerName})")
int addProvider(Provider provider);
@Delete("delete from provider where pid = #{[pid}")
int deleteProviderById(Integer pid);
@Update("UPDATE provider set providerName = #{providerName} where pid = #{pid}")
int updateProvider(Provider provider);
}
@Mapper指定这是操作数据的mapper (可以选择 在启动类使用 mapperscan 统一装配mapper)
@MapperScan("cn.qqqking.springboot.mapper")
@SpringBootApplication
public class SpringBoot08DataMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot08DataMybatisApplication.class, args);
}
}
实体类(略)
4、controller层
@RestController
public class ProviderController {
@Autowired
ProviderMapper providerMapper;
@GetMapping("/provider/{pid}")
public Provider getProvider(@PathVariable("pid") Integer pid) {
Provider provider = providerMapper.getProviderById(pid);
return provider;
}
@GetMapping("/provider")
public Provider addProvider(Provider provider) {
providerMapper.addProvider(provider);
return provider;
}
}