您现在的位置是:首页 >学无止境 >java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧网站首页学无止境
java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧
文章java springboot整合MyBatis做数据库查询操作讲述了boot项目整合MyBatis的操作方法
但现在就还有一个 MyBatis-Plus
Plus是国内整合的一个技术 国内的很多人会喜欢用 特别是一些中小型公司 他们用着会比较舒服
好 然后我们打开idea
创建一个项目
选择 Spring Initializr 工程
调一下项目路径 选择一下 java和jdk的版本 然后点击 Next
选择一下spring boot的版本 二点几就够了
到这啦 大家就会发现一个问题 sql下根本找不到 MyBatis-Plus
因为他是国人开发的东西 所以 并没有被spring boot官方收录坐标
没有 OK 那我们就先不管 我们先只要这个 MySql的驱动
然后我们点击 Finish 创建项目
项目就创建好了
但MyBatis-Plus还没有引入 我们访问地址
https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1访问Maven主站
进入后搜索 MyBatis-Plus
在这里 我们就可以看到它对应的坐标
我们点第一个进去
这里 版本的话 我们就选个 3.4.3
然后 我们直接点进去
这东西 反应可能有点慢 老实说 反应挺迟钝的
进入界面后向下拉
如图位置就有他这个坐标了
我们只需要将这个内容复制一下
我们找到刚刚创建的项目的 pom.xml 文件 将内容粘贴到dependencies标签中
这里 我们可以看到 他是 mybatis-plus-boot-starter 内容上直接没有spring这个词了
因为上面已经导入了 所以 我们直接将spring的这个起步依赖给干掉就好了
如果你的东西和我的一样 在这里报红 就可以这样操作 因为 2019版本的 IDEA 比较特殊
等右下角读条下载一会儿
然后 这里就没有任何问题了
然后 第二件事
和我们上文一样 做配置
我们看到自己本地的数据库
我们这里是个 MySql数据库
要操作 下面的 test数据库
回到项目 先找到application.properties配置文件 然后右键
改成 yml
参考内容如下
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: root
这里 我们声明 用MySql 然后 url 如果你没特殊设置过直接复制就好了 声明本机端口 3306下的 test数据库
然后 用户名密码 因为我没动过 就都是 root
然后还是上文一样 看到我们要操作的 staff表
这里是四个数字类型 加一个字符串类型
然后 找到我们项目中的启动类 在同目录下创建目录 domain
在下面创建一个与表同名的 staff 类
参考代码如下
package com.example.mep.domain;
public class staff {
private int id;
private String name;
private int age;
private int status;
private int departmentid;
@Override
public String toString(){
return "staff{"+
"id"+id+
"namne"+name+
"age"+age+
"status"+status+
"departmentid"+departmentid+
"}";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getDepartmentid() {
return departmentid;
}
public void setDepartmentid(int departmentid) {
this.departmentid = departmentid;
}
}
我们根据表字段 创建了所有的变量
然后 给这些变量都加上对应的 get set函数
然后 用 toString 输出所有变量的值
然后在启动类同目录 创建dao层
下面创建一个接口 叫
参考代码如下
package com.example.mep.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mep.domain.staff;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface staffDao extends BaseMapper<staff> {
}
这里 直接去继承 BaseMapper
规范类型 是我们刚刚创建的属性类 staff
BaseMapper接口中 增删除改的操作就都有了
并用 Mapper 将它交给spring去管理
然后 直接在测试类中去使用就好了
我们测试类编写代码如下
package com.example.mep;
import com.example.mep.dao.staffDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MepApplicationTests {
@Autowired
private staffDao staffDao;
@Test
void contextLoads() {
System.out.println(staffDao.selectById(1));
}
}
这里 这个 selectById 根据id查询 是BaseMapper提供的 根据id查询
然后运行代码
可以看到 我们的 sql语句就执行成功了
这里还有一种情况 如果你的数据库表 名字是 xxx_xxx 存在下划线 那么 这时 他就会有问题 找不到表 因为你类名也没办法加下划线
我们可以在application.yml中编写
mybatis-plus:
global-config:
db-config:
table-prefix: tmp_
这样 他就会将我们内容全部读成 tmp_为前缀
例如 tmp_user表 你用user属性类 泛型 他就找得到了
大家可以多去看看 BaseMapper中的函数 真的还是比较方便的
多用用 plus 吧 支持一下国人开发的东西