Mybatis
myllxy
欢迎关注知乎专栏:https://www.zhihu.com/column/c_1274036496291827712
展开
-
mybatis使用typeHandler
我实体类中有一个Object[]属性,存到数据库时呀转换成string,此时就可以用到typeHandler:@MappedTypes(value = {Object[].class})@MappedJdbcTypes(value = JdbcType.VARCHAR)public class ArrayStringHandler extends BaseTypeHandler<Object[]> { /** * 数组转string并保存到数据库 *原创 2020-05-12 22:34:42 · 187 阅读 · 0 评论 -
Mybatis总结(7)select查询结果封装为map
1.查一条将单独的一条数据中每一对属性名/属性值对应map中的key/value查出来{seller=6, gender=1, name=张三, tel=qqq, id=22, customerSource=1, status=已跟进} <select id="getCustomerMap" resultType="map"> SELECT * FROM t...原创 2020-02-06 22:04:30 · 2405 阅读 · 0 评论 -
Mybatis总结(6)多层级联映射问题
分步查询与关联不能出现在一起,类似这种结构:会造成代码冗余;应该这么写: <resultMap id="permissionResultMap" type="Permission"> <id property="id" column="id"/> <result property="name" column="name"...原创 2020-02-05 21:19:09 · 661 阅读 · 5 评论 -
Mybatis总结(5)自动填充关联对象
比如现在有三张表t_grade、t_class、t_student通过t_student的class_sn可以查到对应的class,通过class_sn可以查到对应的grade,我们在为这张表配置映射文件时大致是这种结构: <resultMap id="studentResultMap" type="Student"> <id property="id"...原创 2020-02-04 17:23:34 · 470 阅读 · 0 评论 -
Mybatis总结(3)基础映射
其实mybatis并不是一个dao层的完整处理方案(它并不像jpa),你可以将它单纯地看做一个提供sql映射的框架,你在xml映射文件中的配置最终都会调用jdbc的api来对数据库进行具体操作。select,insert,update,delete:像select中的where id = #{id}这种,mybatis会为其生成一个预处理sql语句,并且在where后面提供一个占位符?,然后通...原创 2020-02-02 17:33:29 · 133 阅读 · 0 评论 -
Mybatis总结(2)接口式编程
实际工作中使用Mybatis都是使用接口式编程:使用接口来描述给定的sql的参数和返回值public interface EmployeeMapper extends BaseMapper<Employee, Long> { void deleteRoleAndEmployee(@Param("empSn") Long empSn);}将接口与配置文件绑定&...原创 2020-02-01 15:45:59 · 138 阅读 · 0 评论 -
Mybatis总结(4)参数传递
一.单个参数时可以接受基本类型,对象类型,集合类型的值。这种情况MyBatis可直接使用这个参数,不需要经过任何处理。二.多个参数时1.规则任意多个参数,都会被MyBatis重新包装成一个Map传入。Map的key是param1,param2,arg1, arg0…,值就是参数的值。在dao层接口参数上可以加@Param,它的主要作用就是为参数起别名:@Param(“empSn”) L...原创 2020-01-31 17:34:28 · 399 阅读 · 0 评论 -
Mybatis总结(1)简介
1.什么是MybatisMyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。2.为什么要使用它相较于JD...原创 2020-01-31 15:38:25 · 122 阅读 · 0 评论 -
elementUI tree-transfer的使用
git地址做出效果如下:根据这个结构我们也可以判断,后台只需要查父权限然后分布查询到其下的子权限就好了按照指定的格式返回菜单对象:值得一提的是它的fromData和toData相当于是官方组件的v-model...原创 2020-01-29 18:25:50 · 2770 阅读 · 0 评论 -
elementUI动态菜单
动态菜单的话应该有两种思路吧,第一种是后台返回一个必须满足前台解析规则的菜单对象实体,第二种是前台拿到后台的菜单对象后(这个菜单对象不需要完全和前台匹配)取出其中的菜单名字,然后和前台写死的菜单进行比对,有相同的就显示不然隐藏。这里介绍第二种:首先,菜单是根据当前用户进行实时响应的,所以我需要在登录的时候进行菜单信息注入: /* 1.通过当前用户拿到其对应的角色 */ ...原创 2020-01-29 18:13:58 · 3095 阅读 · 0 评论 -
mybatis、elementui部门查询父部门与子部门
首先是查询父部门,一个子部门对应一个直接父部门: <select id="selectPageByQuery" resultMap="departmentResultMap"> SELECT d.id,d.name,d.sn,d.manager_sn,d.parent_sn,d.state, d2.id d2id,d2.sn d2sn,d2.na...原创 2020-01-27 12:32:12 · 807 阅读 · 0 评论 -
mybatis、elementui后端传值前端展示问题
我们应该有这样一个常识,当后台向前台返回数据时,除了普通类型字段之外(如文本),所有有关联关系的,我们都应该返回一个对象;比如我数据库中有个requence字段(该字段数据库中存储为varchar等普通字段),这个字段关联另一个对象的主键,也就是说通过这个字段可以找到另外一个对象(对象a),我们称之为映射;而现在我只需要a中的name,如下所示,我们不应该返回name,而是应该将整个对象返回,...原创 2020-01-10 22:40:26 · 819 阅读 · 0 评论 -
mybatis一对多解决element中select下拉框值的填充问题
场景描述:如下,我要做一个下拉框客户来源是数据字典中的数据,电话销售、朋友介绍、移动广告是数据字典明细中的数据,前后者关系是一对多;或许你已经知道了,我只要拿到客户来源,就能根据一对多关系拿到其相关的所有的数据字典明细了1.先拿到客户来源 <el-form :model="form" label-width="80px" :rules="addFormRule...原创 2020-01-07 22:27:45 · 768 阅读 · 0 评论 -
mybatis使用association解决数据字典问题
场景描述:我t_customer表使用了数据字典明细中的值,但我不可能直接用数据字典中真实的值啊,那数据字典明细的存在就没有意义了,因此可以利用数据字典明细中每行的数据字典序号,它是不变的,当我在查询t_customer表所有数据的时候,拿到这个数据字典序号去数据字典明细中找到对应的值,然后替换t_customer表中对应字段就好了。1.前端拿到后端的分页数据 /* 获取...原创 2020-01-07 21:39:58 · 1482 阅读 · 0 评论