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

Mybatis拾遗(一)

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

Mybatis拾遗(一)

Mybatis拾遗
  • 别名(TypeAliases)
    • 在mybatis-config.xml中增加TypeAliases标签
      • typealiase属性
      • package属性
    • 使用注解配置别名
  • resultMap
    • 当实体类和数据库字段不对应时,可以使用这个字段。
    • 对于复杂的查询,用于描述个字段间的关系
  • 日志的记录
    • STDOUT_LOGGING
    • LOG4J
      • 引入依赖
      • 配置文件
      • 用法
  • lombock
    • 添加依赖
    • 实体类中使用
  • 注解开发
    • 主要配置文件的更改
    • 注解式开发
      • UserMapper.java

之前已经搭建好了一个简单的Mybatis工程----创建第一个Myabtis工程

别名(TypeAliases)

我们在之前的里面UserMapper.xml中,对于resultType使用的是全限定名。


  select * from user

那我们可不可以直接写一个User呢?自然是可以的。不过在此之前我们需要增加一下配置信息。

在mybatis-config.xml中增加TypeAliases标签 typealiase属性

可以放在环境environments标签上面, 放在下面就会出错

    
    
        
        
    

此时上面的代码可以简化成以下这样


        select * from user
    
对于复杂的查询,用于描述个字段间的关系

对于联表查询,嵌套子查询等,诸如此类的复杂查询,我们返回的字段往往会与实体类中字段有出入。

日志的记录

官方给的文档里支持的日志有,SLF4J (Spring里面用的就是这个),LOG4J , LOG4J2 ,JDK_LOGGING ,COMMONS_LOGGING, STDOUT_LOGGING ,NO_LOGGING。
这里呢我只记录log4j和STDOUT_LOGGING

STDOUT_LOGGING

键值对的大小写一定要正确

    
        
    

配置后运行是这样的

LOG4J

接下来就是我们的老朋友了,log4j

引入依赖
        
            log4j
            log4j
            1.2.17
        
配置文件

在resources目录下新建一个log4j.properties文件,其中的配置信息大家可以网上找找,都是比较详细的。
log4j.properties

#将等级为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/mytest.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
用法

一般是在类的开始,创建一个静态的Logger对象(导包记得导入log4j的包,不要导入其他的日志记录包)。

import org.apache.log4j.Logger;
public class Test {
	static Logger logger = Logger.getLogger(Test.class);
}

在方法体内部一般使用info的方法记录信息,当然根据不同的情况可以使用debug、error等方法记录。

    @Test
    public void testForLog() {
        logger.info("log4j的测试");
        int a = 0;
        int b = 1;
        try{
            int c = b/a;
        }catch (Exception ex) {
        	logger.debug(ex);
            logger.error(ex);//记录错误信息 并且输出到文件
        }
    }
lombock

用于简化实体类的开发。

添加依赖
        
            org.projectlombok
            lombok
            1.18.22
        
实体类中使用
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class User {
    private int id;
    private String name;
    private String pw;
}

各个注解的包含的方法
@Data – setter/getter方法 无参构造 equals和hashcode toString()

@AllArgsConstructor – 所有参数构造方法
@NoArgsConstructor – 无参构造方法
@ToString – toString()方法
@EqualsAndHashCode – equals和hashcode方法

注解开发 主要配置文件的更改

这里的属性标签使用package, name 是接口所在的全限定包名

    
        
    
注解式开发 UserMapper.java

只用@Select() 查询语句作为示范,其他的注解关(删除、插入、更新)键字与非注解开发一致。

    @Select("select * from user where id = #{id}")
    public User getUserById(@Param("id") int id);

@Param(“xxx”)用于标识参数,单个参数方法可以不写。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/843213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号