mybatis
文章平均质量分 75
昱晟168
广东湛江
展开
-
MyBatis-Puls一篇就够
(简称)是一个的增强工具,在基础上只做增强不做改变,为简化开发,提高效率而生执行的流程是:通过扫描实体类,通过反射分析表的字段,再分析调用的方法是增删还是改查,最终通过反射将生成实现类放到容器中创建表:注意是:由于使用,在自动生成时会很长,所以需要使用数据类型插入数据:2.创建一个工程注意是:由于在创建工程时,我们还没有添加的场景启动器,所以下面需要我们手动添加3.配置信息建议直接复制修改,防止写错注意4.创建实体类由于是框架,表示表和对象的映射关系5.创建接口并继承接口注意是原创 2022-06-26 20:12:50 · 2236 阅读 · 0 评论 -
`MyBatis`的逆向工程
MyBatis的逆向工程概念:1.正向工程:先创建java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的2.逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件使用步骤:1.导入依赖Jar和插件<!-- 依赖MyBatis核心包 --> <dependencies> <dependency> <grou原创 2022-05-05 15:39:16 · 872 阅读 · 0 评论 -
`MyBatis`的缓存
MyBatis的缓存1.MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会缓存,下次查询相同的数据就会从缓存中直接获取,不会从数据重新访问,前提必须是同一个SqlSession对象,并且查询的数据相同注意是:SqlSession是只针对查询的,并且一级SqlSession是默认开启的使用一级缓存失效的四种情况查询使用的SqlSession对象不同,就是不同SqlSession对应不同的一级缓存同一个SqlSession但是查询条件不同原创 2022-05-05 14:56:32 · 502 阅读 · 0 评论 -
`MyBatis`的缓存
MyBatis的缓存1.MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会缓存,下次查询相同的数据就会从缓存中直接获取,不会从数据重新访问,前提必须是同一个SqlSession对象,并且查询的数据相同注意是:SqlSession是只针对查询的,并且一级SqlSession是默认开启的使用一级缓存失效的四种情况查询使用的SqlSession对象不同,就是不同SqlSession对应不同的一级缓存同一个SqlSession但是查询条件不同原创 2022-05-05 11:39:20 · 93 阅读 · 0 评论 -
mybatis中动态`SQL`
动态SQLmybatis框架的动态sql技术是一种根据特定条件动态拼装sql语句的功能,它存在单方是为了解决拼接sql语句字符串时痛点问题动态sql就是解决我们拼接sql语句的麻烦1.if标签【重点】标签属性test所对应的表达式决定在标签中的内容是否需要拼接到SQL中,并且在where之后加入一个恒成立条件1=1在where的后面加入恒成立条件1=1的原因是,防止后面所有的条件都不成功,where多余后报错,同时还防止第一个条件不成立,在where的后面直接跟着and造成报错注意是:在if标签原创 2022-05-05 10:55:58 · 1055 阅读 · 0 评论 -
mybatis自定义映射`resultMap`
6_自定义映射resultMap1.resultMap处理字段和属性的映射关系方式一:字段名与属性名不一致,用别名解决select * from emp;select eid,emp_name as empName,age,sex,email from emp;别名方式方式二:核心配置文件中setters标签配在setters标签配置mapUnderscoreToCamelCase属性,值设置为true是开户驼峰命名转换,默认是false是不开启驼峰命名转换设置名描述有效值默原创 2022-05-05 10:27:56 · 596 阅读 · 0 评论 -
mybatis一对多映射处理
一对多映射处理一对多的关系,例如一个部门有多名员工,一个班级有多名学生解决方案是:在一的方添加集合并且指定集合的泛型是多方类型【就是JavaBean类型】// 在一的方添加集合,泛型指定为多的一方类型,并且提供getter和setter方法 private List<Emp> emps; public List<Emp> getEmps() { return emps; } public void setEmps(List&l原创 2022-05-04 20:50:19 · 625 阅读 · 0 评论 -
mybatis多对一映射处理
多对一映射处理多对一映射关系,必须要在多的方添加一的对象属性**案例:**员工对应部门信息,就是典型的多对一映射关系,需要在员工类中添加部门的对象属性【并且添加getter方法和setter方法】// 处理多对一映射关系,必须要多的一方添加一的方的对象属性 private Dept dept;并添加:setter方法和getter方法方式一:级联属性赋值Mapper接口/** * 根据ID查询员工信息及对应部门信息 */ Emp getEmpAndDep原创 2022-05-04 19:58:05 · 371 阅读 · 0 评论 -
mybatis处理字段和属性的映射关系
resultMap处理字段和属性的映射关系方式一:字段名与属性名不一致,用别名解决select * from emp;select eid,emp_name as empName,age,sex,email from emp;别名方式方式二:核心配置文件中setters标签配在setters标签配置mapUnderscoreToCamelCase属性,值设置为true是开户驼峰命名转换,默认是false是不开启驼峰命名转换设置名描述有效值默认值mapUnderscor原创 2022-05-04 17:39:45 · 3491 阅读 · 0 评论 -
mybatis中`${}`使用【特殊SQL】
特殊SQL的执行1.模糊查询【重点】由于模糊查询传入是一个字符串模糊查询的三种方式方式一:%${值}%方式一:注意是一定不能使用#{}没有拼接字符串的作用,会直接当作为%#{值}%一个字符串,所以会报错select * from t_user where username like '%${username}%';方式二:concat('%',#{值},'%')使用concat函数,来拼接字符串 select * from t_user where username like conca原创 2022-05-04 16:24:12 · 1869 阅读 · 0 评论 -
mybatis模糊查询
模糊查询【重点】由于模糊查询传入是一个字符串模糊查询的三种方式方式一:%${值}%方式一:注意是一定不能使用#{}没有拼接字符串的作用,会直接当作为%#{值}%一个字符串,所以会报错select * from t_user where username like '%${username}%';方式二:concat('%',#{值},'%')使用concat函数,来拼接字符串 select * from t_user where username like concat('%',#{use原创 2022-05-04 15:57:24 · 11114 阅读 · 0 评论 -
`MyBatis`各种查询功能
MyBatis各种查询功能【非常重要】1.查询一个实体类对象若查询出的数据只有一条:可以通过实体类对象接收可以通过List集合接收可以通过Map集合接收,在select的resultType或resultMap要传入别名为map【用于json数据传输】案例:Mapper接口/** *当查询的返回只有一条记录时, * 1.可以用JavaBean类进行接收 * 2.可以用List集合进行接收 */ // 根据ID查询用户信息 , 用User实体原创 2022-05-04 12:51:35 · 1533 阅读 · 0 评论 -
查询单个数据
查询单个数据【就是返回单行单列】查询单个数据,就是返回单行单例【如果查询两例需要封装成javabean类】需要用于的resultType的类型别名Mapper接口/** * 查询单个数据【就是返回单行单例】 */ // 根据用户ID查询用户email String getUserEmail(@Param("id")Integer id); // 根据用户ID查询用户名 String getUserName(@Param("id")Integer原创 2022-05-04 12:48:58 · 741 阅读 · 0 评论 -
mybatis查询多条实体
MyBatis查询多条数据查询返回数据为多条实体javabean若查询出的数据有多条:可以通过实体类类型的List集合接收【就是泛型是JavaBean】可以通过Map类型的List集合接收【就是泛型是Map集合】在select的resultType或resultMap要传入别名为map【用于json数据传输】可以在Mapper接口的方法添加上@MapKey注解,此时就可以将每条数据转换的Map集合作为值,以某个字段的值作为键,放在同一个Map集合中注意是:一定不能通过实体类对象接收,此时会抛原创 2022-05-04 11:59:02 · 1766 阅读 · 0 评论 -
mybatis查询实体的三种方式
Mapper接口/** * 用于各种查询 */public interface QueryEntity { /** * 查询一个实体类对象的三种情况 */ // 可以通过实体类对象接收 User getUserByIDOne(@Param("id")Integer id); // 通过List集合接收 List<User> getUserByList(@Param("id")Integer id); // 通过Map集合原创 2022-05-04 11:26:58 · 1644 阅读 · 0 评论 -
MyBatis获取参数方式
MyBatis获取参数值mybatis获取参数值的两种方式【重点】mybatis获取参数值的两种方式:${}和#{}${}的本质是字符串拼接,可能出现sql注入问题,需要手动加单引号例如:若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号#{}的本质就是占位符赋值例如:左路字符串类型或日期类型字段进行赋值时,可以自动添加单引号1.单个字面量类型的参数若mapper接口中的方法参数为单个的字面量类型此时可以使用${}和#{}以任意的名称获取参数的值,注意是${}需要手动加单引号问题原创 2022-05-03 21:27:09 · 1836 阅读 · 0 评论 -
mybatis核心配置文件常用标签说明
核心配置文件详解核心配置文件的顺序:(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".1.properties属性引入properties文件,此时就可以使用${属性名}的方式访问属性值<!--引入jdbc.properties原创 2022-05-03 21:20:45 · 907 阅读 · 0 评论 -
mybatis入门
搭建MyBatis1.创建maven工程引入依赖<dependencies><!-- Mybatis核心 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dep原创 2022-05-03 21:03:30 · 532 阅读 · 0 评论 -
手把手教会MyBatis连接Mysql完成增删改查(CRUD)
MyBatis连接Mysql完成增删改查1.第一步:创建一个SpringBoot项目选择相关的依赖注意如果忘记导入相关依赖:可以手动导入在下面的链接搜索相关jar的名称maven仓库第二步:根据业务逻辑创建数据库表DROP DATABASE emp_dep;CREATE DATABASE emp_dep;USE emp_dep;CREATE TABLE department( id INT PRIMARY KEY AUTO_INCREMENT, DepartmentName VA原创 2021-12-03 22:36:55 · 902 阅读 · 0 评论 -
MyBatis的配置及API解释
MyBatis核心文件1.MyBatis核心配置文件层级关系注意在MyBatis核心配置的.xml文件中配置的顺序是按照上述的顺序配置The content of element type “configuration” must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,d原创 2021-12-02 17:56:19 · 667 阅读 · 0 评论 -
MyBatis入门和基本的CRUD
MyBatis入门1.MyBatis开发的步骤:添加MyBatis坐标创建User数据表创建User实体类编写映射文件UserMapper.xml文件编写核心文件SqlMapConfig文件编写测试类1.添加MyBatis坐标<!--添加MyBatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactI原创 2021-12-02 17:18:16 · 494 阅读 · 0 评论