mapper

动态SQL

倖福魔咒の 提交于 2020-01-10 02:17:22
1.1动态SQL中的元素 动态SQL是MyBatis的强大特性之一,MyBatis 3采用了功能强大的基于OGNL的表达式来完成动态SQL, 它消除了之前版本中需要了解的大多数元素,使用不到原来一半的元素就能完成所需工作。 MyBatis动态SQL中的主要元素,如表所示。 1.2<if>元素 在MyBatis中,<if>元素是最常用的判断语句,它类似于Java中的if语句,主要用于实现某些简单的条件选择。 在实际应用中,我们可能会通过多个条件来精确地查询某个数据。例如,要查找某个客户的信息,可以通过姓名和职业来查找客户, 也可以不填写职业直接通过姓名来查找客户,还可以都不填写而查询出所有客户,此时姓名和职业就是非必须条件。 类似于这种情况,在MyBatis中就可以通过<if>元素来实现。下面就通过一个具体的案例,来演示这种情况下<if>元素的使用,具体实现步骤如下。 (2)修改映射文件CustomerMapper.xml,在映射文件中使用<if>元素编写根据客户姓名和职业组合条件查询客户信息列表的动态SQL <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3

mybatis

99封情书 提交于 2020-01-10 02:12:57
mybatis 框架搭建 导入jar包 mybatis-3.4.1.jar ojdbc14.jar 创建mybatis核心配置文件 创建根包src src下创建mybatis-config.xml < mappers> < mapper resource="/userMapper.xml"> </ mappers> mapper映射文件 < mapper namespace=“test1”> < select id=“queryById” resultType=“com.model.Manager”> Dao层 测试类 Mybatis:面向接口编程 通过mapper映射文件中 namespace=“接口全路径”进而产生DAO层的代理对象 DAO接口: Mapper映射文件 < mapper namespace=“com.dao.UserDao”> < select id=“queryById” resultType=“com.model.Manager”> select * from manager where id=1 </ select> 测试类 总结:ibatis和mybatis区别: ibatis:mapper映射文件和Dao接口无管理,其中namespace起到模块化作用。在调用mapper映射文件sql时,通过namespace.标签ID mybatis:面向接口编程

idea创建java的maven聚合工程

我只是一个虾纸丫 提交于 2020-01-09 04:11:38
一、创建聚合工程 1.创建父工程 (1)点击create new project (2)如图选择maven,左边选择maven,右边选择project SDK ,不选择create from archetype(maven模版,不用选择) (3) 创建groupId和ArtifactId,点击下一步 (4)默认没有横杠,改成横杠,如图 (5)生成父项目完成,在pom中加上: <packaging>pom</packaging> 2.构建common (1)右键父项目,新建module,如图 (2)选择maven,和父项目一样 (3)输入ArtifactId(子工程名字),点击下一步 (4) Module名加上横杠(默认省略了横杠) (5) 子工程(默认的打包方式就是jar) (6)父工程pom自动多了一个module 3.构建pojo(实体层,关联数据库的数据表),如common构建过程(pojo依赖common),在pom里面添加依赖,如图: 4.创建mapper子工程(数据层),依赖pojo,pojo依赖common,mapper自动就依赖了common,如图 : 5.创建service,依赖mapper,自动就依赖了pojo和common,如图: 6.创建api(对外接口)依赖service,自动依赖了mapper,pojo,common,如图: 综上,聚合工程就完成了。

用Maven中实现MyBatis逆向工程(IDEA版)

喜欢而已 提交于 2020-01-08 20:50:18
用Maven中实现MyBatis逆向工程(IDEA版) 原创 bugskiller_cn 发布于2017-11-30 21:17:27 阅读数 9648 收藏 更新于2017-11-30 21:17:27 分类专栏: mybatis 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_23703157/article/details/78681088 展开 用Maven中实现MyBatis逆向工程(IDEA版) MyBatis逆向工程介绍 MyBatis逆向工程是指用数据库的表直接生成Java代码,利用MyBatis官方提供的逆向工程,可以针对单表自动生MyBatis执行所需要的代码(如pojo,mapper接口和mapper.xml)。 首先 使用idea中的Maven生成MyBatis所需要的mapper类和xml文件,非常方便。 首先在IDEA中要有MyBatis的这款插件,它为idea提供mybatis的xml的模版文件、接口类与xml文件对应导航。 安装成功后,在maven的resources文件右击使用mybatis-generator-config模版文件, 内容如下: <?xml version="1.0" encoding="UTF-8" ?> <

Increase SWAP size in CentOS7.7

孤街浪徒 提交于 2020-01-08 16:26:24
CentOS7.7的swap默认安装下,使用lvm的lv做swap,当需要增大swap空间时,可以考虑如下操作: 1.当前状态 [root@syk01 ~]# swapon -s 文件名 类型 大小 已用 权限 /dev/dm-1 partition 2097148 0 -2 [root@syk01 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 36.99g swap centos -wi-ao---- 2.00g 2.关闭当前swap [root@syk01 ~]# swapoff -v /dev/mapper/centos-swap swapoff /dev/mapper/centos-swap [root@syk01 ~]# swapon -s 3.扩大lv的大小 [root@syk01 ~]# lvresize /dev/mapper/centos-swap -L +1g Size of logical volume centos/swap changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents). Logical volume centos/swap

异常记录——使用Mybatis报BindingException

北慕城南 提交于 2020-01-08 14:44:17
异常信息 org.apache.ibatis.binding.BindingException nested exception is org.apache.ibatis.binding.BindingException: Parameter 'deviceNO' not found. Available parameters are [deviceNo, deviceId, param1, param2] 场景回溯 业务场景:车辆表,需要更新指定编号车辆的设备Id(编号和设备ID均非主键),因而在对应的mapper.xml中自定义了SQL语句,结果调用对应接口时爆出异常 当然可以直接使用Mybatis-plus的EntityWrapper,这样做虽然方便,但是第一影响性能,第二造成职责划分不清(SQL的拼装属于dao层,它从来就不该在Service层完成) 原因排查 apache的ibatis将原因说的很清楚:Parameter 'deviceNO' not found. Available parameters are [deviceNo, deviceId, param1, param2] ,没找到xml里使用占位符表示的参数(#{deviceNO}),能用的参数有deviceNo、deviceId等,很明显是发生了拼写错误 xml: Mapper接口:

【Springboot】Springboot2 集成 redis 踩坑

我的未来我决定 提交于 2020-01-08 04:09:15
今天用Springboot2集成redis的时候,一开始是用以前的方法出了很多问题。一查才知道Springboot2使用 lettuce 作为默认的redis client。所以配置文件里别配置jedis的参数了,配置lettuce pool。 还想用 jedis 的需要自己在 pom 文件手动添加 jedis client 的依赖。 redis: database: 0 host: 192.168.1.210 port: 6379 password: password lettuce: pool: max-active: 8 max-idle: 8 min-idle: 0 完了还有一个问题就是会报一个错误, 大概就是 ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig 需要手动添加 commons pool 的依赖 <!-- redis lettuce pool 需要这个依赖 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.2</version> </dependency> 最后一个问题就是在自定义

maven build resource

限于喜欢 提交于 2020-01-08 00:23:57
在 使用resource中的jar包资源作为UrlClassloader 中出现了src下的资源文件没有被maven打入包的情况,故有此文章 1 https://www.cnblogs.com/pixy/p/4798089.html 构建Maven项目的时候,如果没有进行特殊的配置,Maven会 按照标准的目录结构查找和处理各种类型文件 。 src/main/java和src/test/java 这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译 ,编译结果分别放到了target/classes和targe/test-classes目录中, 但是这两个目录中的其他文件都会被忽略掉。 src/main/resouces和src/test/resources 这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中 。 target/classes 打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。 Maven项目的标准目录结构 src main java 源文件 resources 资源文件 filters 资源过滤文件 config 配置文件 scripts 脚本文件 webapp web应用文件 test java 测试源文件 resources 测试资源文件

MyBatis Generator 学习说明配置

烂漫一生 提交于 2020-01-07 20:31:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> eclipse 里面使用maven 生成 ,命令: 工程右键 Debug As -> maven build... -> mybatis-generator:generate http://blog.csdn.net/u011310774/article/details/48269031 使用这个可以 快速自动生成 model和xml 文件的和接口类,方便而又快速。 官方中文文档: http://mbg.cndocs.tk/quickstart.html http://www.cnblogs.com/GaiDynasty/p/4088531.html MyBatis Generator最佳实践 本节内容针对MyBatis3,使用iBATIS的不一定适用。 以下根据个人经验(对此有意见的可以留言)对一些配置看法列出如下几点: 关于实体类的 modelType ,建议使用 defaultModelType="flat" ,只有一个对象的情况下管理毕竟方便,使用也简单。 关于注释 <commentGenerator> ,不管你是否要重写自己的注释生成器,有一点不能忘记,那就是注释中一定要保留 @mbggenerated ,MBG通过该字符串来判断代码是否为代码生成器生成的代码,有该标记的的代码在重新生成的时候会被删除