[MyBatis] MyBatis入门使用及配置细节

✨✨博主简介:一个会bbox的‍

✨✨个人主页:沫洺的主页

 系列专栏:  JavaWeb专栏 JavaSE专栏  Java基础专栏vue3专栏

如果文章对你有所帮助请留下三连✨✨

环境搭建

MyBatis: API帮助文档

maven Web项目

引入依赖包



    org.mybatis
    mybatis
    3.5.9



    mysql
    mysql-connector-java
    8.0.28




    org.projectlombok
    lombok
    1.16.10


 
    cn.hutool
    hutool-all
    5.8.5



    log4j
    log4j
    1.2.17

核心配置文件 

在resources下创建db.properties文件

db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///db5?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456

在resources下创建MyBatis的配置文件,无固定名,但大部分人使用 resources/mybatis.xml

mybatis.xml




    
    
    
    
    
        
        
        
        
    

    
    
        
            
            
            
            
                
                
                
                
            
        
    
    
    
        
    

创建数据库db5,表user

[MyBatis] MyBatis入门使用及配置细节_第1张图片

创建实体类

Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set、get方法; DAO层=mapper层,现在用Mybatis逆向工程生成的mapper层,其实就是dao层。 DAO层会调用entity层,DAO中会定义实际使用到的方法,比如增删改查。

创建entity/User

package com.moming.entity;

import lombok.Data;

@Data
public class User {
    private Integer id;
    private String userName;
    private Integer userAge;
}

mapper文件

注意在数据库中的字段名和实体类中的属性名不一致,所以在配置文件中需要使用resultMap进行映射

在resources下创建mapper/user.xml






    
    
    
        
        
        
    
    

构建SqlSessionFactory

在启动类App中,从xml中创建SqlSessionFactory,获取sqlSession对象执行sql

App

package com.moming;

import com.moming.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class App {
    public static void main(String[] args) throws IOException {
        // 1. 解析扫码 mybatis.xml 文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
        // 2. 获取sqlsession工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 3. 获得 sqlsession 对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 4. 执行sql语句
        List users = sqlSession.selectList("com.moming.selectAll");
        // 打印结果
        System.out.println(users);
    }
}

执行结果

[MyBatis] MyBatis入门使用及配置细节_第2张图片

MyBatis 配置细节

log4j日志的使用

加入依赖


    log4j
    log4j
    1.2.17

配置文件 log4j.properties

#定义全局日志级别调试阶段推荐debug
log4j.rootLogger = error,stdout
#包级别日志
log4j.logger.com.moming = debug

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.SimpleLayout

### 输出日志到文件=/logs/log.log ###
log4j.appender.logfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File = /logs/log.log
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

再次运行看效果

[MyBatis] MyBatis入门使用及配置细节_第3张图片

事务配置

JDBC : 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。

MANAGED : 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期。

连接池配置 

UNPOOLED : 这个数据源的实现会每次请求时打开和关闭连接.

POOLED : 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。

JNDI : 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

映射文件的加载方式 

resource: 使用相对于类路径的资源引用

 

url: 使用完全限定资源定位符(URL)

 

class : 使用映射器接口实现类的完全限定类名

 

name : 将包内的映射器接口实现全部注册为映射器


  

实体类别名处理 


    
    
    
    

常见的 Java 类型内建的类型别名。它们都是不区分大小写的

  • 一般基本类型别名在原名前加_(例如_int)
  • 对象类型,工具类的别名是原名字母全部小写

 外部属性配置文件存储数据库信息

配置db.properties数据库信息

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///db5?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456

mybatis引入



   
   
   
   

你可能感兴趣的