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

mybatis从入门到精通(mybatis入门菜鸟教程)

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

mybatis从入门到精通(mybatis入门菜鸟教程)

笔记

1、创表
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, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');
2、创建项目,模块,导入坐标 1、创建空项目

2、新建模块

3、新建maven项目


新建后的pom文件

4、导入坐标

mybatis官网

3、pom文件中导入的依赖,编写配置文件


    4.0.0

    org.example
    mybatis-demos
    1.0-SNAPSHOT

    
        8
        8
    

    
        
        
            org.mybatis
            mybatis
            3.5.5
        

        
        
            mysql
            mysql-connector-java
            5.1.46
        

        
        
            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
        

    


1、logback依赖添加后,还需要一个配置文件,放在resources目录下


logback配置文件



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

    
        
    


    
    
        
    

2、创建mybatis-config.xml配置文件,放在resources目录下




    
        
            
            
                
                
                
                
                
            
        
    
    
        
        
    

4、编写sql映射文件 1、创建UserMapper.xml配置文件,放在resources目录下(要操作哪个表,就以哪个表命名)





	
	
    

此时我们已经写好了sql映射文件,下面再将其加载进mybatis-config.xml文件中

5、编码 1、定义pojo类

User类,跟数据库表中的数据一样

package com.itheima.pojo;

public class User {

    private Integer id;
    private String username;
    private String password;
    private String gender;
    private String addr;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + ''' +
                ", password='" + password + ''' +
                ", gender='" + gender + ''' +
                ", addr='" + addr + ''' +
                '}';
    }
}
2、写核心测试类
package com.itheima;

import com.itheima.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);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3执行sql,查询所有就用sqlSession的selectList方法,查询单个就是selectOne
        //要执行的sql语句,只需要传入对应的唯一标识即可:名称空间.唯一标识
        List users = sqlSession.selectList("test.selectAll");
        System.out.println(users);

        //4释放资源
        sqlSession.close();
    }
}
6、在idea中配置mysql数据库连接


填入信息

download

解决时区问题

完成

解决连接数据库后写sql代码不提示表名

7、Mapper代理开发

1、创建Mapper接口并将其和sql映射文件置于同一目录下 1、创建Mapper接口

2、将Mapper接口和SQL映射文件放在同一目录下

在resources目录下创建包com.itheima.mapper

将UserMapper.xml配置文件放入新建的包后编译,结果在同一目录下

2、将SQL映射文件的namespqce属性为Mapper接口全限定名

3、在 Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致



此时,sql映射文件的路径发生改变,所以要在mybatis配置文件中更改文件路径


4、编码

通过SqlSession的 getMapper方法获取Mapper接口的代理对象,代理对象调用对应方法完成sql的执行

package com.itheima;

import com.itheima.mapper.UserMapper;
import com.itheima.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 MyBatisDemo2 {
    public static void main(String[] args) throws IOException {
        //1加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //3执行sql
        //List users = sqlSession.selectList("test.selectAll");

        //3.1获取UserMapper接口的代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List users = userMapper.selectAll();

        System.out.println(users);

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

细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载

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

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

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