美文网首页Java
10 分钟 mybatis 用法入门

10 分钟 mybatis 用法入门

作者: jyjz2008 | 来源:发表于2018-09-24 21:07 被阅读33次

参考文章

  1. mybatis 入门
  2. mybatis XML 映射配置文件

最终的样子

注意: 红线标识的6个文件是真正需要的文件


image.png

前置条件

  1. 在本机用 MySQL 创建一个名为 study 的数据库
create database study;
  1. study 数据库中创建一个名为 Animal 的表
use study;

CREATE TABLE `Animal` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `name` varchar(45) NOT NULL COMMENT '名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='记录动物名称的表';

创建成功后,效果如下图


image.png
  1. 创建临时账号(名称为"naive")并授权
create user naive identified by 'this_is_a_passw0rd';
grant all on study.Animal to naive;

搭建骨架

  1. 在一个临时目录下执行名为 construct.sh 的脚本
    脚本的内容如下
#!/bin/bash

mkdir -p playground/src/main/java/com/naive/dao
mkdir -p playground/src/main/java/com/naive/entity
mkdir -p playground/src/main/resources/mapper
mkdir -p playground/src/main/resources/config

touch playground/src/main/java/com/naive/dao/AnimalDao.java
touch playground/src/main/java/com/naive/entity/Animal.java
touch playground/src/main/java/com/naive/Core.java
touch playground/src/main/resources/mapper/Animal.xml
touch playground/src/main/resources/config/mybatis-config.xml
touch playground/pom.xml

此时项目的结构如下图


image.png
  1. 填写 pom.xml
    会用到以下三个依赖

mybatis
mysql-connector-java
gson

完整的 pom 文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.naive</groupId>
    <artifactId>study</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.13</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
            </plugin>
        </plugins>
    </build>
</project>
  1. entity 包下的 java 文件

Animal.java 文件的内容如下

package com.naive.entity;

import com.google.gson.Gson;

public class Animal {
    private int id;
    private String name;

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

    @Override
    public String toString() {
        return new Gson().toJson(this);
    }
}
  1. dao 层

AnimalDao.java 文件的内容如下

package com.naive.dao;

import com.naive.entity.Animal;

import java.util.List;

public interface AnimalDao {
    List<Animal> loadAnimals();
    
    int insertOneAnimal(String name);
}
  1. Mapper
    playground/src/main/resources/mapper 路径下的 Animal.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">
<mapper namespace="com.naive.dao.AnimalDao">

    <resultMap id="Animal" type="com.naive.entity.Animal">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
    </resultMap>

    <select id="loadAnimals" resultMap="Animal">
        SELECT id, name FROM Animal;
    </select>

    <insert id="insertOneAnimal">
        INSERT INTO Animal (`name`) VALUES (#{name});
    </insert>

</mapper>

  1. mybatis 配置
    playground/src/main/resources/config 路径下的 mybatis-config.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>
    <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/study?characterEncoding=UTF8"/>
                <property name="username" value="naive"/>
                <property name="password" value="this_is_a_passw0rd"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/Animal.xml"/>
    </mappers>
</configuration>

  1. 主程序
    Core.java 的内容如下
package com.naive;

import com.naive.dao.AnimalDao;
import com.naive.entity.Animal;
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;
import java.util.List;

public class Core {
    public static void main(String[] args) throws IOException {
        String resource = "config/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        AnimalDao animalDao = sqlSession.getMapper(AnimalDao.class);
        animalDao.insertOneAnimal("东方苍龙");
        animalDao.insertOneAnimal("南方朱雀");
        animalDao.insertOneAnimal("西方白虎");
        animalDao.insertOneAnimal("北方玄武");
        sqlSession.commit();
        List<Animal> animalList = animalDao.loadAnimals();
        for (Animal animal : animalList) {
            System.out.println(animal);
        }
    }
}  

大功告成

main 函数运行结果如下


image.png

相关文章

  • 10 分钟 mybatis 用法入门

    参考文章 mybatis 入门 mybatis XML 映射配置文件 最终的样子 注意: 红线标识的6个文件是真正...

  • mybatis

    mybatis入门 mybatis原生用法 mybatis接口用法 1 namespace与接口全限定名一致 2 ...

  • mybatis笔记整理

    mybatis的基本用法及配置: 本文涉及知识点: 1、mybatis入门2、配置版CRUD3、关联查询(1:1&...

  • MyBatis

    MyBatis学习总结(一)——MyBatis快速入门 超详细MyBatis入门讲解

  • 一顿饭的时间看懂!Mybatis简介与环境搭建,超干货

    前言 Mybatis系列全解,我们预计准备10+篇文章,让我们了解到 Mybatis 的基本全貌,真正从入门到上手...

  • 深入浅出Mybatis-Mybatis-Generator

    目录 入门 Mybatis Generator 是什么 Mybatis Generator是Mybatis的代码生...

  • Mybatis的入门

    一.Mybatis介绍 二.Mybatis的架构 三.Mybatis入门程序开发 下载mybatis 导包核心+依...

  • Mybatis快速入门

    Mybatis 学习内容 Mybatis框架的简单入门 Mybatis框架基本的使用 Mybatis框架的深入和多...

  • MyBatis之快速入门

    title: MyBatis之快速入门tags: MyBatiscategories: MyBatis 若图片无法...

  • 1.Mybatis - 搭建

    参考 Mybatis 官方 MyBatis学习总结(一)——MyBatis快速入门 安装 说明基于Maven 步骤...

网友评论

    本文标题:10 分钟 mybatis 用法入门

    本文链接:https://www.haomeiwen.com/subject/yqicoftx.html