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的创建和单表使用_第1张图片


二:MyBatis的创建

2.1:创建SpringBoot的项目

MyBatis的创建和单表使用_第2张图片

2.2:添加MyBatis依赖

MyBatis的创建和单表使用_第3张图片

 2.3:配置连接字符串和MyBatis

MyBatis的创建和单表使用_第4张图片

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


三:MyBatis的简单使用

3.1:准备工作

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

2.添加mapper接口

MyBatis的创建和单表使用_第5张图片

 3.添加UserMapper.xml





3.2:单表查询

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

3.2.1:查询表中的所有信息

2:添加Service(服务层)

@Service //服务层标签
public class UserService {
    @Resource //属性注入   将UserMapper放入到Spring容器中
    private UserMapper userMapper;
    public List 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 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 getById( @Param("id") Integer id);
这里的@param注解 是给参数命名
1.使用#{}

MyBatis的创建和单表使用_第6张图片

 2.使用${}

MyBatis的创建和单表使用_第7张图片

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

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

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

举个栗子:

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

MyBatis的创建和单表使用_第8张图片

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

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

MyBatis的创建和单表使用_第9张图片

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

使用resultMap 

MyBatis的创建和单表使用_第10张图片


3.2.3:模糊查询

MyBatis的创建和单表使用_第11张图片


3.3:单表删除

MyBatis的创建和单表使用_第12张图片


3.4:单表修改

MyBatis的创建和单表使用_第13张图片

 3.5:单表插入

MyBatis的创建和单表使用_第14张图片


总结:

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

你可能感兴趣的:(mysql,mybatis,java,数据库)