码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis__第一个mybatis

时间:2021-04-19 15:58:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:java   src   utils   tty   pack   catch   insert   mave   绑定   

思路:搭建环境-->导入Mybatis-->编写代码-->测试!

### 2.1、搭建环境

搭建数据库

```java
CREATE DATABASE `mybatis`;

USE `mybatis`;

CREATE TABLE `user`(
  `id` INT(20) NOT NULL PRIMARY KEY,
  `name` VARCHAR(30) DEFAULT NULL,
  `pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `user`(`id`,`name`,`pwd`) VALUES
(1,‘狂神‘,‘123456‘),
(2,‘张三‘,‘123456‘),
(3,‘李四‘,‘123890‘)
```

新建项目

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

2. 删除src目录

3. 导入maven依赖

   ```xml
   
       <!--导入依赖-->
       <dependencies>
           <!--mysql驱动-->
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>5.1.47</version>
           </dependency>
           <!--mybatis-->
           <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
           <dependency>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis</artifactId>
               <version>3.5.2</version>
           </dependency>
           <!--junit-->
           <dependency>
               <groupId>junit</groupId>
               <artifactId>junit</artifactId>
               <version>4.12</version>
           </dependency>
       </dependencies>
   ```

### 2.2、创建一个模块

- 编写mybatis的核心配置文件

  ```xml
  <?xml version="1.0" encoding="UTF-8" ?>
  <!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=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                  <property name="username" value="root"/>
                  <property name="password" value="123456"/>
              </dataSource>
          </environment>
      </environments>
      <mappers>

        <mapper resource="com/kuang/dao/UserMapper.xml"/>

    </mappers>
 
  </configuration>
  ```

- 编写mybatis工具类

  ```java
  //sqlSessionFactory --> sqlSession
  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();
          }
 
      }
 
      //既然有了 SqlSessionFactory,顾名思义,我们就可以从中获得 SqlSession 的实例了。
      // SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。
      public static SqlSession  getSqlSession(){
          return sqlSessionFactory.openSession();
      }
 
  }
 
  ```

### 2.3、编写代码

- 实体类

  ```java
  package com.kuang.pojo;
 
  //实体类
  public class User {
      private int id;
      private String name;
      private String pwd;
 
      public User() {
      }
 
      public User(int id, String name, String pwd) {
          this.id = id;
          this.name = name;
          this.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;
      }
 
      @Override
      public String toString() {
          return "User{" +
                  "id=" + id +
                  ", name=‘" + name + ‘\‘‘ +
                  ", pwd=‘" + pwd + ‘\‘‘ +
                  ‘}‘;
      }
  }
 
  ```

- Dao接口

  ```java
  public interface UserDao {
      List<User> getUserList();
  }
  ```

- 接口实现类由原来的UserDaoImpl转变为一个 Mapper配置文件.

  ```xml
  <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE mapper
                  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
          <!--namespace=绑定一个对应的Dao/Mapper接口-->
  <mapper namespace="com.kuang.dao.UserDao">
 
  <!--select查询语句-->
     <select id="getUserList" resultType="com.kuang.pojo.User">
         select * from mybatis.user
     </select>
 
  </mapper>
  ```

### 2.4、测试

注意点:

org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.

**MapperRegistry是什么?**

核心配置文件中注册 mappers

- junit测试

  ```java
  @Test
  public void test(){
      //第一步:获得SqlSession对象
      SqlSession sqlSession = MybatisUtils.getSqlSession();
 
 
      //方式一:getMapper
      UserDao userDao = sqlSession.getMapper(UserDao.class);
      List<User> userList = userDao.getUserList();
 
      for (User user : userList) {
          System.out.println(user);
      }
 
 
 
      //关闭SqlSession
      sqlSession.close();
  }
 
  ```



你们可以能会遇到的问题:

1. 配置文件没有注册
2. 绑定接口错误。
3. 方法名不对
4. 返回类型不对
5. Maven导出资源问题

mybatis__第一个mybatis

标签:java   src   utils   tty   pack   catch   insert   mave   绑定   

原文地址:https://www.cnblogs.com/yuanlianyao/p/14671018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!