SpringBoot和mybatis框架整合

发布时间:2019-02-23 阅读量:343人次 来源:洪盛科技(www.hshkj.com.cn)

1.  认识一下SpringBoot


1)  jdbc DBUtilsJdbcTemplatespring


2)  框架:旧三大框架 struts2 + spring + hibernate


3)  升级:新三大框架 springmvc + spring + mybatis (主流开发基于SSM


4)  微服务: SOA面向服务架构,ESB总线(太重),推出dubbo简化SOA,业界叫做SOA最佳实践,基于RPC远程过程调用,nio,压缩,加密二进制。


5)  DubboSpringClound微服务,Dubbo只是一个RPC框架,SpringClound外延,Eureka注册中心,它zk强大。Ribbon负载均衡(nginx)。Feign简化RESTFul支持。Hystrix断路器。Zull API gateway API网关,Sidecar封装异构程序.net,phpNodeJS

SpringClound外延更广阔,软件架构各个方面都有非常好的解决方案。


2.SpringBoot


Maven构建项目,基于httpClient+json/dubbo微服务来构建项目


缺点:

1)  Maven构建,pom.xmldubbojar版本冲突

传统项目:jt-parent父项目,pom.xml自己构建

Springboot来完成父工程,写很多实例start-web依赖


2)  三大框架mybatis-config.xmlappliactionContext*.xmlspringmvc-config.xmlweb.xml 一堆配置文件。过渡新三大框架xml零配置,没有逃过,继续扩充xml内容,没有语法检查,没有大小写检查,业务逻辑错误。

SpringBoot引入注解和习惯配置,把上面的xml都干掉了!


3)  开发的代码量多

SpringBoot引入注解方式

4)  部署,Maven tomcat插件,要为每个子系统配置启动命令

引入依赖start-web,启动方式也变了,执行一个main方法。


5)  Maven项目jdk版本,MavenJava修改2处,MavenWeb修改3处。

SpringBootpom.xml中强制指定jdk版本,Maven Update ProjectSpringBoot抛弃1.6,1.7,全面支持1.8

SpringBoot 把开发者引入SpringClound世界中简单,易用


开发步骤:


1)  创建Maven工程jar类型


2)  pom.xml,加入一个父工程springboot,使用依赖starter-web(标识此项目是web工程)


3)  创建一个ControllerSpringMVC)标签有增强(json @ResponseBody


4)  启动,创建一个类,写main方法,加注解


3.springBootmybatis整合


QQ图片20181107170844.png

Yaml 早期在hadoop中广泛使用

application.yml

1)  类似属性文件,但是它的key能表现多级树结构

2)  这个文件中表现多级结构都是空格,不许tab

 

Mybatis注解方式开发

1)接口中增加方法

public interface UserMapper {

         public List find();

        

         //查询某个用户,使用注解方式

         @Select("select * from user where id=#{pid}")

         public User get(@Param("pid") Integer id);

}

1)  SpringMVC接收参数要求

         //springClound采用RESTFulSpringBoot@PathVariable必须写后面变量@PathVariable("id")

         @RequestMapping("/get/{id}")

         public User get(@PathVariable("id") Integer id){

                   return userService.get(id);

         }

 

 

新增:

1@Insert接口,参数:pojo @Param()

         //新增用户

         @Insert("insert into user (name,birthday,address)"

                            + " values(#{name},#{birthday},#{address})")

         public void insert(@Param("name") String name,

                            @Param("birthday") Date birthday,

                            @Param("address") String address);

2controller接收,RESTFul

         @RequestMapping("/insert/{name}/{birthday}/{address}")

         public String insert(@PathVariable("name") String name,

                            @PathVariable("birthday") String birthday,

                            @PathVariable("address") String address){

                   try{

                            //日期转换

                            DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");

                            Date birthday2 = format1.parse(birthday);

                           

                            userService.insert(name, birthday2, address);

                            return "success";

                   }catch(Exception e){

                            return "insert error";

                   }

         }

 

 

修改:

1)  接口

         //修改用户信息

         @Update("update user"

                            + " set name=#{name},birthday=#{birthday},address=#{address}"

                            + " where id=#{id}")

         public void update(User user);

2)  Controller



4.总结

1)  SpringBoot 野心,为了把开发者引向SpringClound编写微服务框架代码,SpringClound如果直接传统编程方式,对开发者要求比较高。Spring出品SpringBoot来整个简化编程。


2)  约定大于配置(Maven)习惯大于配置,开发代码量急剧降低,特别是配置文件。具体通过注解方式@SpringBootApplication(替代web.xml程序入口)


3)  结果非常好,去掉mybatis-config.xmlapplicationContext*.xmlspringmvc-config.xmlweb.xml。能否去掉所有配置(跟spring不直接相关的就无法去除:@MapperScan、数据源4个参数等)


4)  新的配置文件application.yml文件。配置信息总的来说少很多。不好用,很多束缚:里面必须以空格来形成树形展现,不能有tab键。类似kv,格式:k: vv前面必须有空格


5)  Mybatis使用注解方式开发

a)         在接口上使用注解:@Select@Insert@Update@Delete,参数都需要写上@Param

b)        Controller主流方式RESTFul方式,@PathVariable(“id”),特殊请求,参数pojo对象

c)         日期封装,浏览器输入转换日期类型,Post/ajax(json)就可以直接转换

填写您的服务需求获取项目报价。

*请认真填写需求信息,我们会在24小时内与您联系。

© Copyright 2017- @2018 广州洪盛科技有限公司 粤ICP备18032239号

与我们取得联系
展开