[MyBatis] MyBatis入门代码详解

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

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

                           MyBatis专栏Spring专栏SpringMVC专栏SpringBoot专栏

                           Docker专栏Reids专栏MQ专栏SpringCloud专栏     

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

MyBatis参考文档

网址:https://mybatis.org/mybatis-3/zh/index.html

[MyBatis] MyBatis入门代码详解_第1张图片

入门案例

案例需求:查询user表中所有数据

步骤

1.创建user表,添加数据

2.创建模块,导入坐标

3.编写MyBatis核心配置文件-->代替连接信息 解决硬编码问题

4.编写SQL映射文件-->统一管理sql语句,解决硬编码问题

5.编码

        1.定义POJO类(案例是User)

        2.加载核心配置文件,获取SqlSessionFactory对象

        3.获取SQLSession对象,执行SQL语句

        4.释放资源

1. 创建数据库-->表(user)-->添加数据

create database mybatis;
use mybatis;

drop table if exists tb_user;

create table tb_user(
	id int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	gender char(1),
	addr varchar(30)
);

INSERT INTO tb_user VALUES (1, '张三', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '456', '女', '上海');
INSERT INTO tb_user VALUES (3, '王五', '789', '男', '广州');

[MyBatis] MyBatis入门代码详解_第2张图片

[MyBatis] MyBatis入门代码详解_第3张图片

2.IDEA工具创建模块-->导入坐标

使用IDEA创建maven项目模块(省略)

然后导入坐标(添加依赖)

[MyBatis] MyBatis入门代码详解_第4张图片

[MyBatis] MyBatis入门代码详解_第5张图片

 

    
        
        
            org.mybatis
            mybatis
            3.5.5
        
        
        
            mysql
            mysql-connector-java
            5.1.49
        
        
        
            junit
            junit
            4.13
            test
        
        
        
            org.slf4j
            slf4j-api
            1.7.20
        
        
        
            ch.qos.logback
            logback-classic
            1.2.3
        
        
        
            ch.qos.logback
            logback-core
            1.2.3
        
    

其中日志还需要一个配置文件



    
    
        
            [%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n
        
    

    
        
    

    
    
        
    

[MyBatis] MyBatis入门代码详解_第6张图片

3.mybatis核心配置文件

[MyBatis] MyBatis入门代码详解_第7张图片




    
    
        
        
    
    
    
        
            
            
                
                
                
                
                
            
        
    
    
        
        
        
    

[MyBatis] MyBatis入门代码详解_第8张图片

4.mybatis的映射配置文件

一般定义什么类就叫-->什么类名Mapper






    
    
    
    
    

只有select语句有resultType,用于指定查询的结果封装成什么类型(返回值类型)

5.编码

1.定义POJO类(案例是User类)

[MyBatis] MyBatis入门代码详解_第9张图片

创建一个测试类-->MyBatisDemo

2.加载核心配置文件,获取SqlSessionFactory对象

[MyBatis] MyBatis入门代码详解_第10张图片

3.获取SQLSession对象,执行SQL语句

  • SQLSession是mybatis的核心对象,既能控制事物,也能执行sql

4.执行sql

SQLSession对象(sqlSession)

sqlSession.selectList就是将查询的结果封装成list集合

sqlSession.update返回值就是执行成功的行数,int类型

sqlSession.selectOne返回值类型是T类型,需要强转

5.释放资源

package com.moming;

import com.moming.pojo.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 MyBatisDemo {
    public static void main(String[] args) throws IOException {
        //1.加载mybatis的核心配置文件,获取SqlSessionFactory
        //定义核心配置文件的路径(注意和实际文件一致)
        String resource = "mybatis-config.xml";
        //资源加载返回字节输入流
        //根据名字利用类加载器从源码目录加载核心配置文件并生成一个输入流对象
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //获取工厂
        //利用mybatis提供的工厂类读核心配置文件中的内容,生成一个工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.获取SqlSession对象,用它来执行sql
        //从工厂中解析核心配置文件中的内容,并将解析出来的所有内容保存到一个容器中(map类型容器)
        //在映射配置文件中配置的方法名(id)当成map的key,sql语句当成value
        SqlSession sqlSession = sqlSessionFactory.openSession();//openSession()默认openSession(true)开启事务,不会自动提交,false关闭事务自动提交

        //3.执行sql
        //参数就是sql语句的唯一标识
        //自动封装结果集
        //定位在哪个映射配置文件的哪个sql语句
        List users = sqlSession.selectList("test.selectAll");
        System.out.println(users);

        //4.释放资源
        sqlSession.close();
    }
}

[MyBatis] MyBatis入门代码详解_第11张图片

 运行

[MyBatis] MyBatis入门代码详解_第12张图片

你可能感兴趣的:(JavaWeb,MyBatis,mybatis)