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 和 参数 和 分页和别名 功能的更多相关文章

  1. 2018.2.28 PHP中使用jQuery+Ajax实现分页查询多功能如何操作

    PHP中使用jQuery+Ajax实现分页查询多功能如何操作 1.首先做主页Ajax_pag.php 代码如下 <!DOCTYPE html> <html> <head& ...

  2. Mybatis中多个参数的问题&&动态SQL&&查询结果与类的对应

    ### 1. 抽象方法中多个参数的问题 在使用MyBatis时,接口中的抽象方法只允许有1个参数,如果有多个参数,例如: Integer updatePassword( Integer id, Str ...

  3. Mybatis中Log4j日志的使用

    参考资料: (1). 百度百科:https://baike.baidu.com/item/log4j/480673?fr=aladdin (2). B站狂神的视频:https://www.bilibi ...

  4. Mybatis中使用PageHelper插件进行分页

    分页的场景比较常见,下面主要介绍一下使用PageHelper插件进行分页操作: 一.概述: PageHelper支持对mybatis进行分页操作,项目在github地址: https://github ...

  5. 解决springboot+vue+mybatis中,将后台数据分页显示在前台,并且根据页码自动跳转对应页码信息

    文章目录 先看效果 1.要考虑的问题,对数据进行分页查询 2.前端和后台的交互 先看效果 1.要考虑的问题,对数据进行分页查询 mapper文件这样写 从每次开始查询的位置,到每页展示的条数, < ...

  6. mybatis中的oracle和mysql分页

    这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. mybatis的oracle分页写法: <?xml version="1.0" enc ...

  7. Mybatis 中遍历map 参数中的 list 和 array 属性

    原文:https://blog.csdn.net/liudongdong0909/article/details/51048835 问题在项目有中遇到批量删除操作时,需要根据两个属性去删除数据,其中一 ...

  8. MyBatis中foreach传入参数为数组

    一.当只有一个参数,并且这个参数是数组时 接口方法的参数不需要添加@Param注释,collection="array" 示例 接口的方法 void deleteMulti(Str ...

  9. mybatis中如果存在参数不再实体中的是如何处理

    <select id="queryMapByType" parameterType="int" resultType="my.geomap.VO ...

随机推荐

  1. 牛客练习赛43-F(简单容斥)

    题目链接:https://ac.nowcoder.com/acm/contest/548/F 题意:简化题意之后就是求[1,n]中不能被[2,m]中的数整除的数的个数. 思路:简单容斥题,求[1,n] ...

  2. linux 切割文件的命令

    Head -1000 access.2016.log >> 10000_access.log

  3. RxJS之过滤操作符 ( Angular环境 )

    一 take操作符 只发出源 Observable 最初发出的的N个值 (N = count). 如果源发出值的数量小于 count 的话,那么它的所有值都将发出.然后它便完成,无论源 Observa ...

  4. CentOS常用的文件操作命令总结

    我可以说是linux操作新手,有些命令经常忘记,特别是对文件的某些操作,经常要翻阅之前的笔记,今天把之前在百度上整理的“CentOS常用的文件操作命令”转载到我的新博客上面,以供后面查阅! 博客后面还 ...

  5. 【laravel VS lumen】

    读取项目的配置信息 读取config文件database.php中的default属性信息 laravel:config('database.default'); lumen:app()->co ...

  6. c#控件的动画显示效果

    1.  缘由: 项目中任务完成有个提示,需要以动画效果展示,其效果当如下图: 此为老项目为Delphi所写,改用c#实现,此效果做些设计.本也不难,小技而已,但为易于扩展,写了个静态类实现. 2. A ...

  7. QQ分享登陆报错

    linker command failed with exit code 1 (use -v to see invocation)报错原因 builtSetting下搜索 bitco 改为NO

  8. 36-2018 蓝桥杯Java B组试题及答案

    1:第几天2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 用excel算,答案125. 2.标题:方格计数 ...

  9. Linux下打开超大文件方法

    在Linux下用VIM打开大小几个G.甚至几十个G的文件时,是非常慢的. 这时,我们可以利用下面的方法分割文件,然后再打开. 1 查看文件的前多少行 head -10000 /var/lib/mysq ...

  10. pthreads v3在centos7下的安装与配置

    我的centos版本是7.4.1708,php的版本是7.2.4(注意要是线程安全版),如下图所示: 首先我们在如下网址下载好pthreads的源码: http://pecl.php.net/pack ...