ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mybatis入门环境搭建

2022-09-11 22:02:26  阅读:308  来源: 互联网

标签:入门 id org mybatis import 搭建 public name


开发环境

  • apache-maven-3.8.2

  • mysqlmysql5.7

  • jdk 1.8

  • IDEA

1 简介

1.1、什么是myBatis

  • MyBatis 是一款优秀的持久层框架

  • 它支持自定义 SQL、存储过程以及高级映射。

  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

  • MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。

  • 2013年11月迁移到Github

如何获取MyBatis?

<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.5.9</version>
</dependency>

 

1.2、持久化

数据持久化:

  • 持久化就是将程序的数据在持久状态瞬时状态转化的过程.

  • 内存:断电即失

  • 数据库(JDBC)、io文件持久化

1.3、持久层

DAO层 、Service层、Controller层

  • 完成持久化工作的代码块

  • 层界限十分明显

1.4、为什么要使用myBatista

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

  • 提供映射标签,支持对象与数据库的ORM字段关系映射

  • 提供对象关系映射标签,支持对象关系组建维护

  • 提供XML标签,支持编写动态sql。

创建数据库

create database `mybatis`;

use `mybatis`;

create data `user`(
`id` int(20) not null primary key,
   `name` varchar(30) not null,
   `pwd` varchar(30) not null
)engine=innodb default charset=utf8;

insert into `user`(`id`,`name`,`pwd`) value (1,'test01','123456');

2、搭建第一个myBatista程序

  1. 创建一个普通的maven项目

  2. 删除src目录,作为一个父工程使用

一、 导入依赖

<!--导入依赖-->
   <dependencies>
       <!--mysql-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.49</version>
       </dependency>
       <!--mybatis-->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.4</version>
       </dependency>

       <!--junit-->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.13</version>
           <scope>test</scope>
       </dependency>
   </dependencies>
<!--由于maven项目约定大于配置,idea不会将java源目录中的资源文件加载到项目中。-->
    <build>
           <resources>
               <resource>
                   <directory>src/main/resources</directory>
                   <includes>
                       <include>**/*.properties</include>
                       <include>**/*.xml</include>
                       <include>**/*.*</include>
                   </includes>
                   <filtering>true</filtering>
               </resource>
               <resource>
                   <directory>src/main/java</directory>
                   <includes>
                       <include>**/*.properties</include>
                       <include>**/*.xml</include>
                       <include>**/*.*</include>
                   </includes>
                   <filtering>true</filtering>
               </resource>
           </resources>
       </build>

 

二、 创建一个新模块

1. 编写mybatis的核心配置文件 mybatis-config.xml

 ```xml
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/zsq/mapper/UserMapper.xml" />
    </mappers>

</configuration>
```

2. 编写myBatis工具MybatisUntil.class

    ```java
  package com.zsq.untils;
   
  import org.apache.ibatis.session.SqlSession;
  import org.apache.ibatis.session.SqlSessionFactory;
  import org.apache.ibatis.session.SqlSessionFactoryBuilder;
   
  import javax.annotation.Resources;
  import java.io.InputStream;
   
  /**
    * 工具类
    */
  public class MybatisUntil {
   
      // 从 SqlSessionFactory 中获取 SqlSession
      private static SqlSessionFactory sqlSessionFactory;
   
      static {
          // 读取配置
          String resource = "/mybatis-config.xml";
          InputStream inputStream = Resources.class.getResourceAsStream(resource);
          sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      }
      // 获取session
      public static SqlSession getSqlSession(){
          return sqlSessionFactory.openSession();
      }
  }
  ```

​ ​ #### 3. 编写实体类 ​ ```java package com.zsq.entity;

    public class User {
   
      private int id;
   
      private String name;
   
      private String pws;
   
      public User() {
      }
   
      public User(int id, String name, String pws) {
          this.id = id;
          this.name = name;
          this.pws = pws;
      }
   
      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 getPws() {
          return pws;
      }
   
      public void setPws(String pws) {
          this.pws = pws;
      }
   
      @Override
      public String toString() {
          return "User{" +
                  "id=" + id +
                  ", name='" + name + '\'' +
                  ", pws='" + pws + '\'' +
                  '}';
      }
  }
   
  ```

4. 定义mapper接口

```java package com.zsq.mapper;

    import com.zsq.entity.User;
   
  import java.util.List;
   
  public interface UserMapper {
      List<User> getAllUser();
   
      User getOneUser();
  }
   
  ```

 

5. 接口实现类

xml <?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zsq.mapper.UserMapper"> <select id="getAllUser" resultType="com.zsq.entity.User"> select * from `user` </select> </mapper>

6. 核心配置里添加接口绑定

xml <mappers> <mapper resource="com/zsq/mapper/UserMapper.xml" /> </mappers>

7. 测试

    ```java
  import com.zsq.entity.User;
  import com.zsq.mapper.UserMapper;
  import com.zsq.untils.MybatisUntil;
  import org.apache.ibatis.session.SqlSession;
  import org.junit.Test;
   
  import java.util.List;
   
  public class Test01 {
   
      @Test
      public void selectUserListTest(){
          SqlSession sqlSession = MybatisUntil.getSqlSession();
          UserMapper mapper = sqlSession.getMapper(UserMapper.class);
          List<User> allUser = mapper.getAllUser();
          for (User user : allUser) {
              System.out.println(user.toString());
          }
          sqlSession.close();
      }
  }
   
  ```

​ ​

 

标签:入门,id,org,mybatis,import,搭建,public,name
来源: https://www.cnblogs.com/zsqdtz/p/16684938.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有