1,导入Maven依赖
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--druid依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.18</version>
</dependency>
<!--日志依赖-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
如果是使用IDEA开发的可以选择快速开发springboot会自动导入pom文件,也不用写springboot启动类。
(1)
(2)
(3)
1.1,springboot启动类
@SpringBootApplication
public class JdbcSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(JdbcSpringbootApplication.class, args);
}
}
2,编写application.yml文件,配置datasource
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.84.128:3309/test
driverClassName: com.mysql.cj.jdbc.Driver
initialSize: 5
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,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
type: com.alibaba.druid.pool.DruidDataSource
3,编写DruidConfig(如果使用默认的连接池将不用配置druid)
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid(){
return new DruidDataSource();
}
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
Map<String,String> params = new HashMap<String,String>();
params.put("loginUsername","admin");//设置后台登录名
params.put("loginPassword","666");//密码
params.put("allow","");//设置默认就是允许所有访问
params.put("deny","192.168.84.129");//设置黑名单
bean.setInitParameters(params);
return bean;
}
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.setFilter(new WebStatFilter());
Map<String,String> params = new HashMap<String,String>();
params.put("exclusions","*.js,*.css,/druid/*");//设置不拦截请求
frb.setInitParameters(params);
frb.setUrlPatterns(Arrays.asList("/*"));//拦截请求
return frb;
}
}
3.1,编写pojo类(略)。
4,编写Mapper(使用注解方式进行增、删、改、查)
public interface StudentMapper {
// 增
@Options(useGeneratedKeys = true,keyProperty = "id")//添加完返回对象中有id值不为null,id自增长
@Insert("insert into student(sname)values(#{sname})")
public int insert(Student student);//这个#{sname}要和pojo里面的属性对应
// 删
@Delete("delete from student where id=#{id}")
public int delete(Integer id);
// 改
@Update("update student set sname=#{sname} where id=#{id}")//这个#{sname}和#{id}要和pojo里面的属性对应
public int update(Student student);
// 查
@Select("select id,sname from student")
public List<Student> selectAll();
@Select("select id,sname from student where id=#{id}")
public Student selectById(Integer id);
}
5,编程Controller(略过Service层了)
@MapperScan("com.example.jdbc_springboot.mapper")//扫描Mapper包下的Mapper接口
@RestController
public class StudentController {
@Autowired
StudentMapper studentMapper;
//增
@RequestMapping("/add")
public Student add(){
Student s=new Student();
s.setSname("hongnie");
studentMapper.insert(s);
return s;
}
//删
@RequestMapping("/del")
public int del(){
return studentMapper.delete(2);
}
//改
@RequestMapping("/update")
public int update(){
Student s=new Student();
s.setSname("wawa");
s.setId(1);
return studentMapper.update(s);
}
//查
@RequestMapping("/queryAll")
public List<Student> queryAll(){
return studentMapper.selectAll();
}
@RequestMapping("/query")
public Student queryByid(){
return studentMapper.selectById(1);
}
}
6,启动 测试(数据库test 和 表student 要存在)
druid监控sql:
完。