zoukankan      html  css  js  c++  java
  • 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文件

    1     <settings>
    2         <setting name="logImpl" value="LOG4J"/>
    3     </settings>

       2.3  log4j 中可以输出指定内容的日志(控制某个局部内容的日志级别)

                先在总体级别调成Error不输出无用信息

                 在设置某个指定位置级别为DEBUG

          

        2.3.1 命名级别(包级别):namespace属性值

        2.3.2 类级别 :namespace 属性值 . namespace类名

        2.3.3 方法级别:使用namespace 属性值+标签id属性值

    1  <mapper namespace="com.bjsxt.mapper.Peoplemapper">   这里的com.bjsxt.mapper相当于包名,Peoplemapper相当于类
    2      <select id="c" resultType="com.bjsxt.pojo.People">  c 相当于方法名
    3          select * from people
    4      </select>
    5      <select id="d" resultType="com.bjsxt.pojo.People">
    6          select * from people where id=3 or id=4
    7      </select>
    8      
    9  </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"); 2 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is); 3 SqlSession session=factory.openSession(); 4 5 People p= session.selectOne("a.b.selById",2); 2代表参数 6 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代码中计算

     1          
     2          //显示几个
     3          int pageSize=2;
     4          //第几页
     5          int pageNumber=1;
     6          //如果希望传递多个参数,可以使用对象或map
     7          Map<String,Object> map=new HashMap<>();
     8          map.put("pageSize",pageSize);
     9          map.put("pageStart",pageSize*(pageNumber-1));
    10          List<People> p= session.selectList("a.b.page",map);
    11          System.out.println(p);

         4.3 在xxxmapper.xml中

          

    1     <select id="page" resultType="com.bjsxt.pojo.People" parameterType="map">
    2         select * from people limit #{pageStart),#{pageSize}
    3     </select>

    5、别名

      5.1 系统内置别名:别名全小写

      5.2 给某个类取别名

        5.2.1 alias="自定义 " 

    1     <typeAliases>
    2          <typeAlias type="com.bjsxt.pojo.People" alias="peo"/>  这是给指定类 取别名
    4     </typeAliases>

          5.2.2 在xxxMapper.xml 中通过peo 引用People类

    1      <select id="page" resultType="peo" parameterType="map">
    2          select * from people limit #{pageStart},#{pageSize}
    3      </select>

        5.3 直接给某包下所有的类取别名  (别名为类名,区分大小写)

    1     <typeAliases>
    3         <package name="com.bjsxt.pojo"/>  
    4     </typeAliases>

          5.3.1 在xxxMapper,xml中引用

    1      <select id="page" resultType="People" parameterType="map">
    2          select * from people limit #{pageStart},#{pageSize}
    3      </select>
    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    SSM框架--详细整合教程
    ssh--整合注意事项
    SSH--三大框架整合原理
    springMVC的流程
    java框架问题整理
    集合的体系
    java异常机制
    java知识点
    Java编程思想【Thinking in java】
    实验三 指令实验(一)
  • 原文地址:https://www.cnblogs.com/axu521/p/10066242.html
Copyright © 2011-2022 走看看