当前位置 博文首页 > Mybatis入门

    Mybatis入门

    作者:再小帆船也能远航 时间:2021-01-16 20:04

    今天我们来看看ssm框架中的mybatis。

    Mybatis定义

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 简单来说就是操作数据库进行CRUD的操作,简化了JBDC代码

    1.Mybatis的核心配置文件

     

    perproties

     

    <properties resource="db.properties" >

    </properties>

    可以连接外部的资源文件,也可以在property中配置属性

    setting

    <settings>
    <!--设置开启日志输出-->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    用来设置一些配置 比如日志,驼峰命名规则

    typeAliases

    <!--可以给实体类设置别名,在程序中只需要写别名就好-->
    <typeAliases>
    <typeAlias type="com.zhang.pojo.User" alias="User"/>
    </typeAliases>

    environments

    <!--环境配置-->
    <environments default="development">
    <environment >
    <transactionManager type="JDBC"/>
    <dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    </dataSource>
    </environment>
    </environments>
    表明我们连接的事务管理JDBC,下面的属性property来自我们的perproties中连接的db.properties配置文件

    mappers

    <!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册!-->
    <mappers>
    <mapper />
    </mappers>

    2.Mapper.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.zhang.Dao.UserMapper">
    <!--select查询语句-->
    <select resultType="User">
    select * from mybatis.mybatis
    </select>
    </mapper>

    <!--namespace(命名空间) = 绑定一个对应的Dao/Mapper接口  需要写全限定名-->
    <!--id用来绑定接口中的方法名称-->
    <!--resultType:返回值类型-->
    中间就是sql语句

    3.sqlSessionFactory & sqlSession

    //sqlSessionFactory  -->  sqlSession
    public class MybatisUtil{
    private static SqlSessionFactory sqlSessionFactory;
    static {
    try {
    //使用mybatis的第一步,获取到sqlSessionFactory对象
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
    // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
    // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
    public static SqlSession getSqlSession(){
    return sqlSessionFactory.openSession();
    }
    }

    这是我们的一个工具类用来生产可以执行SQL的sqlSession
    1.通过Resources.getResourceAsStream(resource)将mybatis的核心配置文件读进来
    2.SqlSessionFactoryBuilder().build(inputStream)生产出sqlSessionFactory
    3.通过sqlSessionfactory的openSession()得到可以执行sql的sqlSession