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

Mybatis的简单使用

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

Mybatis的简单使用

目录

前言

一、Mybatis是什么?

二、使用步骤

在这里项目我就不创建了,想了解如何创建maven请去idea创建maven中的servlet并运行_篆愁君的烦恼的博客-CSDN博客

1、在pom.xml中添加配置

2、删除web.xml中用不到的

3、在resources下面创建mybatis-config.xml文件

 4、创建实体类

5、创建map映射

在安装好之后,会有一些特殊效果,这里还需要下一个步骤

6、创建映射的xml

1、在usermapping.xml中生成

 2、在interface中直接使用

 7、创建运行的类

1.获取SqlSessionFactory

2、获取SqlSession对象

3、获取map映射

4、 关闭资源

总结



前言

对于Mybatis也是简单的学了一阵子了,现在来总结下Mybatis在项目中的简单使用(为了便于理解我这里只举一个简单的例子)


一、Mybatis是什么?

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

如果真的感兴趣可以前往mybatis – MyBatis 3 | 简介

二、使用步骤

在这里项目我就不创建了,想了解如何创建maven请去idea创建maven中的servlet并运行_篆愁君的烦恼的博客-CSDN博客

1、在pom.xml中添加配置

之间添加


      mysql
      mysql-connector-java
      8.0.29
    
    
      org.mybatis
      mybatis
      3.5.10
    

这两个,第一个是连接数据库的,一个是mybatis

2、删除web.xml中用不到的

初学者的话,基本上都用不到,功能不会有太大的差别





  

  
 

        

保留头尾就可以了

3、在resources下面创建mybatis-config.xml文件



  
    
      
      
        
        
        
        
      
    
  
  
    
  

这个是官网给我们的大致文件,根据自己的情况,将${driver}等,mapper映射改一下就可以用

 下面是我按我的弄好的




    
        
            
            
                
                
                
                
            
        
    
    

        
        
    

 4、创建实体类

这里根据自己创建的数据库表来创建,实体类属性最好和表名相同,不同的话,需要在后面创建的xml中修改

package com.izaijia.beans;

public class User {

    private int id;
    private String name;
    private String sex;

    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 getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

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

5、创建map映射

创建一个interface

建议把实体和映射放到两个包里

 idea插件商城里面有一个比较方便的Mybatis插件

 点击 文件=》设置=》插件

在安装好之后,会有一些特殊效果,这里还需要下一个步骤

6、创建映射的xml

这个在resource里面创建,直接创建一个与上面的interface同名包内

这里我的interface是在com.izaijia.mapping内

所以我在创建xml时,创建的是com/izaijia/mapping/usermapping.xml

创建成功后就是上面这个样子

下面这个是从整体看,那个MybatisDemo是一个运行类,到后面我会讲到

 

官网的文件内容是下面这个




  
    select * from Blog where id = #{id}
  
将namespace改成映射的interface就好,id是方法名,returnType是返回值类型。
可以直接把它给的select删了

有两种方法

1、在usermapping.xml中生成

你可以直接在interface内写想要的方法

然后在方法后面点击alt+Enter

可以直接在xml内生成相应的代码,不过具体的还是要自己写

下面是自动生成的

修改一下,加上查询语句


        select * from user where id=#{id};
    

 2、在interface中直接使用

这种的话,适合比较简单的sql语句,类似下面的

@Select("select * from user where id=#{id}")
    User selectById(int id);

通过注解解决,类似还有@Insert,@Update,@Delete等,当然,上一种方法和这个差不多,也有等标签

另外,对于实体类属性和数据库表内属性名不同的情况,有下面这种方法解决

    

        

        
    

 但同时,之前的代码下面这个

 修改成下面这种形式

 7、创建运行的类

我们这里只是简单举例,就不写各种service,dao,imp的类了,就简单写一个运行类

1.获取SqlSessionFactory

根据 官网的提示,我们找到下面这个

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

明显这个‘resource’就是我们的mybatis-config.xml文件,因为我们写到了resources里,且并没有放到包里(这个视你自己的情况),所以直接引用,改成下面这个

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

接下来 可以获取SqlSession

2、获取SqlSession对象
SqlSession sqlSession=sqlSessionFactory.openSession();

3、获取map映射
UserMapping mapper = sqlSession.getMapper(UserMapping.class);

 这个UserMapping就是咱创建的那个interface

创建好映射之后就可以直接用方法了

//    执行方法
    User user = mapper.selectById(1);
    System.out.println(user);

4、 关闭资源
sqlSession.close();

总结

Mybatis的简单应用并不难,但是深入却不简单,希望一起努力,mybatis的官网是mybatis – MyBatis 3 | 简介

想要进一步学习的可以去看看

另外,注意map映射xml的生成,是要与interface同包的,在resource生成,且是直接写成类似

com/izaijia/mapping/usermapping.xml

最后我把所有的代码再写一遍,如果有想要试试的,可以在这里复制一下

1、pom.xml






  4.0.0
  war

  ex
  com.izaijia
  ex
  1.0-SNAPSHOT

  
    
      
        org.mortbay.jetty
        maven-jetty-plugin
        6.1.7
        
          
            
              8888
              30000
            
          
          ${project.build.directory}/${pom.artifactId}-${pom.version}
          /
        
      
    
  

  
    
    
      mysql
      mysql-connector-java
      8.0.29
    
    
      org.mybatis
      mybatis
      3.5.10
    
  


2、web.xml





  

  


        

3、mybatis.xml




    
        
            
            
                
                
                
                
            
        
    
    

        
        
    

4、User.java(实体类)

package com.izaijia.beans;

public class User {

    private int id;
    private String name;
    private String sex;

    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 getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

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

5、UserMapping.java

package com.izaijia.mapping;

import com.izaijia.beans.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapping {

    User getByIdUser(int id);

    List selectAll();

    @Select("select * from user where id=#{id}")
    User selectById(int id);
}

 6、usermapping.xml




    
        select * from user ;
    
    

 7、MysbatisDemo.java

import com.izaijia.beans.User;
import com.izaijia.mapping.UserMapping;
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 MybatisDemo {
//Driver
public static void main(String[] args) {

//1获取SqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = null;
    try {
        inputStream = Resources.getResourceAsStream(resource);
    } catch (IOException e) {
        e.printStackTrace();
    }
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//    2获取SqlSession对象
    SqlSession sqlSession=sqlSessionFactory.openSession();

//    3获取map映射
    UserMapping mapper = sqlSession.getMapper(UserMapping.class);
//    执行方法
    User user = mapper.selectById(1);
    System.out.println(user);

//    4关闭资源
    sqlSession.close();
}
}

8、数据库

CREATE DATABASE  IF NOT EXISTS `mybatis`  ;
USE `mybatis`;
-- MySQL dump 10.13  Distrib 8.0.29, for Win64 (x86_64)
--
-- Host: 127.0.0.1    Database: mybatis
-- ------------------------------------------------------
-- Server version	8.0.29

;
;
;
;
;
;
;
;
;
;

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
;
;
CREATE TABLE `user` (
  `id` int NOT NULL,
  `name` varchar(45) DEFAULT NULL,
  `sex` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
;

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
;
INSERT INTO `user` VALUES (1,'张三','男'),(2,'李四','女'),(3,'王五','男'),(4,'赵六','女'),(5,'钱七','男');
;
UNLOCK TABLES;
;

;
;
;
;
;
;
;

-- Dump completed on 2022-07-12 19:19:43

最后这个是自动导出的,只看不注释的就行

 就到这里吧

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

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

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