SpringBoot+Mybatis整合(二)

网友投稿 638 2022-10-10

SpringBoot+Mybatis整合(二)

SpringBoot+Mybatis整合(二)

创建SpringBoot工程

这次我们用IDEA来做开发工具,IDEA有一个很大优势就是可以建一个project,然后下面有多个module,这种特性对于我们做Java开发非常方便,尤其是做微服务开发的时候,方便联调。

新建一个project

我们先采取默认的maven工程,以后需要哪些组件,后续再加。

这样,我们就建好了一个projec,我们建这个project主要是用于目录作用,不在里加业务代码。因此,后续我们要往里加相应的模块module就可以。

新建一个module

可能不同版本的IDEA,界面会有点不一样,但基本意思大概相同,所以遇到不一样界面的朋友们,认真细看比对一下就可以。

有些版本的IDEA,“Spring Web”那里可能是“WEB”,其实都是一样的。

如果你自己电脑没有相应maven库,可能要稍微等一会。

从上图可知,已成功新建好module,那我们测试一下,看看是否已经成功搭建好。

我们运行一下,看看效果。

默认是8080端口,我们在浏览器访问一下。

​​TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id,主键', `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名', `age` int DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入测试数据

为了方便调试,我们先插入一些测试数据。

大家也可以通过命令语句实现。

INSERT INTO `t_user` (`name`, `age`) VALUES ('zhangsan', '20')INSERT INTO `t_user` (`name`, `age`) VALUES ('lisi', '25')

整合Mybatis

添加相应Jar包

先添加Mybatis相关包:

org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.0

由于我们选用的数据库是Mysql,所以还需要把mysql相关包添加进去。

mysql mysql-connector-java

代码实现

SpringBoot主要是用于web项目,所以我们这次从web项目开发流程来完成代码编写。

一般而言,web项目一般分为三大层controller、service、dao。那我们应该从哪边写起呢?说句实话,没有强制性的要求,但大部分开发者,可能都会从controller这层开始写起,往dao那边写。然后又倒回来完善controller这边。但这次为了演示,我们的业务代码都会比较简单,我就反过来写,先把dao这块写好。写dao层之前,我先贴出项目的包结构。

User

我们这次用个比较经典的实体类,与数据库的t_user表匹配。

package com.ispeasant.demo.entity;/** * User实体类 */public class User { private int id; // id private String name; // 用户名 private int age; // 年龄 public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; }}

在项目中,我们经常都需要创建实体类,一般都要写get/set方法,大家要灵活应用开发工作,提高编码效率。

dao(UserMapper)

package com.ispeasant.demo.dao;import com.ispeasant.demo.entity.User;import org.apache.ibatis.annotations.Mapper;/** * UserMapper */@Mapperpublic interface UserMapper { User getUserById(int id);}

这里要注意的是,必须要使用“@Mapper"的注解,同时还需要配置对应的mapper.xml文件,不然spring无法扫描到。

mapper.xml

拆分说明:

这部分是要和你的dao接口对应上,直接拷贝全路径。

这块是按需来弄,也有可能会多几个不同的定义。有些朋友对这部分可能会比较难理解,我自己也是这样跟我团队说的,你们就把这块看做是这个配置文件里的实体对象,方便数据交互。

select标签的id要和UserMapper的方法对应上,然后在里面写对应的业务sql逻辑。

UserService

package com.ispeasant.demo.service;import com.ispeasant.demo.entity.User;public interface UserService { User getUserById(int id);}

在javaEE代码规范中,我们一般都会把service层封装为两层,一层是接口层,另一层是实现层,这样可以方便解耦业务代码。

UserService

package com.ispeasant.demo.service.impl;import com.ispeasant.demo.dao.UserMapper;import com.ispeasant.demo.entity.User;import com.ispeasant.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class UserSeviceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserById(int id) { User user = userMapper.getUserById(id); return user; }}

我们要先实现UserService接口,并重写里面的方法。需要把UserMapper自动装载进来,采用"@Autowired"注解。

在类上面,我们要采用”@Service“注解,这样才会被spring注入到controller层。

UserController

package com.ispeasant.demo.controller;import com.ispeasant.demo.entity.User;import com.ispeasant.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController { @Autowired private UserService userService; @GetMapping("/getUserById") public User getUserById(int id){ User user = userService.getUserById(id); return user; }}

Controller层和service层有点类似,也是需要自动装载UserService,采用”@Autowired“注解。

在类的上面,也需要添加“@RestController”,它是responseboby+ controller俩个注解的合体。

@GetMapping封装API接口定义。@GetMapping注释将 HTTP GET 请求映射到特定的处理程序方法。 它是一个组合的注释,用作@RequestMapping(method = RequestMethod.GET)的快捷方式。

application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://10.18.0.57:3306/springbootmybatisDBspring.datasource.username=rootspring.datasource.password=123456mybatis.type-aliases-package=com.ispeasant.demo.entitymybatis.mapperLocations=classpath:mappers/*.xml

最后还需要配置数据库相关信息,由于我是用mysql8,所以驱动要用“com.mysql.cj.jdbc.Driver”,如果是其它低版本的数据库,可采用“com.mysql.jdbc.Driver”。

最后那里还要配置实体包路径以及mapper文件路径(采取通配方式)。

验证

在浏览器打开以下链接:

​​http://localhost:8080/getUserById?id=1​​

返回以下数据,则表示整合成功。后面大家就可以根据大家实际需求来开发其他业务。

{"id":1,"name":"zhangsan","age":20}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序云开发项目 · 私房书柜(小程序云开发项目简历)
下一篇:大公司边缘岗和小公司核心岗你会怎么选?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~