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

简单体验MyBatis用法

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

简单体验MyBatis用法

我们通过一个简单的 HelloWorld 先来看下 MyBatis 的基本用法。

首先来准备一个数据库:

 CREATE DATAbase `jiangnan`  ;
 ​
 USE `jiangnan`;
 ​
 
 ​
 DROp TABLE IF EXISTS `user`;
 ​
 CREATE TABLE `user` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `username` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
   `address` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 ​
 
 ​
 insert  into `user`(`id`,`username`,`address`) values (1,'javaboy123','www.javaboy.org'),(2,'一点雨','江南雨多多'),(3,'javaboy','spring.javaboy.org'),(4,'张三','深圳'),(5,'李四','广州'),(6,'王五','北京');
接下来创建一个普通的 Maven 工程,不用创建 Web 工程,JavaSE 工程即可。项目创建完成后,添加 MyBatis 依赖:

    org.mybatis
    mybatis
    3.5.7


    mysql
    mysql-connector-java
    8.0.25

定义的 User 实体类,如下:

 public class User {
     private Integer id;
     private String username;
     private String address;
 ​
     @Override
     public String toString() {
         return "User{" +
                 "id=" + id +
                 ", username='" + username + ''' +
                 ", address='" + address + ''' +
                 '}';
     }
 ​
     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 getAddress() {
         return address;
     }
 ​
     public void setAddress(String address) {
         this.address = address;
     }
 }
接下来,准备一个 Mapper 文件,Mapper 是用来在 MyBatis 中定义 SQL 的 XML 配置文件,由于在实际开发中,我们经常需要使用到 Mapper,经常需要自己创建 Mapper 文件,因此,我们可以将 Mapper 文件做成一个模板。具体操作如下:

在 IDEA 中,选择 resources 目录,右键单击,New–>Edit File Templates:

然后点击 + ,添加一个新的模板进来,给模板取名,同时设置扩展名,并将如下内容拷贝到模板中:

 
 
 
     
 

如下图:

配置完成后,在resources文件夹下再次创建 Mapper 文件时,就可以选择 New–>mapper 了,这里,我们创建一个 UserMapper:

 
 
 
     
 

创建一个新的 mapper ,需要首先给它取一个 namespace,这相当于是一个分隔符,因为我们在项目中,会存在很多个 Mapper,每一个 Mapper 中都会定义相应的增删改查方法,为了避免方法冲突,也为了便于管理,每一个 Mapper 都有自己的 namespace,而且这个 namespace 不可以重复。

接下来,在 Mapper 中,定义一个简单的查询方法,查询所有的用户:

 
 
 
 ​
     
 

在 Mapper 中,首先定义一个 select ,id 表示查询方法的唯一标识符,resultType 定义了返回值的类型。在 select 节点中,定义查询 SQL。

接下来,创建 MyBatis 配置文件mybatis-config.xml,如果是第一次使用,可以参考官网,拷贝一下配置文件的头信息,如果需要多次使用这个配置文件,可以在 IDEA 中创建该配置文件的模板:

 
 
 
     
         
             
             
                 
                 
                 
                 
             
         
     
     
         
     
 

在这个配置文件中,我们只需要配置 environments 和 mapper 即可,environment 就是 MyBatis 所连接的数据库的环境信息,它放在一个 environments 节点中,意味着 environments 中可以有多个 environment,为社么需要多个呢?开发、测试、生产,不同环境各一个 environment,每一个 environment 都有一个 id,也就是它的名字,然后,在 environments 中,通过 default 属性,指定你需要的 environment。每一个 environment 中,定义一个数据的基本连接信息。

在 mappers 节点中,定义 Mapper,也就是指定我们上一步所写的 Mapper 的路径。

最后,我们来加载这个主配置文件:

 public class Main {
     public static void main(String[] args) throws IOException {
         SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
         SqlSession sqlSession = factory.openSession();
         List users = sqlSession.selectList("org.javaboy.mybatis.mapper.getAllUser");
         for (User user : users) {
             System.out.println("user = " + user);
         }
         sqlSession.close();
     }
 }

运行上面代码出现mybatis错误:java.io.IOException: Could not find resource com/xxx/xxxMapper.xml

解决方法:在Maven的pom文件中,添加下面代码


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

再次运行main方法,打印结果如下:

附文件结构:

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

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

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