栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java之Mybatis 进阶(实训笔记)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java之Mybatis 进阶(实训笔记)

文章目录
  • Mybatis 进阶
  • 1.核心配置文件
    • 1.1.properties读取外部文件
    • 1.2. alias别名
    • 1.3. settings
    • 1.4.其他配置(了解)
    • 1.5.映射文件mappers
    • 1.6. resultMap结果集映射
  • 2.日志
    • 2.1.日志工厂
    • 2.2.手动配置日志
    • 2.3.使用 log4j
      • 2.3.1.导包
      • 2.3.2.创建log4j.properties
      • 2.3.4.测试日志
  • 3.分页
    • **3.1.limit 分页**
    • 3.2. RowBounds实现分页
    • 3.3. pagehelper分页插件
  • 4.注解开发

Mybatis 进阶 1.核心配置文件

网站: https://mybatis.org/mybatis-3/zh/configuration.html

能够配置的

每一个标签都有自己的位置,必须按照规定好的顺序

1.1.properties读取外部文件

核心配置文件引入db.properties文件


db.properties文件

注意:properties 不需要转义

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dawenxi?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true
username=root
password=Gm_199610

dataSource标签

 
            
                
                
                
                
            

附:

 
        
        
        
    
1.2. alias别名
  
    
        
        
        
        
        
    

通过包

通过类型

通过注解

@Data
@NoArgsConstructor
@AllArgsConstructor
@Alias("Hello")
public class User {
 private int id;
 private String username;
 private String password;
}
1.3. settings

settings是 mybatis中及其重要的,它会改变 mybatis的运行时行为。也就是 多写,少写,写错会报错。

1.4.其他配置(了解)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件) – mybatis -plus,通用mapper
1.5.映射文件mappers

注册我们的mapper文件。

方式一:resource (推荐)

mapper.xml可以在任何位置存放

    
        
    

方式二 :class

mapper.xml只能放在接口下边

	
        
    

注意:

接口必须和Mapper配置文件同名

Mapper配置文件必须放在接口同一包下

方式三:package

   
        
    

注意:

接口必须和Mapper配置文件同名

Mapper配置文件必须放在接口同一包下

1.6. resultMap结果集映射
   
        
        
    
    
        select * from `user`
    

2.日志

如果项目出问题了,怎么排错?

可以debug,或者使用日志

2.1.日志工厂

SLF4J

LOG4J 掌握

LOG4J2

JDK_LOGGING

COMMONS_LOGGING

STDOUT_LOGGING 默认的,拿来就能用

NO_LOGGING 掌握

在mybatis 中具体使用哪一个日志,在settings中设置。

2.2.手动配置日志

使用STDOUT_LOGGING 默认的,拿来就能用

第一步:在核心配置文件中配置

    
        
    
2.3.使用 log4j

百度:

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,

我们也可以控制每一条日志的输出格式(意味着我们可以改变我们的sout)。

通过定义每一条日志信息的级别(debug,警告,错误…)

这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

2.3.1.导包
 
        log4j
        log4j
        1.2.17
    
2.3.2.创建log4j.properties
#日志配置
log4j.rootLogger = DEBUG,stdout,file

#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n

#所有文件输出
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File =自己日志文件地址
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.name = fileLogDemo
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c {Num}] [%l] [ %t:%r ] - [ %p ]  %m%n
log4j.appender.file.append = true

2.3.3.导入到核心配置文件

	
        
        
    
2.3.4.测试日志
 @org.junit.Test
 public void log4jTest(){
  logger.info("info:进入了log4jTest方法");
  logger.debug("debug:进入了log4jTest方法");
  logger.error("error:进入了log4jTest方法");
 }
3.分页

数据量大的时候,为了减少数据的查找量 分页

SELECT * FROM `user` LIMIT 4; 
-- 从0开始,到第四位
SELECt * FROM `user` LIMIT 0,2; 
-- 每一页显示两个,从第一位开始查 0是下标

使用mybatis来实现分页,实际上就是操作sql

3.1.limit 分页

接口

// 分页
 public List queryLimit(Map map);

mapper.xml

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

test

 @org.junit.Test
 public void queryLimit(){
  SqlSession sqlSession = MybatisUtils.getSqlSession();
  UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  Map map = new HashMap<>();
  map.put("startIndex",0);
  map.put("pageSize",5);
  List userList = userMapper.queryLimit(map);
  for (User user : userList) {
   logger.info(user);
  }
  sqlSession.close();
 }
3.2. RowBounds实现分页

接口

// 分页RowBounds
public List queryRowBounds();

mapper.xml