MyBatis中log4j 和 参数 和 分页和别名 功能
1、配置全局文件,注意各个配置标签的顺序
properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,
objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?,
mappers?
2、<settings>标签
2.1 在mybatis全局配置文件中通过<settings>标签控制mybatis全局开关
2.2 在mybatis 中开启log4j 日志功能
2.2.1必须保证有log4j.jar
2.2.2 在src下有log4j.properties文件
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
2.3 log4j 中可以输出指定内容的日志(控制某个局部内容的日志级别)
先在总体级别调成Error不输出无用信息
在设置某个指定位置级别为DEBUG

2.3.1 命名级别(包级别):namespace属性值
2.3.2 类级别 :namespace 属性值 . namespace类名
2.3.3 方法级别:使用namespace 属性值+标签id属性值
<mapper namespace="com.bjsxt.mapper.Peoplemapper"> 这里的com.bjsxt.mapper相当于包名,Peoplemapper相当于类
<select id="c" resultType="com.bjsxt.pojo.People"> c 相当于方法名
select * from people
</select>
<select id="d" resultType="com.bjsxt.pojo.People">
select * from people where id=3 or id=4
</select> </mapper>
3、parameterType属性
3.1 在xxxMapper.xml中<select><delete>等标签的 parameterType 可以控制参数类型
如果参数是map 使用#{key}
select * from people where id=#{id} and name=#{name}
3.2 SqlSession的selectList()和selectOne() 的第二个参数和selectMap()的第三个参数都表示的参数。
3.2.1实例
测试
1 InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
SqlSession session=factory.openSession(); People p= session.selectOne("a.b.selById",2); 2代表参数
System.out.println(p.toString());
xxxMapper.xml 控制参数类型 int
<select id="selById" resultType="com.bjsxt.pojo.People" parameterType="int">
select * from people where id=#{0} #{0}表示第一个参数(索引从0开始)如果参数是对象 #{属性名} 属性必须有getset
</select> #{param1}也可以表示第一个参数
如果只有一个参数(基本数据类型或String),mybatis对#{}里面没有要求只要有内容即可
#{ } 和 ${ } 的区别 (${}很少使用)
#{ } 获取参数的内容支持,索引获取,param1获取指定位置参数,并且SQL使用?占位符
${ } 字符串拼接不使用?默认找${内容}的get/set方法,如果写数字就是一个数字。
3.3 如果在xml文件中出现 "<",">",双引号等 特殊字符时 可以使用 XML文件转义标签(xml自身的)
<![CDATA[内容]]>
4、分页功能
4.1 不允许在关键字前后进行数学运算,需要在代码中计算完成后传递到xxxmapper.xml中
4.2 在java代码中计算
//显示几个
int pageSize=2;
//第几页
int pageNumber=1;
//如果希望传递多个参数,可以使用对象或map
Map<String,Object> map=new HashMap<>();
map.put("pageSize",pageSize);
map.put("pageStart",pageSize*(pageNumber-1));
List<People> p= session.selectList("a.b.page",map);
System.out.println(p);
4.3 在xxxmapper.xml中
<select id="page" resultType="com.bjsxt.pojo.People" parameterType="map">
select * from people limit #{pageStart),#{pageSize}
</select>
5、别名
5.1 系统内置别名:别名全小写
5.2 给某个类取别名
5.2.1 alias="自定义 "
<typeAliases>
<typeAlias type="com.bjsxt.pojo.People" alias="peo"/> 这是给指定类 取别名
</typeAliases>
5.2.2 在xxxMapper.xml 中通过peo 引用People类
<select id="page" resultType="peo" parameterType="map">
select * from people limit #{pageStart},#{pageSize}
</select>
5.3 直接给某包下所有的类取别名 (别名为类名,区分大小写)
<typeAliases>
<package name="com.bjsxt.pojo"/>
</typeAliases>
5.3.1 在xxxMapper,xml中引用
<select id="page" resultType="People" parameterType="map">
select * from people limit #{pageStart},#{pageSize}
</select>
MyBatis中log4j 和 参数 和 分页和别名 功能的更多相关文章
- 2018.2.28 PHP中使用jQuery+Ajax实现分页查询多功能如何操作
PHP中使用jQuery+Ajax实现分页查询多功能如何操作 1.首先做主页Ajax_pag.php 代码如下 <!DOCTYPE html> <html> <head& ...
- Mybatis中多个参数的问题&&动态SQL&&查询结果与类的对应
### 1. 抽象方法中多个参数的问题 在使用MyBatis时,接口中的抽象方法只允许有1个参数,如果有多个参数,例如: Integer updatePassword( Integer id, Str ...
- Mybatis中Log4j日志的使用
参考资料: (1). 百度百科:https://baike.baidu.com/item/log4j/480673?fr=aladdin (2). B站狂神的视频:https://www.bilibi ...
- Mybatis中使用PageHelper插件进行分页
分页的场景比较常见,下面主要介绍一下使用PageHelper插件进行分页操作: 一.概述: PageHelper支持对mybatis进行分页操作,项目在github地址: https://github ...
- 解决springboot+vue+mybatis中,将后台数据分页显示在前台,并且根据页码自动跳转对应页码信息
文章目录 先看效果 1.要考虑的问题,对数据进行分页查询 2.前端和后台的交互 先看效果 1.要考虑的问题,对数据进行分页查询 mapper文件这样写 从每次开始查询的位置,到每页展示的条数, < ...
- mybatis中的oracle和mysql分页
这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. mybatis的oracle分页写法: <?xml version="1.0" enc ...
- Mybatis 中遍历map 参数中的 list 和 array 属性
原文:https://blog.csdn.net/liudongdong0909/article/details/51048835 问题在项目有中遇到批量删除操作时,需要根据两个属性去删除数据,其中一 ...
- MyBatis中foreach传入参数为数组
一.当只有一个参数,并且这个参数是数组时 接口方法的参数不需要添加@Param注释,collection="array" 示例 接口的方法 void deleteMulti(Str ...
- mybatis中如果存在参数不再实体中的是如何处理
<select id="queryMapByType" parameterType="int" resultType="my.geomap.VO ...
随机推荐
- 最短路+叉积 poj1556
题目链接:The Doors - POJ 1556 - Virtual Judge https://vjudge.net/problem/POJ-1556 题意是叫我们计算从(0,5)到(10,5) ...
- HDU-2612.Find way .(不同起点不同终点的BFS)
我要被这个好用的memset气死了...... 真香 #include <cstring> #include <string> int main () { ]; memset( ...
- HRBUST 2310 Tree Painting(无向图欧拉路径的性质)
Give you a tree, can you draw the tree with minimum strokes without overlapping? Noted that it is ok ...
- jQuery与js对象互转
@参考文章 1 jQuery对象转js 亲测有效 var $v=$("#v"); //jQuery对象 ); //js对象 或 var $v =$("#v") ...
- day 06 列表去重, 数据类型的补充,编码,深浅copy
因为重要,所以放前面 列表去重 l1 = [1, 2, 3, 4, 5] l2 = [3, 4, 5, 6, 7] set = list(set(l1 + l2)) # set自动去重,然后变成lis ...
- oracle数据库冷恢复
场 景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了.硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动. 解决方案:通过冷恢复将数据库还原.在自己的电脑上搭建一个 ...
- Android TV开发 焦点控制
转载:http://www.eoeandroid.com/thread-264177-1-1.html 最近在做一款基于Android的互联网电视客户端,开发与phone/pad差不多,但是有一个值得 ...
- vue之微信登录
参考文章https://www.cnblogs.com/examine/p/4634947.html 微信开放平台和公众平台的区别1.公众平台面向的是普通的用户,比如自媒体和媒体,企业官方微信公众账号 ...
- Java运算符号,对象赋值,别名
生活发生的一切,才会促使着我继续前行,今天继续更新哦,看书中的代码练习. 例子1 引入net.mindview.util.Print.* ,方便打印结果. package com.date0529; ...
- python3.6.5 路径处理与规范化
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠. >>> os.path.normcase('c: ...