
mybatis
暴躁的程序猿啊
不是大佬,只是在分享学习的过程
展开
-
Mybatis结果集封装map类型
需求查询结果封装成一个mapMap<Integer,User>键是这条记录的主键,值是记录封装后的javabeanmybatis中有一个MapKey注解 可以指定我们的pojo类 private Integer id; private String name; private Integer age; private String email;接口方法 /** * @MapKey mybatis封装map的时候使用哪个属性作为ke原创 2021-08-02 15:19:58 · 663 阅读 · 0 评论 -
#{key}和${key} 取值的区别
mybatis中 #{key}和${key} 取值的区别mapper映射文件<select id="selectUser" resultType="com.rpf.domain.User" > select * from user where id=${id} and name=#{name}</select>调用语句List<User> users = userDao.selectUser( 1,"Jone");生成的查询语句select *原创 2021-07-31 13:39:22 · 650 阅读 · 0 评论 -
mybatis注解sql使用判断if踩坑
mybatis使用注解SQL语句的方式 在增删改查时还是很方便的但是复杂SQL多了之后就不太友好了我这里写了一个多表的SQL 废了好半天的劲才改出来先给大家看错误的语句怎么调都不好用 就是报错 后来我看了好多文章@Select("<script>" +"select u.*,z.dname,group_concat(r.name) rnames" + "from user u " + "left join ztree z on u原创 2021-04-21 12:11:34 · 2332 阅读 · 0 评论 -
Mybatis的批量增加和批量删除
使用注解的方式实现批量操作dao层批量增加@Insert("<script>" + "insert into tsturole (sid,rid) values " + "<foreach collection='集合' item='roles' separator=','> " + "#{字段},#{字段})" + "</foreach>" +原创 2021-04-15 14:37:30 · 172 阅读 · 0 评论 -
Mybatis框架入门
框架概述什么是框架框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。框架要解决的问题框架要解决的最重要的一个问题是技术整合的问题,在 J2EE 的 框架中,有着各种各样的技术,不同的软件企业需要从 J2EE 中选择不同的技术,这就使得软件企业最终的应用依赖于这些技术,技术自身的复杂性和技术的风险性将会直接对应用造成冲击。而应用是软件企业的核心,是竞争力的原创 2021-02-27 11:56:26 · 132 阅读 · 0 评论 -
事务、事务特性、不考虑隔离性会产生的三个问题、事务隔离级别
**一、什么叫做事务**事务是数据库操作的最小工作单元,指作为单个逻辑工作单元的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行,事务是一组不可再分割的操作集合。 事务就是并发控制的单位,是用户定义的一个操作序列。**二、事务具备的特性**ACID属性四大特性:A:原子性(Atomicity)事务是一个不可分割的整体,是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。C:一致性(Consistency)事务执行的结果必须是从数据库从一个一致性状态原创 2021-01-06 12:49:18 · 243 阅读 · 0 评论 -
Mybatis实现CRUD操作
**1.dao层接口编写** /* *查询所有 */ List<User> findAll(); /** * 保存用户 */ void saveUser(User user); /** * 更新用户 */ void updateUser(User user); /** * 根据Id删除用户 */ void deleteUser(Integer userId);*原创 2021-01-04 12:43:43 · 183 阅读 · 0 评论 -
Maybits框架的用法
一、学习持久层框架的思路 1.将应用程序中数据信息写入数据库 2.把数据从数据库中获取到应用程序中 3.持久层框架的学习都是如何处理**主配置文件和映射文件**关系的, 其中比较重要的是映射文件的处理二、Mybatis的搭建过程1.导入maven的依赖(jar包) org.mybatis mybatis 3.4.6 ```2.编写两个配置文件(1)住配置文件mybatis.xml原创 2020-12-02 19:34:31 · 497 阅读 · 0 评论 -
Mybatis注解开发使用二级缓存
一、Mybatis注解的一级缓存Mybatis注解的一级缓存不用配置 ,系统默认是开启的二、Mybatis注解的二级缓存1、 在 SqlMapConfig 中开启二级缓存支持<!-- 配置二级缓存 --><settings><!-- 开启二级缓存的支持 --><setting name="cacheEnabled" value="true"/></settings>2、在持久层接口中使用注解配置二级缓存//开启二级缓存@Ca原创 2021-01-12 12:10:16 · 472 阅读 · 0 评论 -
Mybatis注解开发2
建设实体类属性和数据库的对应关系以user表和acccount表为例一、一对一的注解开发1.pojo类编写(一对一)//user表 private Integer userId; private String userName; private String userAddress; private String userSex;//account表 private Integer id; private Integer uid; priv原创 2021-01-12 11:42:17 · 113 阅读 · 0 评论 -
Mybatis的注解开发1
使用注解的单表的CRUD操作1.pom.xml 导入坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h原创 2021-01-11 12:56:25 · 96 阅读 · 0 评论 -
Mybatis的一级缓存、二级缓存
一、什么是缓存在内存中存储的临时数据。二、为什么使用缓存减少和数据库的交互次数,提高代码的执行效率。三、什么样的数据能使用缓存,什么样的数据不能使用? 适用于缓存: 需要经常查询且不经常修改的。 数据的正确与否对最终结果影响不大的。 不适用于缓存: 经常改变的数据(银行利率等) 数据的正确与否对最终结果影响很大的。四、Mybatis中的一级缓存和二级缓存一级缓存:它指的是Mybatis中SqlSession对象的缓存。当我们执行查询之后,查询的结果会同时存入到SqlSes原创 2021-01-10 12:43:51 · 152 阅读 · 0 评论 -
Mybatis的延迟加载
一、什么叫延迟加载、立即加载1.什么是延迟加载在真正需要使用数据时才发起查询,不用的时候不进行查询。按需加载(懒加载)2. 什么是立即加载不管用不用,只要一调用方法,马上发起查询。二、Mybatis中的延迟加载需求:在一对多中,当我们有一个用户,它有10个角色。在查询用户时,用户下的角色信息应该是,什么时候使用,什么时候查询的。在查询角色时,账户的所属用户信息应该是随着账户查询时一起查询出来。在对应的四种表关系中:一对多,多对一,一对一,多对多 一 对多,多对多:通常情况下我们都原创 2021-01-10 11:57:40 · 169 阅读 · 0 评论 -
Mybatis的多表操作2
一、Mybatis的多对多操作例: 一个用户可以有多个角色一个角色可以赋予多个用户方法:1、建立两张表:用户表,角色表让用户表和角色表具有多对多的关系。需要使用中间表,中间表中包含各自的主键,在中间表中是外键。2、建立两个实体类:用户实体类和角色实体类让用户和角色的实体类能体现出来多对多的关系各自包含对方一个集合引用//role角色表 private Integer roleId; private String roleName; private String r原创 2021-01-09 11:23:57 · 217 阅读 · 0 评论 -
Mybatis的多表查询1
**一、表之间的关系**表之间的关系有以下几种:一对多一对一多对一多对多例:用户和订单就是一对多订单和用户就是多对一 (一个用户可以下多个订单 多个订单可以属于同一个用户)人和身份证号码就是一对一 (一个人只能有一个身份证号 一个身份证号只能属于一个人)老师和学生之间就是多对多 (一个学生可以被多个老师教 一个老师可以教多个学生)特例: 如果拿出每一个订单,他都只能属于一个用户。 所以Mybatis就把多对一看成了一对一。二、一对一操作1、建原创 2021-01-09 11:08:42 · 156 阅读 · 2 评论 -
Mybatis 动态SQL
一、动态SQL----if标签我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询,如果 username 不为空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。1.dao层接口 List<User> findUser(User user);2.映射文件编写<select id="findUser" resultType="User" parameterType="User"> .原创 2021-01-07 11:11:28 · 128 阅读 · 2 评论