搭建SpringBoot环境,创建maven 项目后
1,创建入口类:
@MapperScan(basePackages = "com.baizhi.dao" ) //把dao层交给工厂管理
@SpringBootApplication//标识入口类的注解
public class Applincation {
public static void main(String[] args) {
SpringApplication.run(Applincation.class,args);
}
}
2,创建统一配置 application.yml
层级之间有一个tab键的间隔
属性名和值之间有一个空格的间隔
配置springBoot 的端口号和项目名 项目名必须/开头
server:
port: 8989
servlet:
context-path: /userModel
配置mybatis mapper.xml 文件的位置
mybatis:
mapper-locations: classpath:com/baizhi/mapper/UserDao*.xml
b补充mubatis 配置 开启mybatis 的批处理,这样可以提高同类操作的效率 ,比如循环按id删除
mybatis.executor-type=batch
配置连接数据库的连接属性 用的阿里的连接池
spring:
datasource:
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://主机名:3306/库名?useSSL=false&characterEncoding=UTF8&serverTimezone=GMT
配置springBoot 自动依赖的日志级别
logging:
level:
com.baizhi.dao: DEBUG
com.baizhi.service: warning
root: info #全局的
配置实体类接收到的时间格式
spring:
mvc:
date-format: yyyy-MM-dd
jackson:
date-format: yyyy-MM-dd
time-zone: GMT+8 #因为SpringBoot 用的时国外的时区,所以要+8改成北京的
post表单提交乱码和tomcat乱码 默认就是utf-8
spring.http.encoding.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
3,依赖
首先在< dependencies >标签前导如仲裁中心
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
在< dependencies >内部导入SpringBoot 的web 启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
SpringBoot 集成Mybatis 需要导入
Mybatis 启动器
数据库 这里导的时Mysql
连接池 这里导的阿里的
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.3</version>
</dependency>
<!-- msq -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!-- 阿里连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
测试时需要的
<!-- 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
在写代码时常用的一些注解
service 层
@Service("IUserServiceInt") //将业务类交予工厂统一管理
//业务控制用于读操作方法上,可提高读写效率
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
//业务控制,用于写操作 可放在类上表示全类 也可放在方法上
@Transactional
@AutoWired //用来将spring容器中的实例bean注入到类中,常用在类中属性上,通过type类型注入。
@Resource //和上面的注解一样,都是用来注入实例bean到类中的,只不过这个是通过name类型注入。
Controller 层
@Controller //将Controller类交予工厂统一管理
@ResponseBody //把返回值对象自动转换为json字符串并响应回客户端 只接收json
@RestController //Controller层注解,@ResponseBody和@Controller的合集
@RequestMapping(value = "/FormUserController") //是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@PostMapping(value = "/registerUser") //增
@GetMapping(value = "/queryUserByPage") //查
@DeleteMapping(value = "/deleteUserByIds") //删
@PutMapping(value = "/updateUser") //改 都只能用在方法上用来处理请求地址映射的注解,也对应从客户端传过来的方式!
@RequestParam(value = "ids") Integer[] ids 用在方法的参数前面。相当于 request.getParameter();接收表单参数
@RequestOart(value="") //在请求体里同时接收 文件和json
@PathVariable("id") //获取路径中的参数
SpringBoot 测试用到的注解
import static org.junit.Assert.*;// 导断言包
@SpringBootTest(classes = {入口类名.class})
@RunWith(SpringRunner.class)
public class UserServiceTest {
@Autowired
private IUserService userService;
@Test //可直接运行
public void saveUserTest(){
User user = new User("赵小六", true, "123456", new Date(), "aa.png", "qq.com");
userService.saveUser(user);
assertNotNull("用户ID不为空",user.getId()); //下断言,如果user.getId()为空则报错
补充
@Component: 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行
@Repository: dao(数据库访问层)层注解
Mapper.xml 在idea 设置默认样式
样式模板
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="dao层接口全类名"></mapper >