微服务架构成为一种互联网趋势,由此衍生出SpringBoot/SpringCloud等一系列技术,SpringBoot与传统的MVC架构相比简略了框架之间的版本兼容问题,并且SpringBoot实现了一个平台多个服务的目的,使整体项目易于维护。万变不离其宗,身为后台技术,总归需要和数据库打交道,接下来介绍SpringBoot+Mybatis+mysql单数据源实现数据的增删查改。
1、打开application.properties配置数据源信息,以及需要扫描的实体类和mapper的映射文件
spring.datasource.url=jdbc:mysql://localhost:3306/zeda?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
#mybatis
mybatis.mapper-locations: classpath:mapping/*.xml
mybatis.typeAliasesPackage=com.example.bean
其余类的编写与mvc框架的编写一致,不详细介绍,直接上图
注意:
1、由于SpringBoot有内置启动容器,不用借助tomcat启动,直接运行DemoApplication类即可
2、SpringBoot的启动类不能直接放在main(src.java.main)这个包下面,把它放在有包的里面就可以了。
主要代码如下
@ComponentScan(basePackages = {"com.example.*"})
@SpringBootApplication
//扫描mapper映射
@MapperScan("com.example.*")
/*开启事务*/
@EnableTransactionManagement
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注意事项
1、新建一个包,在包中写了一个Controller方法并用@RequestMapping标明路径,运行SpringBoot启动类,但是浏览器一直报404;
原因及解决方法:
1:SpringBoot只会扫描启动类当前包和以下的包,将写的Controller层方法放入启动类当前包或以下的包即可
2: 在启动类的上面添加 @ComponentScan(basePackages = {“现有controller层包名的路径”})
报错信息排除:
此错误表明:由于mysql时区不统一造成,在spring.datasource.url中添加 serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8即可
项目源码地址