mybatis学习笔记-04(代码片段)

宏远小七 宏远小七     2022-12-05     672

关键词:

mybatis学习笔记-04

1.设置日志

日志可以方便我们排错,默认是不开启的,开启需要在核心配置文件中设置。
name和value要和官方文档的一致!

1.1 默认日志

<!--设置日志 默认配置-->
  <settings>
      <setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>

1.2LOG4J

  1. 导入log4j的依赖(pom.xml)
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.12</version>
</dependency>
  1. mybatis-config.xml核心配置文件
<!--设置日志-->
<settings>
   <setting name="logImpl" value="LOG4J"/>
</settings>
  1. log4j.properties(放在resources包中)
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
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/ZXF.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][%dyy-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

这样设置之后在下次控制台输出的时候就会有日志同时输出了。

2.分页

分页操作是要求掌握的。

2.1limit分页

接口

//分页取得用户
List<User> getUserLimit(Map<String,Object> map);

xml配置文件

<select id="getUserLimit" parameterType="map" resultType="user">
   select * from mybatis.user limit #startindex,#endindex;
</select>

测试

@Test
public void getUserLimit()
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   UserMapper mapper = sqlSession.getMapper(UserMapper.class);
   HashMap<String, Object> map = new HashMap<>();
   map.put("startindex",0);
   map.put("endindex",3);
   List<User> userLimit = mapper.getUserLimit(map);
   for (User user : userLimit) 
       System.out.println(user);
   
   sqlSession.close();

2.2RowBounds分页

接口

//rowBounds分页
List<User> getUserRowBounds();

xml配置文件

<select id="getUserRowBounds" resultType="user">
   select * from mybatis.user;
</select>

测试

@Test
   public void getUserRowBounds()
   SqlSession sqlSession = MybatisUtil.getSqlSession();
   RowBounds rowBounds = new RowBounds(0, 2);
   List<User> user = sqlSession.selectList("com.ZXF.dao.UserMapper.getUserRowBounds", null, rowBounds);
   for (User user1 : user) 
       System.out.println(user1);
   
   sqlSession.close();

在两个方法的测试类中,我们看到sqlsession调用的方法不同,RowBounds中的方法现在不常用,而且使用RowBounds分页要去拼接SQL语句,我个人习惯使用limit分页的方法。

3.lombok

lombok是一款可以让我们偷懒的工具。
lombok官网上说的话:

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

我们在面对一些重复冗长而又没有什么营养价值的代码时,我们都会厌倦,lombok就会帮我们减少这些代码。

使用方法

  1. 在settings中下载lombok插件。
  2. 在所需要使用的项目中导入依赖
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.22</version>
</dependency>
  1. 例子
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student 
   private int id;
   private String name;
   private int tid;

这些只是lombok的其中几个,还需要了解的可以看官网https://projectlombok.org/

4.使用注解开发

对于mybatis,一些功能简单的可以使用注解开发,但是一些比较复杂的SQL语句还是需要通过xml去实现!
使用注解开发时,核心配置文件一定要用class注册

<mappers>
<!--使用注解开发绑定接口-->
   <mapper class="com.ZXF.dao.UserMapper"/>
</mappers>

使用注解进行CRUD

接口

 //通过id查找用户
  @Select("select * from user where id=#id")
  User getUserById(@Param("id") int id);
  //插入用户
  @Insert("insert into mybatis.user (id,name,pwd) values (#id,#name,#pwd)")
  int  insertUser(User user);
  //更新用户
  @Update("update user set name=#name,pwd=#pwd where id=#id")
  int  updateUser(User user);
  //删除用户
  @Delete("delete from user where id=#id")
  int deleteUser(@Param("id") int id);

@Param这个注解在需要传入多个参数的时候必须使用,但一个参数的话可用可不用,但为了养成习惯和为之后的排错,建议传入一个参数时也使用。

测试

@Test
    public void getUserById()
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getUserById(5);
        System.out.println(user);
        sqlSession.close();
    
    @Test
    public void insertUser()
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.insertUser(new User(6, "77", "1234567"));
        sqlSession.commit();
        sqlSession.close();
    
    @Test
    public void updateUser()
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updateUser(new User(6,"77","1111111"));
        sqlSession.commit();
        sqlSession.close();
    
    @Test
    public void deleteUser()
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(6);
        sqlSession.commit();
        sqlSession.close();
    

这是我mybatis自学笔记的第4篇,没看过我之前的文章的话可以看看,前3篇的链接↓
mybatis学习笔记-03
mybatis学习笔记-02
mybatis学习笔记-01


本篇文章到这就结束了。自学不易,如果写得不详细,可以结合官方文档看,也可以评论区交流,这篇文章有可以优化的地方希望大佬指教指教。

学习笔记——mybatis动态sql(代码片段)

2023-01-12一、Mybatis动态SQL即将SQL动态化同时Mybatis的动态SQL支持OFNL表达式,OGNL(ObjectGraphNavigationLanguage)对象图导航语言。1、先搭建环境(1)创建一个“maven”模块,命名为“day04_mybatis”(2)在“day04_mybatis”中的“pom.xml”中的... 查看详情

mybatis学习笔记11:解决字段名和属性的映射关系(代码片段)

解决字段名和属性的映射关系【Mybatis】学习笔记01:连接数据库,实现增删改【Mybatis】学习笔记02:实现简单的查【MyBatis】学习笔记03:配置文件进一步解读(非常重要)【MyBatis】学习笔记04:配置文件模板【MyBatis】学习笔记05... 查看详情

mybatis学习笔记-04(代码片段)

mybatis学习笔记-041.设置日志1.1默认日志1.2LOG4J2.分页2.1limit分页2.2RowBounds分页3.lombok使用方法4.使用注解开发使用注解进行CRUD1.设置日志日志可以方便我们排错,默认是不开启的,开启需要在核心配置文件中设置。name和value... 查看详情

mybatis框架学习笔记(代码片段)

本篇Mybatis框架学习笔记;紧跟之前的学习Mybatis框架学习笔记(2)—>在mybatis框架核心配置文件中需要学习的配置configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers 查看详情

mybatis框架学习笔记(代码片段)

本篇Mybatis框架学习笔记;紧跟之前的学习Mybatis框架学习笔记(1)—>小智RE0在mybatis框架核心配置文件中需要学习的配置configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandl... 查看详情

mybatis学习笔记(代码片段)

Mybatis学习笔记本篇文章是观看B站UP主狂神说关于Mybatis讲解的视频,借鉴Mybatis官方文档以及CSDN博主黑心白莲相关文章整理的个人Mybatis笔记。因笔者能力有限,文章难免有错误之处,欢迎各位评论勘误,共同探讨&#... 查看详情

mybatis学习笔记-01(代码片段)

mybatis学习笔记-01认识mybatis安装mybatis准备工作我的第一个mybatis程序工具类MybatisUtil类(工具类)mybatis-config.xml(对应配置文件)实体类Dao层Dao接口UserMappr.xml测试UserMapprTest测试结果开启自学mybatis的时光。认识mybatis... 查看详情

mybatis学习笔记-01(代码片段)

mybatis学习笔记-01认识mybatis安装mybatis准备工作我的第一个mybatis程序工具类MybatisUtil类(工具类)mybatis-config.xml(对应配置文件)实体类Dao层Dao接口UserMappr.xml测试UserMapprTest测试结果开启自学mybatis的时光。认识mybatis... 查看详情

学习笔记mybatis学习笔记(代码片段)

本文是动力节点MyBatis教程的学习笔记。第一章1.三层架构(1)三层的功能表示层(UserInterfaceLayer):接受用户数据,显示请求的处理结果,包括jsp、html、servlet等。对应controller包;业务逻辑层(BusinessLogic... 查看详情

学习笔记mybatis学习笔记(代码片段)

本文是动力节点MyBatis教程的学习笔记。第一章1.三层架构(1)三层的功能表示层(UserInterfaceLayer):接受用户数据,显示请求的处理结果,包括jsp、html、servlet等。对应controller包;业务逻辑层(BusinessLogic... 查看详情

mybatis框架学习笔记(代码片段)

官方中文文档–>https://mybatis.org/mybatis-3/zh/getting-started.html或点击–>mybatis文档mybatis3版本的源码–>https://github.com/mybatis/mybatis-3/releases或点击–>mybatis3源码文章目录1.什么是mybatis2.基础搭建使用(1)添加相关maven依赖 查看详情

mybatis学习笔记(代码片段)

一、Mybatis简介1、MyBatis历史MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由ApacheSoftwareFoundation迁移到了GoogleCode。随着开发团队转投GoogleCode旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于... 查看详情

mybatis框架学习笔记(代码片段)

本篇Mybatis框架学习笔记;紧跟之前的学习Mybatis框架学习笔记(3)–>文章目录1.当出现数据库的列字段与实体类的不一致时;需要手动配置字段映射;2.两张表以上的多表映射;完成查询所有的员工(附带地查到员工对应的部门);注意有... 查看详情

mybatis学习笔记-02(代码片段)

mybatis学习笔记-02增删改查功能实现1.通过id查询用户Dao接口:UserMapperUserMapper.xmlUserMapperTest2.插入用户Dao接口:UserMapperUserMapper.xmlUserMapperTest3.更新用户Dao接口:UserMapperUserMapper.xmlUserMapperTest4.删 查看详情

mybatis学习笔记(代码片段)

文章目录1.MyBatis简介1.1MyBatis历史1.2MyBatis特性1.3和其它持久化层技术对比2.搭建MyBatis2.1开发环境2.2创建maven工程2.3创建MyBatis的核心配置文件2.4创建mapper接口2.5创建MyBatis的映射文件2.6通过junit测试功能2.7加入log4j日志功能3.核心配置... 查看详情

mybatis系统性详解(学习笔记)(代码片段)

目录mybatis知识传统JDBC不足mybatis基础mybatis核心应用配置与原理解析mybatis核心概念整体认识mybatis源码包mybatis基本流程类调用mybatis流程记录mybatis处理流程图mybatis*之sessionmybatis之mappermybatis之sqlmybatis之executormybatis之Cache一级缓存二... 查看详情

mybatis学习笔记-06(代码片段)

mybatis学习笔记-061.动态SQL环境搭建1.1、实体类1.2、BlogMapper接口1.3、BlogMapper.xml配置文件1.4、mybatis-config.xml核心配置文件1.5、唯一的id标识(Idutil)1.6、测试2、动态SQL之if语句3、choose、when、otherwise4、trimwhereset5、forEach这篇... 查看详情

mybatis学习笔记-06(代码片段)

mybatis学习笔记-061.动态SQL环境搭建1.1、实体类1.2、BlogMapper接口1.3、BlogMapper.xml配置文件1.4、mybatis-config.xml核心配置文件1.5、唯一的id标识(Idutil)1.6、测试2、动态SQL之if语句3、choose、when、otherwise4、trimwhereset5、forEach这篇... 查看详情