Mybatis【第一个 Mybatis 程序】

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Mybatis【第一个 Mybatis 程序】

一、Maven 环境配置

1、配置 pom.xml

1.1、依赖的 jar包

<dependencies>
    <!--   mysql8 驱动,与本地mysql版本需要一致   -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</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>

1.2、防止资源导出失败

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

2、在resources下编写 Mybatis核心配置文件

命名为mybatis-config.xml,作用是连接数据库

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//OTD Config 3.0//EN"
        "http://mybatis.org/schema/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=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="******"/>
                </dataSource>
            </environment>
        </environments>
<!-- 绑定映射配置文件 -->
    <mappers>
        <mapper resource="com/study/dao/UserMapper.xml"/>
    </mappers>
</configuration>

二、搭建结构

1、编写mybatis工具类(utils)

作用是获取SqlSession对象,相当于JDBC中的 Statement对象

package com.study.utils;
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;
public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //1.获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";//maven项目下路径这么写
            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、编写实体类(pojo)

实现所有 get和set 方法并重写 toString方法

package com.study.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 + '\'' +
                '}';
    }
}

3、Mybatis 的实现(dao层)

以添加用户为例

3.1、编写接口(UserMapper.java)

接口的实现在映射文件(UserMapper.xml)中实现

public interface UserMapper {
    int addUser(User user);
}

3.2、通过映射绑定并实现接口(UserMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//OTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.dao.UserMapper">
    <insert id="addUser" parameterType="com.study.pojo.User">
        insert into mybatis.user (id,name,pwd)
        values (#{id},#{name},#{pwd});
    </insert>
</mapper>

三、测试

1、搭建数据库

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

2、编写测试类

注意:增删改需要提交事务 , 查询语句不需要

Mybatis 操作数据库和 JDBC 比较相似但 Mybatis更加简单便捷!

@Test
    public void updateUser(){
        //1.获取数据库操作对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //2.获取接口
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //3.执行SQL语句
        User user = new User(1,"燕双鹰","123456");
        mapper.addUser(user);
        //4.提交事务
        sqlSession.commit();
        //5.关闭资源
        sqlSession.close();
    }

3、运行结果

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 关系型数据库
手把手搭建mybatis入门程序
手把手搭建mybatis入门程序
|
XML 存储 SQL
如何用IDEA创建第一个Mybatis程序
如何用IDEA创建第一个Mybatis程序
123 0
|
XML Java 关系型数据库
第一个Mybatis程序
第一个Mybatis程序
54 0
|
XML Java 测试技术
第一个MyBatis程序(下)
第一个MyBatis程序(下)
|
XML SQL Java
第一个MyBatis程序(上)
第一个MyBatis程序(上)
|
Java 关系型数据库 数据库连接
第一个Mybatis程序
思路:搭建环境--》导入Mybatis-->编写代码--》测试!
第一个Mybatis程序
|
SQL XML Java
第一个mybatis程序
第一个mybatis程序
284 0
|
XML Java 数据库连接
Mybatis学习笔记(1)——第一个程序
暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来。现在很有需求要会ssm,所以就学了一下。感觉框架这东西配置就烦的要死。错一丁点就全错。。下面开始说配置详情。
110 0
Mybatis学习笔记(1)——第一个程序
|
Java 关系型数据库 MySQL
MyBatis第一个入门程序
MyBatis第一个入门程序
MyBatis第一个入门程序