深入浅出JAVA MyBatis-快速入门

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

创建项目前的环境搭建

本篇使用工具:

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>**/*.properties</include>
                <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官网文档

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

(0)

相关推荐

  • Java持久层框架Mybatis入门详细教程

    mybatis介绍 mybatis它是轻量级持久层框架,由ibatis演化而来.它自动连接数据库,将数据库的结果集封装到对象中POJO. POJO: 一个简单的Java类,这个类没有实现/继承任何特殊的java接口或者类,不遵循任何主要java模型,约定或者框架的java对象.在理想情况下,POJO不应该有注解. JavaBean: JavaBean是可序列化的,实现了serializable接口 具有一个无参构造器 有按照命名规范的set和gett,is(可以用于访问布尔类型的属性)方法 My

  • Java Mybatis框架入门基础教程

    一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个

  • mybatis入门_动力节点Java学院整理

    本文为大家分享了mybatis入门学习资料,供大家参考,具体内容如下 所需要用到的其他工具或技术: 项目管理工具 : Maven 测试运行工具 : Junit 数据库 : Derby 废话不多说,直接代码 Maven Dependencies: <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <

  • JAVA MyBatis入门学习过程记录

    目录 一.Mybatis 1.mybatis-config.xml 2.Mapper.xml 3.db.properties 4.MybatisUtils工具类 5.多对一AND多对一: 6.使用注解开发 7.自定义缓存:ehcache 8.mybatis 其他工具 二.MAVEN资源导出错误解决 三.常用依赖导入 四.LOG4J 1.log4j.properties 配置文件 2.log4j 在mybatis-config.xml的配置 3.使用场景 好用的插件: 1.lombok 总结 一.

  • MyBatis快速入门之环境搭建和单表映射

    一.MyBatis简介 一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate.Hibernate作为一个著名的框架,功能十分强大.我们只需要配置好实体类和数据表之间的关系,Hibernate就会自动帮我们完成生成并执行SQL语句,映射结果集这样的工作.但是也正是由于Hibernate如此强大的功能,导致了它的缺点:一是非常笨重,启动Hibernate的SessionFactory非常耗时,开销巨大:二是配置复杂,学习成本较高,系统调优也不容易:三是自定义查询功能较弱,查询结果如果不

  • MyBatis入门学习教程(一)-MyBatis快速入门

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO) 首先给大家介绍MyBatis的含义

  • MyBatis快速入门(简明浅析易懂)

    一.MyBatis简介 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. JDBC -> dbutils(自动封装) -> MyBatis -> Hibernate mybatis是将sql写在xml中,然

  • mybatis快速入门学习教程新手注意问题小结

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • MyBatis入门学习教程-MyBatis快速入门

    目录 Mybatis 一.快速开始 1.创建 Maven 项目 2.导入 Maven 依赖 3.配置 Maven 插件 4.新建数据库,导入表格 5.编写 Mybatis 配置文件 6.编写实体类 7.编写 mapper 接口 8.编写 mapper 实现 9.Mybatis 配置文件中,添加 mapper 映射 10.编写 Mybatis 工具类 11.测试 二.日志添加 1.添加 Maven 依赖 2.添加 log4j 配置 3.Mybatis 中配置 LOG 4.执行测试 三.Mybati

  • Fluent Mybatis快速入门详细教程

    使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一. 不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数.喜欢的朋友可以阅读这篇文章   http://www.jb51.net/article/218884.htm 对底层数据表关联关系的处理,我们总是绕不开什么一对一,一对多,多对多这里比较烦人的关系. 业界优秀的ORM框架也都给出了自己的答案,简单来说就以下几种方式: hibe

  • java RocketMQ快速入门基础知识

    如何使用 1.引入 rocketmq-client <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.1.0-incubating</version> </dependency> 2.编写Producer DefaultMQProducer produce

  • MyBatis快速入门

    一.MyBatis背景介绍 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 二.MyBatis开发环境搭建 2.1准备开发环境 1.在eclipse中新建一个javaweb项目MyBatis_Study 2.添加相应的ja

  • 深入浅出JAVA MyBatis-快速入门

    目录 创建项目前的环境搭建 简介 特点 (开始)创建Maven项目,导入依赖 创建一个新的Maven项目 (开始)在数据库中创建表 创建表详细信息 从 XML 中构建 SqlSessionFactory 总结: 创建项目前的环境搭建 本篇使用工具: 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 在这里我们使

随机推荐