您现在的位置是:首页 >学无止境 >MyBatis的创建和单表使用网站首页学无止境

MyBatis的创建和单表使用

崽_85 2024-08-14 12:01:03
简介MyBatis的创建和单表使用

前言:

之前我们了解到MySQL。接下来了解一下MyBatis,它不是一种数据库,那是什么呢和数据库有什么联系了?

目录

一:MyBatis的定义

二:MyBatis的创建

三:MyBatis的简单使用

3.1:准备工作

3.2:单表查询

3.2.1:查询表中的所有信息

3.2.2:根据字段进行查询

3.2.3:模糊查询

3.3:单表删除

3.4:单表修改

 3.5:单表插入


一:MyBatis的定义

MyBatis用于简化Java应用程序与关系型数据库之间数据交互的持久化框架(将应用程序与其使用和操纵的数据源分离),提供了一种将SQL查询映射到Java对象上的方法,使得开发人员可以更加方便地对数据库进行操作通过简单的XML或注解来配置和映射原始类型,接口,JAVA对象为数据库中的记录。

下图是后端调用MyBatis的过程


二:MyBatis的创建

2.1:创建SpringBoot的项目

2.2:添加MyBatis依赖

 2.3:配置连接字符串和MyBatis

MyBatis.xml是在resources/mapper创建所有表的xml文件 


三:MyBatis的简单使用

3.1:准备工作

1.根据数据库建立一个用户实体类,用户属性和数据库字段一一对应。

2.添加mapper接口

 3.添加UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 实现的接口(包名+接口)-->
<mapper namespace="com.example.demo.Mapper.UserMapper">
</mapper>

3.2:单表查询

1.在UserMapper.xml中添加SQL查询语句

3.2.1:查询表中的所有信息

2:添加Service(服务层)

@Service //服务层标签
public class UserService {
    @Resource //属性注入   将UserMapper放入到Spring容器中
    private UserMapper userMapper;
    public List<User> getAll(){
        return userMapper.getAll();
    }
}

3.添加Controller(控制层)

@RestController //@ResponseBody+@Controller
 //@ResponseBody 返回的Body不是html页面,是JSON字符串
@RequestMapping("/u") //类似servlet中的 @WebService("/u"),指定路径
public class UserControl {
    @Autowired //属性注入 将UserService存储到Spring容器中
    private UserService userService;
    @RequestMapping("/getall")
    public List<User> getAll(){
        return userService.getAll();
    }
}

 以上就完成了单表的查询,但如果想在控制台上打印SQL语句,还需要在配置文件中添加

logging.level.com.example.demo=debug
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl


3.2.2:根据字段进行查询

在Mapper接口中添加接口方法

List<User> getById( @Param("id") Integer id);
这里的@param注解 是给参数命名
1.使用#{}

 2.使用${}

从上图看出来#{}和${}的区别了吗?

#{}是占位符,而${}是直接替换。 

而${}存在不安全隐患(SQL注入)而SQL注入:通过莫种方式将恶意的SQL代码添加,然后传递到SQL服务器使其解析并执行。(使用一些语句得到原本得不到的结果

举个栗子:

当我传入一个  String username=" 'or '1=1";这时候使用${}

 数据库中是没有" 'or '1=1这个用户名的,但是却查到userinfo这个用户表的信息。这个就是SQL注入,存在安全隐患。

当类的属性和数据库中的字段不一样的时候

就将该类的属性设置成这个类型的默认值,那这时候我们改怎么弄了?

使用resultMap 


3.2.3:模糊查询


3.3:单表删除


3.4:单表修改

 3.5:单表插入


总结:

以上就是我总结的MyBatis的单表使用,若有错误或不足的地方,希望各位铁子留言纠错,若感觉不错,请一键三连。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。