MyBatis之旅:从零开始的环境搭建与配置

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MyBatis之旅:从零开始的环境搭建与配置


软件以及环境

环境搭建基于的环境:JDK 1.8IDEA 2023.1Maven 3.6.3MySQL 5.7MyBatis 3.4.6

引入依赖

首先使用 IDEA 创建 Maven 项目,然后引入以下依赖:

<dependencies>
    <!--引入 Mybatis-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <!-- 引入 MySQL -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
    <!-- 引入测试 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

创建数据库以及实体

创建账户表 account。

-- ----------------------------
-- Table structure for account
-- ----------------------------
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(255) DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) DEFAULT NULL COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS = 1;

创建对应的 Java 实体。

package world.xuewei.mybatis.entity;
import java.io.Serializable;
/**
 * 账户实体
 *
 * @author 薛伟
 */
public class Account implements Serializable {
    private Integer id;
    private String name;
    private String password;
    public Account() {
    }
    public Account(Integer id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "Account{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}';
    }
}

创建 Dao 以及 Mapper 文件

package world.xuewei.mybatis.dao;
import org.apache.ibatis.annotations.Mapper;
import world.xuewei.mybatis.entity.Account;
import java.util.List;
/**
 * 账户数据库访问
 *
 * @author 薛伟
 */
@Mapper
public interface AccountDao {
    /**
     * 插入数据
     */
    void insert(Account account);
    /**
     * 查询全部
     */
    List<Account> getAll();
}

在 resources 目录下创建 mappers 文件夹,在此文件夹下创建文件 AccountMapper.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 -->
<mapper namespace="world.xuewei.mybatis.dao.AccountDao">
    <insert id="insert" parameterType="Account">
        insert into account(name, password)
        values (#{name}, #{password})
    </insert>
    <select id="getAll" resultType="Account">
        select *
        from account;
    </select>
</mapper>

配置文件

在 resources 目录下创建 mybatis 配置文件,名为: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>
    <typeAliases>
        <typeAlias type="world.xuewei.mybatis.entity.Account" alias="Account"/>
    </typeAliases>
    <environments default="default">
        <environment id="default">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://**.**.*.*/learn?useSSL=false&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="******"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mappers/AccountMapper.xml"/>
    </mappers>
</configuration>

基于Dao的数据库操作

package world.xuewei;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import world.xuewei.mybatis.dao.AccountDao;
import world.xuewei.mybatis.entity.Account;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * @author 薛伟
 */
public class DaoTest {
    private SqlSession sqlSession;
    /**
     * 加载配置文件,创建 SqlSession
     */
    @Before
    public void before() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sessionFactory.openSession();
    }
    /**
     * 提交 Session
     */
    @After
    public void after() {
        sqlSession.commit();
    }
    /**
     * 测试插入
     */
    @Test
    public void testInsert() {
        AccountDao accountDao = sqlSession.getMapper(AccountDao.class);
        accountDao.insert(new Account(null, "张三", "123456"));
    }
    /**
     * 测试获取全部
     */
    @Test
    public void testGetAll() {
        AccountDao accountDao = sqlSession.getMapper(AccountDao.class);
        accountDao.getAll().forEach(System.out::println);
    }
}

基于SqlSession API 的数据库操作

package world.xuewei;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import world.xuewei.mybatis.dao.AccountDao;
import world.xuewei.mybatis.entity.Account;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * @author 薛伟
 */
public class DaoTest {
    private SqlSession sqlSession;
    /**
     * 加载配置文件,创建 SqlSession
     */
    @Before
    public void before() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sessionFactory.openSession();
    }
    /**
     * 提交 Session
     */
    @After
    public void after() {
        sqlSession.commit();
    }
    /**
     * 测试插入
     */
    @Test
    public void testInsert() {
        int inserted = sqlSession.insert("world.xuewei.mybatis.dao.AccountDao.insert", new Account(null, "李四", "123456"));
        System.out.println(inserted);
    }
    /**
     * 测试获取全部
     */
    @Test
    public void testGetAll() {
        List<Account> accounts = sqlSession.selectList("world.xuewei.mybatis.dao.AccountDao.getAll");
        for (Account account : accounts) {
            System.out.println(account);
        }
    }
}



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
XML Java 数据库连接
mybatis环境搭建步骤(含配置文件代码)
mybatis环境搭建步骤(含配置文件代码)
15 1
|
2月前
|
SQL Java 数据库连接
springboot中配置mybatis别名该怎么写?
springboot中配置mybatis别名该怎么写?
40 0
|
2月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
45 1
|
4天前
|
SQL Java 数据库连接
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
|
2月前
|
XML SQL Java
mybatis的一对多,多对一,以及多对对的配置和使用
mybatis的一对多,多对一,以及多对对的配置和使用
16 2
|
2月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
15 1
|
2月前
|
SQL Java 数据库连接
mybatis关联配置(一对多配置)
mybatis关联配置(一对多配置)
13 1
|
3月前
|
XML Java 数据库连接
MyBatis入门配置
【2月更文挑战第9天】
MyBatis入门配置
|
2月前
|
druid Java 数据库连接
Spring Boot3整合MyBatis Plus
Spring Boot3整合MyBatis Plus
46 1