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

mybatis使用教程(mybatis用法)

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

mybatis使用教程(mybatis用法)

目录

前言

1、创建数据库

2、导入相关依赖

3、Mybatis核心配置文件

4、创建实体类

 5、Mybatis封装工具类

6、编写dao接口及接口配置文件

7、编写Junit测试单元 

8、结果展示 


前言

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

1、创建数据库

在学习Mybatis之前,首先要对数据库操作有所了解,一定要先建好表。

2、导入相关依赖

1)依赖包括Mybatis依赖包,数据库连接驱动以及Junit测试单元


        
            junit
            junit
            4.11
            test
        
        
            org.mybatis
            mybatis
            3.5.6
        
        
        
            mysql
            mysql-connector-java
            8.0.28
        
    

2)在build中配置resources,来防止我们资源导出失败的问题


        
            
                src/main/resources
                
                    ***.xml
                
            
            
                src/main/java
                
                    ***.xml
                
                true
            
        
    

3、Mybatis核心配置文件

1)每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。 并且每一个Mapper.xml都需要在Mybatis核心配置文件中注册。

mybatis-config.xml :





    
        
            
            
                
                
                
                
            
        
    
    
        
    

2) 使用属性配置文件连接数据库(推荐使用),可将上述代码一分为二

mybatis-config.xml :





    
    
    
    
        
    
    
        
            
            
                
                
                
                
            
        
    

    
        
    

1)可以给实体类起别名


        
    

2)也可以扫描实体类的包,它的默认别名就是这个类的类名,首字母小写


        
    

 3)注册Mapper.xml,可以使用包路径加载,也可以使用资源路径

 

db.properties:

1)如果mysql-connector-java用的6.0以上的,此时需要把com.mysql.jdbc.Driver 改为com.mysql.cj.jdbc.Driver。

url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
driver=com.mysql.cj.jdbc.Driver
username=root
password=123456

2)如果使用的数据库是8.0.11以上版本的MySQL,需要配置时区,这是由于数据库和系统时区差异所造成的。

url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Shanghai&?useUnicode=true&characterEncoding=utf8&useSSL=false

 连接数据库:

先点“+”,再选择自己所用的数据库 ,然后点击Schemas,选择自己的数据库即可,连接完成之后,可以查看自己数据库中的表。

      

4、创建实体类

注意:实体类的变量名称要与数据库字段名一致,否者可能查询为Null

package com.pojo;

public class User {
    private int userid;
    private String username;
    private String password;

    public User() {
    }

    public User(int userid, String username, String password) {
        this.userid = userid;
        this.username = username;
        this.password = password;
    }

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    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;
    }

    @Override
    public String toString() {
        return "userid:" + userid +
                ", username:" + username +
                ", password:" + password;
    }
}

 5、Mybatis封装工具类
MybatisUtils.java:
package com.dao.utils;

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;

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}

6、编写dao接口及接口配置文件

UserMapper:

package com.dao;
import com.pojo.User;

import java.util.List;

public interface UserMapper {
     //查询全部用户
     List getUserList();
     //根据ID查询用户
     User getUserById(int userid);
     //增加一个用户
     int addUser(User user);
     //修改用户
     int updateUser(User user);
     //删除一个用户
     void deleteUser(int userid);
}

 UserMapper.xml:





    
        select *
        from mybatis.user
        where userid = #{id}
    
    
    
        insert into mybatis.user (userid, username, password)
        values (#{userid}, #{username}, #{password})
    
    
        update mybatis.user
        set username=#{username},
            password=#{password}
        where userid = #{userid}
    
    
        delete
        from mybatis.user
        where userid = #{userid}
    

7、编写Junit测试单元 
package com.dao;
import com.pojo.User;
import com.dao.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class UserDaoTest {
    @Test
    public void test() {
        //第一步:获得SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List userList = userMapper.getUserList();
        for (User user : userList) {
            System.out.println(user);
        }
        //关闭SqlSession
        sqlSession.close();
    }
}

8、结果展示 

查询到了全部用户,程序结束。

如遇错误 ,请参考下面文章:https://blog.csdn.net/qq_53860947/article/details/123452367

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

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

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