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

mybatis搭建入门、配置及实现增删改查

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

mybatis搭建入门、配置及实现增删改查

mybatis搭建入门、配置及实现增删改查 1.开发环境

IDE:idea 2019.1
构建工具:maven 3.8.2
MySQL版本:MySQL 8.0
MyBatis版本:MyBatis 3.4.6

2.创建maven工程
  • 创建maven项目,建议把外层src文件夹删掉,再建立二级模块,这样方便用外层xml做全局配置

  • 在外层pom.xml中导入依赖


   	    
        
            org.mybatis
            mybatis
            3.4.6
        
    
        
        
            mysql
            mysql-connector-java
            8.0.16
        
    
        
        
            junit
            junit
            3.8.1
            test
        

    
3.创建MyBatis的核心配置文件

在‘resources’文件夹下创建一个xml核心配置文件,习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合Spring
之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息




    
    
        
                   
              
                
                
                
                
            
        
    
    
    
        
        
    

4.创建实体类

在src/main文件夹中创建java实体类com.mojito.User

用alt+insert快速构造get set方法

public class User {

    private int id;
    private String name;
    private String pwd;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", pwd='" + pwd + ''' +
                '}';
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

}
5.创建mapper接口

创建接口类“com.mapper.UserMapper”。MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

public interface UserMapper {
    
    
    
    
    int insertUser();
}

6.创建MyBatis的映射文件
相关概念:ORM(Object Relationship Mapping)对象关系映射。

对象:Java的实体类对象
关系:关系型数据库
映射:二者之间的对应关系

1、映射文件的命名规则:
表所对应的实体类的类名+Mapper.xml
例如:表user,映射的实体类为User,所对应的映射文件为UserMapper.xml
因此一个映射文件对应一个实体类,对应一张表的操作
MyBatis映射文件用于编写SQL,访问以及操作表中的数据
MyBatis映射文件存放的位置是src/main/resources/mappers目录下
2、MyBatis中可以面向接口操作数据,要保证两个一致:
a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致
b>mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

Java概念数据库概念
类表
属性字段/列
对象记录/行




    
    
    
        insert into user values(10,'admin','shiyang')
    
    

7.通过junit测试功能
在test文件夹里创建测试类com.mojito.mybatis.test,在test包下创建test.java类
  • SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)
  • SqlSessionFactory:是“生产”SqlSession的“工厂”。
  • 工厂模式:如果创建某一个对象,使用的过程基本固定,那么我们就可以把创建这个对象的相关代码封装到一个“工厂类”中,以后都使用这个工厂类来“生产”我们需要的对象。
public class test1 {

    

    @Test
    public void testMybatis() throws IOException {
        //加载核心配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //获取sqlSessionFactoryBuilder且获取sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //获取sqlSession 可实现mybatis的功能 访问sql语句
        //SqlSession sqlSession = sqlSessionFactory.openSession();
        SqlSession sqlSession = sqlSessionFactory.openSession(true);//优化为自动提交 设置自动提交参数为true b是autoCommit

        //获取mapper接口对象 getMapper底层是个代理模式 可以帮助获取接口的一个实现类
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        //测试功能 过程:从mapper接口-->映射文件xml-->根据方法找到要调用的sql语句
        int result = mapper.insertUser();
        //提交事务
        //sqlSession.commit();
        System.out.println(result);
    }

}
7.加入log4j日志功能
  • 在外层pom.xml中加入依赖

    
            
                log4j
                log4j
                1.2.17
            
    
  • 加入log4j的配置文件

log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下




    
        
        
            
        
    
    
        
    
    
        
    
    
        
        
    


8.mybatis的增删改查

**小技巧:**接口文件中写函数接口时alt+回车可利用mybatisX插件在xml映射文件中自动生成sql语句

(1)增

UserMapper接口文件中:

//添加用户
    int insertUser();

UserMapper.xml映射文件中


    
        insert into user values(10,'admin','shiyang')
    

test1.java测试文件:

@Test
    public void testMybatis() throws IOException {
        //加载核心配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //获取sqlSessionFactoryBuilder且获取sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //获取sqlSession 可实现mybatis的功能 访问sql语句
        //SqlSession sqlSession = sqlSessionFactory.openSession();
        SqlSession sqlSession = sqlSessionFactory.openSession(true);//优化为自动提交 设置自动提交参数为true b是autoCommit

        //获取mapper接口对象 getMapper底层是个代理模式 可以帮助获取接口的一个实现类
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        //测试功能 过程:从mapper接口-->映射文件xml-->根据方法找到要调用的sql语句
        int result = mapper.insertUser();
        //提交事务
        //sqlSession.commit();
        System.out.println(result);
    }
(2)删除

UserMapper接口文件中:

//删除用户信息
    void deleteUser();

UserMapper.xml映射文件中:

 
    
        delete from user where id = 10
    

test1.java测试文件:(包含了删、改、查,代码只用改注释操作部分)

@Test
    public void testUpdateOrDelete() throws IOException {
        //加载核心配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //获取sqlSessionFactoryBuilder且获取sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //获取sqlSession 可实现mybatis的功能 访问sql语句
        //SqlSession sqlSession = sqlSessionFactory.openSession();
        SqlSession sqlSession = sqlSessionFactory.openSession(true);//优化为自动提交 设置自动提交参数为true b是autoCommit

        //获取mapper接口对象 getMapper底层是个代理模式 可以帮助获取接口的一个实现类
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        //修改
        //mapper.updateUser();

        //删除
        //mapper.deleteUser();
        
        //查询
        //方式1:根据id查询 返回类型为实体类
       

        //方式2:查询所有的用户信息 List集合
        List list = mapper.getAllUser();
        list.forEach(System.out::println);


    }
(3)改

UserMapper接口文件中:

//修改用户
    void updateUser();

UserMapper.xml映射文件中:


    
        update user set name = '石阳' where id = 2
    

test1.java测试文件:见(2)

(4)查

UserMapper接口文件中:

//查询
    // 方式1:根据id查询 返回类型为实体类
    User getUserById();

    // 方式2:查询所有的用户信息 List集合
    List getAllUser();

UserMapper.xml映射文件中:


    
    
        select * from user
    
小结
  • 配置完毕之后实现增删改查的编写步骤:
    • 先在接口类文件中定义方法
    • 再到映射文件中写sql语句,id与方法名一致
    • 最后在test文件中进行单元测试()
  • 关键点
    • mybatis面向接口编程的两个一致

      • 映射文件的namespace要和mapper的全类名保持一致
      • 映射文件中sql语句的id要和mapper接口中的方法名一致
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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