1. 开发环境

  • IDE:IDEA

  • 构建工具:maven4.0.0

  • MySQL版本:8.0.11、

    记得创建好数据库

  • Mybatis版本:3.5.7

MySQL不同版本的注意事项

  1. 驱动类driver-class-name

    • MySQL 5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.Driver

    • MySQL 8版本使用jdbc8驱动,驱动类使用:com.mysql.cj.jdbc.Driver

  2. 连接地址url(下面url中ssm是我的数据库名,记得更改)

    • MySQL 5版本的url:jdbc:mysql://localhost:3306/ssm

    • MySQL 8版本的url:jdbc:mysql://localhost:3306/ssm?useSSL=false

      useSSL=false:不使用安全连接方式。我是不加的话会报错,看情况加了

    注意:localhost也可以换成自己数据库IP地址,像120.77.92.117

2. 创建maven工程

可以先跳到总结看看整个项目目录和代码的执行过程,先大概了解每个文件。

以下代码都写在配置文件pom.xml中。

  1. 打包方式:jar

    <packaging>jar</packaging> <!--打包方式:jar包-->
  2. 引入依赖

    <dependencies>
    <!--mybatis 依赖-->
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.10</version>
    </dependency> <!--mysql 驱动-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
    </dependency> <!--junit 单元测试-->
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.1</version>
    <scope>test</scope>
    </dependency>
    </dependencies>

3.创建实体类:

数据库t_user表字段:

User类中的属性与数据库中对应,记得写上构造方法与get、set方法。

4. 创建Mybatis的核心配置文件

  • 习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。

  • 核心配置文件存放的位置是src/main/resources目录下

  • 核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息

那么mybatis-config.xml要怎么写呢?? 官网给了我们一个简单示例。

这是我的配置代码:

5. 创建mapper接口

接口起名规则:实体类的类名+Mapper

6. 创建Mybatis的映射文件

MyBatis映射文件用于编写SQL,访问以及操作表中的数据

相关概念:ORM(Object Relationship Mapping)对象关系映射。

  • 对象:Java的实体类对象

  • 关系:关系型数据库

  • 映射:二者之间的对应关系

  1. 映射文件的命名规则:

    表所对应的实体类的类名+Mapper.xml。一般与mapper接口同名

    例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml

  2. 因此一个映射文件对应一个实体类,对应一张表的操作

  3. MyBatis映射文件存放的位置是src/main/resources/mappers目录下

  4. MyBatis中可以面向接口操作数据,要保证两个一致:

  • mapper接口的全类名和映射文件的命名空间(namespace)保持一致

  • mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

不太理解两个一致的,没关系,后面总结时再具体解释说明一下

<?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.atguigu.mybatis.mapper.UserMapper">
<insert id="insertUser">
insert into t_user values(null,'admin','123456',23,'男','12345@qq.com')
</insert>
</mapper>

不要忘了,我们前面在配置核心时mybatis-config.xml没有引入Mybatis映射文件。现在我们已经创建了映射文件,所以要补充上

7.运行结果


8. 总结

使用Mybatis实现简单的数据库插入操作,我们要编写的只有这6个文件:

我们看看插入操作时,代码执行的主要过程是什么样的:

还记得映射文件中两个一致吗??

  • mapper接口的全类名和映射文件的命名空间(namespace)保持一致

  • mapper接口中方法的方法名和映射文件中编写sql的标签的id属性保持一致

看到执行过程后,应该明白了吧。

部分内容来自 B站尚硅谷课程 。老师讲得很好,有兴趣的可以听听。

Mybatis简单入门--插入数据的更多相关文章

  1. mybatis foreach批量插入数据:Oracle与MySQL区别

    mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...

  2. mybatis简单入门介绍

    mybatis入门 简介 什么是mybatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及 ...

  3. myBatis获取批量插入数据的主键id

    在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...

  4. MyBatis中批量插入数据对插入记录数的限制

    <基于Mybatis框架的批量数据插入的性能问题的探讨>(作者:魏静敏 刘欢杰 来源:<计算机光盘软件与应用> 2013 年第 19 期)中提到批量插入的记录数不能超过1000 ...

  5. mybatis+Oracle 批量插入数据,有数据做更新操作

    <!-- 批量添加 -->     <insert id="batchAdd" parameterType="java.util.List"& ...

  6. Mybatis简单入门

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  7. mybatis向数据库插入数据 (传入的是一个实体类)

    /** * 插入用户信息 user为实体类 * @param user */ public int insert( User user); //实体类不用@param标注 //mybatis的xml文 ...

  8. MyBatis 简单入门

    添加maven 依赖 <dependencies> <dependency> <groupId>org.mybatis</groupId> <ar ...

  9. Java通过Mybatis实现批量插入数据到Oracle中

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

随机推荐

  1. 大功率超远距离lora无线数传电台,多级中继功能

    一.在无线通信领域,LoRa是目前市场最被看好的技术之一.随着新一代LoRa调制技术的升级,市场对LoRa技术的认知.认可逐步提高,基于LoRa调制技术开发的产品得到更广泛的应用.受益于其超低的接收灵 ...

  2. python 基础知识-day6(内置函数)

    1.sorted():用于字典的排序 dict1={"name":"cch","age":"3","sex&q ...

  3. jenkins配置自动执行sql脚本

    shell脚本: bigsql="select big_version,small_version from d0mstore.db_current_version order by big ...

  4. 几百行代码实现一个 JSON 解析器

    前言 之前在写 gscript时我就在想有没有利用编译原理实现一个更实际工具?毕竟真写一个语言的难度不低,并且也很难真的应用起来. 一次无意间看到有人提起 JSON 解析器,这类工具充斥着我们的日常开 ...

  5. StringJoiner的使用

    1.添加字符串 add()方法 StringJoiner sj = new StringJoiner(","); sj.add("我爱你"); sj.add(& ...

  6. 理解 Python 的 for 循环

    在本篇博客中,我们将讨论 Python 中 for 循环的原理. 我们将从一组基本例子和它的语法开始,还将讨论与 for 循环关联的 else 代码块的用处. 然后我们将介绍迭代对象.迭代器和迭代器协 ...

  7. Java模拟西宝高速公路

    @ 目录 写在前面 一.仿真模拟的具体要求 二.类的设计 2.1 抽象父类PubVehicles 2.2 Expressway类 2.3 Passenger类 2.4 Timer类 2.5 Displ ...

  8. labview从入门到出家2--将“加法程序”制作成“exe应用程序”

    1.上一章主要讲了如何跑我们的第一个加法程序(这里向第一个程序的鼻祖"hello world"致敬),这一章我们直接进入主题,将我们写的程序生成exe文件放桌面运行. 2.要生成e ...

  9. 这么强?!Erda MySQL Migrator:持续集成的数据库版本控制

    为什么要进行数据库版本控制? 现代软件工程逐渐向持续集成.持续交付演进,软件一次性交付了事的场景逐渐无法满足复杂多变的业务需求,"如何高效地进行软件版本控制"成为我们面临的挑战.同 ...

  10. 降低PDF质量

    如果PDF尺寸过大,则需要降低其质量以缩小尺寸.在Linux下一条命令即可实现,而且效果不错: gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFS ...