返回顶部
首页 > 资讯 > 后端开发 > Python >深入浅出JAVA MyBatis-快速入门
  • 439
分享到

深入浅出JAVA MyBatis-快速入门

2024-04-02 19:04:59 439人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录创建项目前的环境搭建简介特点(开始)创建Maven项目,导入依赖创建一个新的Maven项目(开始)在数据库中创建表创建表详细信息从 XML 中构建 sqlSessionFacto

创建项目前的环境搭建

本篇使用工具

1、jdk:jdk1.8

2、Mysql l数据库mysql-5.7.31-winx64

3、Maven 开发工具 :apache-maven-3.8.1

4、idea开发工具: IntelliJ IDEA 2020.1.3 x64

在这里我们使用 mybatis 开发一个简单的 Java 项目完成增删改查(默认你已安装JDK和MySQL及会使用Maven和IDEA的基本操作)

简介

什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

特点

1.简单易学本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2.灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

(1)提供映射标签,支持对象与数据库的ORM字段关系映射

(2)提供对象关系映射标签,支持对象关系组建维护

(3)提供xml标签,支持编写动态sql

(开始)创建Maven项目,导入依赖

创建一个新的Maven项目

第一步:

第一步

第二步:

第二步

第三步:

第三步

第四步

在这里插入图片描述

第五步

在这里插入图片描述

所需依赖

直接放到 pom.xml中即可


<dependencies>
        <!--junit:测试用的-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--    mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--    mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
    </dependencies>
    <build>
    <resources>
        <resource>
            <directory>src/main/java</directory><!--所在目录-->
            <includes><!--包括目录下的 .properties,.xml 文件都会扫描到-->
                <include>***.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
    </build>

(开始)在数据库中创建表

创建 users 表

表名 :users


userld :id
userName : 姓名
userWord : 密码
sex : 性别
email :邮箱 

创建表详细信息

在这里插入图片描述

添加几条假数据

在这里插入图片描述

创建实体类

包名

在这里插入图片描述

给实体类添加 有参,无参方法,get,set方法,toString方法


package com.guanshiang.pojo;
//实体类
public class Users {
    private Integer userId;
    private String userName;
    private String userword;
    private String sex;
    private String email;
    public Users() {
    }
    public Users(Integer userId, String userName, String userword, String sex, String email) {
        this.userId = userId;
        this.userName = userName;
        this.userword = userword;
        this.sex = sex;
        this.email = email;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserword() {
        return userword;
    }
    public void setUserword(String userword) {
        this.userword = userword;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Override
    public String toString() {
        return "Users{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", userword='" + userword + '\'' +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

创建对应的接口,以及映射,xml文件

接口:


package com.guanshiang.mapper;
import com.guanshiang.pojo.Users;
import java.util.List;
//接口 操作Users表
public interface UsersMapper {
    //增加一条
    int addUsers(Users users);
    //删除一条
    int deleteUsersById(int id);
    //修改一条
    int updateUsers(Users users);
    //查询Users表的所有数据
    List<Users> queryUsers();
    //查询Users一条
    Users queryUsersByid(int id);
}

映射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.guanshiang.mapper.UsersMapper">
<!--
    select : 表示查询操作
    id:你要执行的sql语法的唯一标识,mybatis会使用这个id的值来找到要执行的sql语句
        可以自定义,但是要求你使用接口中的方法名称。
      resultType : 表示结果类型的,是sql语句执行后得到ResultSet,遍历这个ResultSet得到java对象的类型   执行完sql语句后,返回的java对象的类型
                值写的类型是权限类名称
 -->
    <!--查询所有-->
    <select id="queryUsers" resultType="com.guanshiang.pojo.Users">
        select * from users
    </select>
</mapper>
<!--
    sql映射文件:写sql语句的,mybatis会执行这些sql
    1、指定约束文件
    <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
         mybatis-3-mapper.dtd是约束文件的名称,扩展名是dtd的。
     2、约束文件的作用:现在,检查在当前文件中出现的标签,属性必须符合mybatis的要求
     3、mapper 是当前文件的根标签,必须的。
        namepace:叫做命名空间,唯一值的,可以是自定义的字符串,
                要求你使用dao接口的全限定名称。
     4、在当前文件中,可以使用特定的标签,表示数据库的特定操作。
        <select>: 表示执行查询
        <update>:表示更新数据库的操作,就是在<update>中 写的是update sql语句
        <insert>:表示插入,放的是insert语句
        <delete>:表示删除,执行的delete语句
-->

从 XML 中构建 SqlSessionFactory

以下来自Mybatis官方文档

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。 SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文 件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符 串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含 一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

String resource = “org/mybatis/example/mybatis-config.xml”; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build (inputStream);

XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据 源(DataSource)以及决定事务作用域和控制方式的事务管理器 (TransactionManager)。后面会再探讨 XML 配置文件的详细内容,这里先给出一个 简单的示例:

创建XML配置文件

在这里插入图片描述

内容如下:

千万注意:下面连接数据库信息,要写你本地的信息。千万注意:下面连接数据库信息,要写你本地的信息。千万注意:下面连接数据库信息,要写你本地的信息。


<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0/EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--    环境配置:数据库的连接信息
        default:必须和某个environment的id值一样。
        告诉mybatis使用哪个数据库的连接信息,也就是访问哪个数据库
        因为可能会有多个environment,也就是会有多个表数据,配置不同的表用不同的id
-->
        <environments default="mydiv">
<!--       environment     一个数据库信息的配置,环境
        id:一个唯一值,自定义:表示环境的名称
-->
            <environment id="mydiv">
<!--
    transactionManager: mybatis的事物务型
        type:JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理)
-->
                <transactionManager type="JDBC"/>
<!--
        dataSource:表示数据源,连接数据库的
            type:表示数据源的类型,POOLED表示使用连接池
-->
                <dataSource type="POOLED">
<!--
    driver,user,username,password 是固定的,不能自定义。
-->
                    <!--数据库的驱动名-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <!--连接数据库的url字符串-->
                     <property name="url" value="jdbc:mysql://localhost:3306/guan"/>
<!--                    访问数据库的数据名称-->
                    <property name="username"   value="root"/>
<!--                    密码-->
                     <property name="password" value="guanshiang"/>
                </dataSource>
            </environment>
        </environments>
<!--    指定 sql mapper(sql映射文件)的位置-->
        <mappers>
<!--       一个1mapper标签指定一个文件的位置
            从类路径开始的路径信息。 target/clasess(类路径)
     -->
<!--            可出现多次mapper -->
            <mapper resource="com\guanshiang\dao\StudentDao.xml"/>
        </mappers>
</configuration>
<!--
    myvatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置。

    1、约束文件的说明
    <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0/EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        mybatis-3-config.dtd:约束文件名称
    2、configuration:根标签
-->

注意:看文件是否正确


    <mappers>
        <mapper resource="com\guanshiang\dao\StudentDao.xml"/>
    </mappers>

在测试类中测试

在test中创建 测试类 Test01


package com.guanshiang;
import com.guanshiang.pojo.Users;
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.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Test01 {
    @Test
    public void test() throws IOException {
        //访问mybatis 读取student数据
        //1、定义mybatis主配置文件的名称,从类路径的根开始(target/clasess)
        String config="mybatis.xml";
        //2、读取这个config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3、创建SqlSessionFactoryBuider对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4、创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5、【重要】获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6、【重要】指定要执行的sql语句的标识。sql映射文件中的namecapce + "." + 标签的id值
        String sqlId = "com.guanshiang.mapper.UsersMapper"+"."+"queryUsers";
        //7、执行sql语句,通过sqlId执行
        List<Users> users = sqlSession.selectList(sqlId);
        //8、输出
        for (Users u:users){
            System.out.println(u);
        }
        //9、关闭sqlSession对象
        sqlSession.close();
    }
}

运行结果:


Users{userId=2, userName='管世轩', userword='1234', sex='男', email='21@qq.com'}
Users{userId=3, userName='管世盎', userword='weqrwr', sex='男', email='2722696413@qq.com'}
Users{userId=4, userName='管世千', userword='guanshiang', sex='男', email='1234@qq.com'}
Users{userId=10, userName='花花', userword='123456', sex='女', email='2722696413@qq.com'}
Users{userId=11, userName='李博', userword='asdfasf', sex='男', email='2722696413@qq.com'}

总体目录

在这里插入图片描述

总结:

本次没有采用Mybatis工具类等。

如果想完成增删改查等,只需要

先写接口,在写对应的sql映射文件.xml

在测试类中测试即可,改变 6、7、8步骤即可

接口已在上面写好。

本篇就先完成一个查询。

备注:感谢前辈们提供的学习资源,
本片借鉴于 :MyBatis官网文档

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 深入浅出JAVA MyBatis-快速入门

本文链接: https://lsjlt.com/news/129257.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 深入浅出JAVA MyBatis-快速入门
    目录创建项目前的环境搭建简介特点(开始)创建Maven项目,导入依赖创建一个新的Maven项目(开始)在数据库中创建表创建表详细信息从 XML 中构建 SqlSessionFacto...
    99+
    2024-04-02
  • MyBatis入门学习教程-MyBatis快速入门
    目录Mybatis一、快速开始1、创建 Maven 项目3、配置 Maven 插件4、新建数据库,导入表格5、编写 Mybatis 配置文件6、编写实体类7、编写 mapper 接口...
    99+
    2024-04-02
  • 如何快速入门Mybatis
    这篇文章主要讲解了“如何快速入门Mybatis”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何快速入门Mybatis”吧!本文主要内容:传统JDBC传统JDBC编码格式public&nbs...
    99+
    2023-06-15
  • MyBatis-Ext快速入门实战
    最近在工作中,接触到了一个MyBatis扩展工具包MyBatis-Ext,可以说很大程度上减轻了使用mybatis时的工作量,本文就和大家来分享一下这个轻量的扩展工具。 MyBat...
    99+
    2024-04-02
  • Java的MyBatis快速入门和实战详解
    目录1.什么是MyBatis2. JDBC存在的缺点硬编码操作繁琐3.Mybatis简化JDBC开发4.MyBatis快速入门|实战项目详解1.什么是MyBatis 简单来说,My...
    99+
    2023-05-18
    MyBatis MyBatis 实战
  • Java深入浅出理解快速排序以及优化方式
    可能经常看面经的同学都知道,面试所遇到的排序算法,快速排序占主要位置,热度只增不减啊,其次就是归并和堆排序。 其实以前写过一篇排序的文章,写的比较简单,只是轻描淡写。今天我再次重新拿...
    99+
    2024-04-02
  • Java快速入门体验
    Java快速入门体验 一、环境信息1.1 硬件信息1.2 软件信息 二、Maven安装2.1 Maven介绍2.2 Maven安装包下载2.3 Maven安装2.4 Maven初始化 ...
    99+
    2023-09-01
    java 开发语言 大数据
  • SpringBoot MyBatis简单快速入门例子
    目录一、MyBatis简介二、MyBatis使用步骤一、MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除...
    99+
    2024-04-02
  • Fluent Mybatis快速入门详细教程
    使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。 不再需要在Dao中组装查询或更新...
    99+
    2024-04-02
  • 深入浅出Node.js Socket.io库:从入门到精通
    Node.js Socket.io是一个即时双向通信库,使开发人员能够构建基于WebSockets(双向并双全工通信协议)的实时应用程序。它支持多种传输技术,包括WebSockets、轮询和长轮询,并提供了一系列功能,可帮助开发人员轻松...
    99+
    2024-02-11
    Node.js Socket.io 实时通信 WebSockets 聊天室
  • 由浅入深快速掌握Java 数组的使用
    目录1.数组定义格式1.1 数组概述1.2 什么是数组1.3 数组的定义格式:2.数组初始化之动态初始化2.1 数组初始化概述2.2 数组初始化方法3.数组元素访问3.1 数组元素访...
    99+
    2024-04-02
  • 深入浅出MongoDB
                              ...
    99+
    2024-04-02
  • MyBatis-Plus简介和快速入门教程
    目录 一、MyBatis-Plus简介(来自官网)二、快速开始三、通用CRUD3.1 insert(插入操作)3.2 updateById(更新操作)3.3 查询操作——各...
    99+
    2024-04-02
  • MyBatis映射器mapper快速入门教程
    目录通用mapper简介通用mapper快速入门(文档)添加依赖和Spring集成XML 配置1.使用 MapperScannerConfigurer2.XML配置使用 Config...
    99+
    2024-04-02
  • 深入浅出 VUE 条件和循环:入门教程
    条件渲染 Vue.js 中的条件渲染使用 v-if 和 v-else 指令。这些指令允许开发者根据条件表达式显示或隐藏元素。 <div v-if="isVisible"> 我是可见的 </div> <di...
    99+
    2024-04-02
  • JDBC快速入门
    JDBC快速入门   详解 1.0DriverManager 功能1       功能2 2.0 connection对象   3.0 statement对象     4.0 ResultSet 遍历结果集的一个案例 ...
    99+
    2020-11-18
    JDBC快速入门
  • ClickHouse 快速入门
            ClickHouse 是什么ClickHouse 是一个开源的面向联机分析处理(OLAP, On-L...
    99+
    2024-04-02
  • mysqlsla快速入门
    1、什么是mysqlsla? 简单的说就是分析mysql log的工具,我主要是用他来分析下mysql slow log。 2、下载 http://hackmysql.com/mysqlsl...
    99+
    2024-04-02
  • python 快速入门
         导入 #from dir1 import test #import dir1.test as test 列表推到: b3 =[x for x in xing if x in ming] print(b3)  li ...
    99+
    2023-01-31
    入门 快速 python
  • Python3快速入门
    Python3快速入门Python3快速入门(一)——Python简介https://blog.51cto.com/9291927/2385592Python3快速入门(二)——Python3基础https://blog.51cto.com...
    99+
    2023-01-31
    入门 快速
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作