栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot整合mybatis简单案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot整合mybatis简单案例

在学习了springboot的皮毛之后,我决定用几个项目来帮助自己熟悉springboot,现在我准备使用springboot整合mybatis来做一个简单的用户登陆注册功能,由于本人写的前端太丑,所以这里就只放后端的部分代码供大家参考

整合步骤

步骤一

我们首先肯定需要创建一个springboot的web应用,具体创建方法可以参照我的这篇博客

步骤二

要整合mybatis肯定要导入对应的依赖


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.2.2

从这个依赖我们就可以看出,他并不是spring编写的依赖,因为spring编写的springboot依赖都是以spring-boot-starter-xxx开头,它其实是mybatis编写的依赖,那也就是说我们必须要给这个依赖添加版本号

步骤三

到了这一步就该编写相应的代码了,在这里我们首先创建一个数据库表,我们关注的重点是java代码的编写,这里数据库就设计的比较简单,也并没有按照三范式等一些规范的设计

CREATE TABLE user(
	id int,
	name varchar(10)
);

数据库的字段只有两个,一个是用户id,一个是用户姓名
编写好数据库之后就需要打开我们刚才创建好的springboot项目来编写一些springboot的配置,进入application.properties(也可以是yaml或者yml文件),配置数据库相关的信息

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/user?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

如果使用的是数据库5,0以下的版本就不需要给driver中加入cj这一级包
配置好数据库信息后需要编写对应的实体类,类名为User

package com.hty.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data//get set方法
@AllArgsConstructor//有参构造
@NoArgsConstructor//无参构造
public class User{
    private Integer id;
    private String name;
}

在这个代码中,我使用的注解是lombok中的注解,关于lombok的内容请自行百度,并不难,就是一个工具包
实体类写完之后,我们就可以开始编写我们的mapper层了
首先创建一个mapper包,并在包下创建一个UserMapper的接口和一个UserMapper.xml的文件
UserMapper接口中为了方便我就只写查询的方法,增删改和查询其实大框架是一样的

@Mapper//一定要加入Mapper注解,如果不加入这个注解在后面Controller层使用的时候就会报错
public interface UserMapper{
	//查询所有的用户
	public List queryAllUser();
}

编写完接口之后我们需要去springboot的配置文件中为我们的实体类起别名,这样方便我们在xml文件中填写,我们在application.properties文件的尾部加上

#实体类起别名
mybatis.type-aliases-package=com.hty.pojo

这里我使用的是包的方式起别名,它会默认将实体类名首字母小写的方式作为别名使用
现在开始编写UserMapper.xml文件




    
    

    
        select * from user;
    

在resultType中如果返回值是一个集合,那么直接写这个集合的泛型就可以了
在这里为了方便我就不编写service层了,我就直接使用controller层调用mapper层
Controller层代码

@Controller
public class UserController {
    @Autowired
    private UserMapper userMapper;

    @GetMapping(value = "/queryAllUser")
    @ResponseBody
    public List queryAllUser(){
        List users = userMapper.queryAllUser();
        return users;
    }
}

之后启动项目,访问/queryAllUser就可以得到所有的用户信息了

可能会遇到的问题:
如果访问地址之后报错,那么可以尝试给实体类进行序列化,然后在重新启动项目

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号