Mybatis:1.解决属性和字段名不一致问题;2.日志;3.分页

1.解决属性和字段名不一致问题

(1)数据库字段
在这里插入图片描述
(2)实体类属性

    private int id;  //id
    private String name;   //姓名
    private String password;   //密码

(3)编写通过id查询用户的方法
dao接口

    //根据ID查询用户
    User getUserByID(int id);

接口实现类

<select id="getUserList" resultType="pojo.User">
  select * from user
</select>

测试

@Test
    public void getUserById() {
        // 1
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        // 2
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        // 3
        User user = mapper.getUserByID(1);

        System.out.println(user);
        sqlSession.close();
    }

(4)测试结果
在这里插入图片描述
可以看到查询出来的password为null
而此时数据库中id=1的用户的密码是123456
在这里插入图片描述
(5)解决方法
<1>给字段起别名

<select id="getUserByID" parameterType="int" resultType="pojo.User">
         select * from user where id=#{id}
</select>

测试结果
在这里插入图片描述
<2>ResultMap(结果集映射)

<resultMap id="UserMap" type="User">
        <result column="id" property="id"></result>
        <result column="name" property="name"></result>
        <result column="pwd" property="password"></result>
</resultMap>

<select id="getUserByID" parameterType="int" resultMap="UserMap">
        select * from user where id=#{id}
</select>

测试结果
在这里插入图片描述

2.日志

(1)日志工厂

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

执行getUserById()方法
测试结果
在这里插入图片描述
(2)log4j
<1>导入Maven依赖

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

<2>配置log4j.properties

log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/mybatis.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

执行getUserById()方法
测试结果
在这里插入图片描述

3.分页

使用 Limit分页
<1>sql语句

select * from user limit #{startIndex},#{pageSize};

<2>dao接口

    //分页
    List<User> getUserByLimit(Map<String,Integer> map);

<3>Mapper.xml

    <!--分页-->
    <select id="getUserByLimit" parameterType="map" resultType="User">
      select * from user limit #{startIndex},#{pageSize};
    </select>

<4>测试

@Test
    public void getUserByLimit() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        HashMap<String, Integer> hashMap = new HashMap<String, Integer>();

        hashMap.put("startIndex", 0);
        hashMap.put("pageSize", 2);
        List<User> userList = mapper.getUserByLimit(hashMap);

        for (User user : userList) {
            System.out.println(user);
        }
        sqlSession.close();
    }

测试结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值