使用MyBatis框架对Mysql数据库进行操作

简述MyBatis(参考自:mybatis是什么_百度知道 (baidu.com)

  1. MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

  2. MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

  3. 每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

操作步骤

  1. 使用IDEA创建一个maven项目(有关maven项目简绍参考自:maven(一) maven到底是个啥玩意~ - 有梦想的老王 - 博客园 (cnblogs.com))如图便是maven项目,直接next就可以
  2. 添加相关依赖。配置pom.xml文件:
    <?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.southwind</groupId>
        <artifactId>MyBatisTest</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
        </properties>
        <!--导入依赖-->
        <dependencies>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.5</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.11</version>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.6</version>
                <scope>provided</scope>
            </dependency>
    
        </dependencies>
        <!-- build这里面就是让他能访问到java目录下面的.xml文件,参考自:https://blog.csdn.net/taiyangdao/article/details/52374125 -->
        <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
    
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>*.xml</include>
                        <include>*.properties</include>
                    </includes>
                </resource>
            </resources>
        </build>
    
    </project>
  3. 在数据库中新建一个表,建表代码:(mysql是关系型数据库)
    CREATE DATABASE mybatis CHARACTER SET utf8 COLLATE utf8_general_ci;
    USE mybatis;
    CREATE TABLE `t_account`(
    	id INT PRIMARY KEY AUTO_INCREMENT,
    	username VARCHAR(11),
    	`password` VARCHAR(11),
    	age INT
    )ENGINE=INNODB DEFAULT CHARSET=utf8;

    (有关mysql学习:【狂神说Java】MySQL最新教程通俗易懂_哔哩哔哩_bilibili

  4. 新建实体类Account。包结构:具体提代码:(最好成员变量顺序和数据库创建表格时候相对应)

    package com.southwind.entity;
    
    import lombok.AllArgsConstructor;
    import lombok.NoArgsConstructor;
    import lombok.Data;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Account {
        private long id;
        private String username;
        private String password;
        private int age;
    }
    
  5. 创建MaBatis的配置文件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>
    
        <!-- 配置mybatis的运行环境-->
        <environments default="development">
            <environment id="development">
                <!-- 配置JDBC事务管理 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- pooled配置JDBC数据源连接池  -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver" ></property>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"></property>
                    <property name="username" value="root"></property>
                    <property name="password" value="123456"></property>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 注册AccountMapper.xml,后面要写Mapper文件后加的 -->
        <mappers>
            <mapper resource="com/southwind/mapper/AccountMapper.xml"></mapper>
        </mappers>
    
    </configuration>
  6. 编写Mapper.xml文件。( 使用原生接口。MyBatis框架需要开发者自定义SQL语句,写在Mapper.xml中,实际开发中会为每个实体类创建对应的Mapper.xml,定义管理该对象数据的SQL),包结构具体代码
    <?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.southwind.mapper.AccountMapper">
        <insert id="save" parameterType="com.southwind.entity.Account">
            insert into t_account(username,password,age) values(#{username},#{password},#{age})
        </insert>
    </mapper>

    namespace 通常设置为文件所在包+文件名形式;insert 标签表示执行添加操作;select 标签表示执行查询操作;upadate 标签表示执行更新操作;delete 标签表示执行删除操作;id 是实际调用MyBatis方法时所需要的参数;parameterType 是调用方法时候参数的数据类型

  7. 调用MaBatis原生接口来执行添加操作(创建测试类,下面是包结构)代码:
    package com.southwind.test;
    
    import com.southwind.entity.Account;
    import org.apache.ibatis.session.*;
    import java.io.*;
    
    public class Test {
        public static void main(String []args){
            //加载mybatis配置文件
            InputStream inputStream = Test.class.getClassLoader().getResourceAsStream("config.xml");
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            SqlSessionFactory  sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
            SqlSession sqlSession  = sqlSessionFactory.openSession();
            String statement = "com.southwind.mapper.AccountMapper.save";
            Account account = new Account(1l,"张三","1231231",22);
            sqlSession.insert(statement,account);
            sqlSession.commit();
        }
    }
    
  8. 测试类编写之后,运行就可以看到数据库添加成功,如图

遇到问题以及一些解决办法

  1. 出现大面积报红,但是相关依赖都以及显示导入,那可能是没有加载并且下载相关依赖通过刷新依赖就可以自动下载
  2. 没有报红,但是运行出现问题,那就要注意检查""里面的代码是否错误,因为这里面错误,不会有提示。同时也可以通过提示快速定位

学习MyBatis资源(【极简入门】4小时学会MyBatis_哔哩哔哩_bilibili

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值