mybatis 第一个程序

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

2.1 创建项目

  • 导入依赖

    <!--导入依赖-->
    <dependencies>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>
    
        <!--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>
    
  • 搭建数据库

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
);

insert into `user`(id, name, pwd) values
(1, '小费', '123456'),
(2, '小尤', '542103'),
(3, '小白', '888521')

2.2 创建一个模块

  • 编写 mybatis 的核心配置文件

    <?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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper resource="com/alivin/dao/UserMapper.xml"/>
        </mappers>
    </configuration>
    
  • 编写 mybatis 工具类

    public class MybatisUtils {
    
        private static SqlSessionFactory sqlSessionFactory;
    
        static {
            try {
                // 1. 加载资源
                String resource = "mybatis-config.xml";
                // 2. 获取输入流
                InputStream inputStream = Resources.getResourceAsStream(resource);
                // 3. 使用 mybatis 获取 sqlSessionFactory 对象
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        // 有了 SqlSessionFactory,就可以从中获得 SqlSession 的实例
        // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法
        public static SqlSession getSqlSession() {
            return sqlSessionFactory.openSession();
        }
    
    }
    
    
  • 编写代码

    • 实体类

      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 +
                      ", uname='" + uname + '\'' +
                      ", pwd='" + pwd + '\'' +
                      '}';
          }
      }
      
      
    • Dao 接口

      public interface UserDao {
          List<User> getUserList();
      }
      
    • 接口实现类由原来的 UserDaoImpl 转变成一个 Mapper 配置文件

      <?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.alivin.dao.UserDao">
          <!--select 查询语句-->
          <select id="getUserList" resultType="com.alivin.pojo.User">
              select * from mybatis.user
          </select>
      </mapper>
      

2.4 测试

junit 测试

@Test
public void test() {
    // 获得 SqlSession 对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    // 执行 SQL
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    List<User> userList = userMapper.getUserList();

    for (User user : userList) {
        System.out.println(user);
    }

    sqlSession.close();
}
posted @ 2021-06-02 16:27  -费费  阅读(32)  评论(0编辑  收藏  举报