MyBatis简介

MyBatis 是一款优良的长久层框架,它反对定制化 SQL、存储过程以及高级映射。MyBatis 防止了简直所有的 JDBC 代码和手动设置参数以及获取后果集。MyBatis 能够应用简略的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,一般的 Java对象)映射成数据库中的记录。(来源于百度百科)

简略的说就是MyBatis代替原生JDBC的写法,缩小了代码的冗余以及连贯的性能问题,使得咱们用起来更加简略,运行起来也更快。(具体是为什么有代码的冗余以及连贯性能的问题,能够看我其余的文章,有写过对这一部分的粗略的封装步骤)

应用的环境

JDK版本:1.8
编译器:Intelli IDEA 2019
MyBatis版本:3.5.3

MyBatis的下载与配置

  1. 下载jar包
    1)关上 https://mybatis.org/mybatis-3/
    2)点击project's Git

    3)跳转到该项目标根门路

    4)拖到网页最上面,点击download Lastest

    5)找到绝对应的版本,点击Assert下的mybatis.zip(我下载的是mybatis3.5.3)
  2. Jar包下载实现之后
    1)创立一个Java我的项目
    2)在我的项目的根门路下创立一个lib文件夹,把mybatis的jar放入
    3)点击File-->project structure-->Libraries-->+号

    4)找到并选中以后我的项目的lib文件夹下的jar包,点击apply--->OK,jar导入实现
    5)除了导入mybatisjar,还要导入jdbc的jar包(导入步骤雷同,jar包的话得本人去下载)
    6)创立一个User类,这个类是对应数据库中的User表,代码如下:(大家依据本人理论的数据库中的表去建设这个实体类)

    package domain;public class User {    private String account;    private String password;    private Float balance;    public User(){}    public User(String account, String password, Float balance) {        this.account = account;        this.password = password;        this.balance = balance;    }    public String getAccount() {        return account;    }    public void setAccount(String account) {        this.account = account;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Float getBalance() {        return balance;    }    public void setBalance(Float balance) {        this.balance = balance;    }}

    7)创立一个UserDao类,这个类是对User表进行增删改查的操作,这里咱们测试insert的SQL语句,代码如下

    package dao;import domain.User;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;public class UserDao {    public void insert(User user){        //MYBATIS操作流程        //获取工厂Builder对象        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();        //获取configuration.xml配置文件的输出流        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("configuration.xml");        //builder依据is获取SqlSessionFactory工厂对象        SqlSessionFactory factory = builder.build(is);        //获取SqlSession对象        SqlSession sqlSession = factory.openSession();        //执行sql语句操作        //这个"insert"与UserMapper.xml中的insert标签的id属性统一,user是咱们要插入的数据        sqlSession.insert("insert", user);        //SqlSession对象默认是手动提交事物,所以得调用commit()办法提交,否则插入不算胜利        //如果想改为主动提交的话,在调用openSession()办法中传入true参数        sqlSession.commit();    }}

    8)在src目录下创立一个configuration.xml文件,并在该文件中应用如下代码

    *  transactionManager示意的是数据库连贯治理的形式,这里咱们用的JDBC*  dataSource示意的是是否须要用到连接池*  property示意的连贯数据库要用到的一些参数    *  driver示意数据库驱动包,我这里用的8.0版本jdbc    *  url示意的是数据库的地址    *  username是拜访数据库时用到的用户名    *  password是明码*  mapper标签示意的是与寄存sql语句的mapper.xml文件的映射关系,rsource属性示意mapper.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>    <environments default="e1">        <environment id="e1">            <transactionManager type="JDBC"></transactionManager>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://localhost:3306/bank?serverTimezone=CST"/>                <property name="username" value="root"/>                <property name="password" value="123456"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="mapper/UserMapper.xml">       </mapper>    </mappers></configuration>
9)在src目录下创立一个mapper文件夹,在文件夹下创立一个UserMapper.xml文件,文件内容如下:    *  该文件是为了存储UserDao类中执行时须要用到的所有Sql语句    *  这里用了insert语句标签    *  之前咱们用原生的jdbc对数据库进行增删改查的时候,对于参数咱们用的是?来示意,这里咱们须要用#{}来代替,并且#{}两头寄存的数据对应的名字,这个名字须要和User实体类的属性名统一```<?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="dao.UserDao">    <insert id="insert">        INSERT ATM VALUES(#{account}, #{password}, #{balance})    </insert></mapper>```10)在Main函数里写入如下代码并执行```import dao.UserDao;import domain.User;import service.UserService;public class TestMain {    public static void main(String[] args) {        UserDao dao = new UserDao();        dao.insert(new User("1012","123",12f));    }}```

执行完之后应该是可能在数据库中查找到插入的数据,如果有什么不明确的中央或者哪个中央有谬误,也欢送大家私信我,这里只是演示一下大略的流程,之后还会写一些更为具体的应用的文章!!!