目录

  • 一、MyBatis的相关api
  • 1、代码
  • 2、Resources
  • 3、构建器SqlSessionFactoryBuilder
  • 4、工厂对象SqlSessionFactory
  • 5、SqlSession会话对象
  • 二、MyBatis映射配置文件
  • 1、映射配置文件介绍
  • 2、查询功能
  • 3、增加功能
  • 4、修改功能
  • 5、删除功能
  • 三、MyBatis核心配置文件
  • 1、核心配置文件介绍
  • 2、数据库连接配置文件引入
  • 3、别名使用


一、MyBatis的相关api

1、代码

public List<Student> selectAll() {
        List<Student> list = null;
        SqlSession sqlSession = null;
        InputStream is = null;
        try{
            //1.加载核心配置文件
            is = Resources.getResourceAsStream("MyBatisConfig.xml");

            //2.获取SqlSession工厂对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

            //3.通过工厂对象获取SqlSession对象
            sqlSession = sqlSessionFactory.openSession(true);

            //4.执行映射配置文件中的sql语句,并接收结果
            list = sqlSession.selectList("StudentMapper.selectAll");

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //5.释放资源
            if(sqlSession != null) {
                sqlSession.close();
            }
            if(is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        //6.返回结果
        return list;
    }

2、Resources

  • 加载资源的根据类
  • 核心方法:getResourceAsStream
  • 通过加载器返回指定资源的直接输出流(InputStream)

3、构建器SqlSessionFactoryBuilder

  • SqlSessionFactoryBuilder
  • SqlSessionFactoryBuilder().build(is);通过加载mybatis的核心文件的输入流构建SqlSessionFactory
String resource = "org/mybatis/builder/mybatis-config.xml"; 
InputStream inputStream = Resources.getResourceAsStream(resource); 
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); 
SqlSessionFactory factory = builder.build(inputStream);

4、工厂对象SqlSessionFactory

  • 获取 SqlSession 构建者对象的工厂接口。

5、SqlSession会话对象

  • 构建者对象接口。用于执行 SQL、管理事务、接口代理。

二、MyBatis映射配置文件

1、映射配置文件介绍

  映射配置文件包含了数据和对象之间的映射关系以及要执行的SQL语句。

  • < mapper > : 核心根标签
      namespace属性:名称空间
  • < select > : 查询功能标签
  • < insert > : 新增功能标签
  • < update > : 修改功能标签
  • < delete > : 删除功能标签
      id属性:唯一标识,配合名称空间使用
      parameterType:指定参数映射的对象类型
      resultType:指定结果映射的对象类型
  • SQL获取参数:使用#{属性名}获取参数
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- mapper:核心根标签 namespace属性:名称空间-->
<mapper namespace="StudentMapper">
    <!--
        select:查询功能的标签
        id属性:唯一标识
        resultType属性:指定结果映射对象类型
        parameterType属性:指定参数映射对象类型
    -->
    <select id="selectAll" resultType="student">
        SELECT * FROM student
    </select>

    <select id="selectById" resultType="student" parameterType="int">
        SELECT * FROM student WHERE sid = #{sid}
    </select>

    <insert id="insert" parameterType="student">
        INSERT INTO student VALUES (#{sid},#{name},#{age},#{birthday})
    </insert>

    <update id="update" parameterType="student">
        UPDATE student SET name = #{name},age = #{age},birthday=#{birthday} WHERE sid = #{sid}
    </update>

    <delete id="delete" parameterType="int">
        DELETE FROM student where sid=#{sid}
    </delete>
</mapper>

2、查询功能

  • id:唯一标识,配合名称空间使用
  • parameterType:指定参数映射的对象类型
  • resultType:指定结果映射的对象类型

3、增加功能

  • id:唯一标识,配合名称空间使用
  • parameterType:指定参数映射的对象类型
  • resultType:指定结果映射的对象类型

4、修改功能

  • id:唯一标识,配合名称空间使用
  • parameterType:指定参数映射的对象类型
  • resultType:指定结果映射的对象类型
  • SQL 获取参数: #{属性名}

5、删除功能

  • id:唯一标识,配合名称空间使用
  • parameterType:指定参数映射的对象类型
  • resultType:指定结果映射的对象类型
  • SQL 获取参数: #{属性名}

三、MyBatis核心配置文件

1、核心配置文件介绍

  核心配置文件包含了MyBatis最核心的设置和属性信息。如数据库的连接、事务、连接池信息等。

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!--configuration 核心根标签-->
<configuration>

    <!--引入数据库连接的配置文件-->
    <properties resource="jdbc.properties"/>

    <!--配置LOG4J-->
    <settings>
        <setting name="logImpl" value="log4j"/>
    </settings>

    <!--起别名-->
    <typeAliases>
        <typeAlias type="cn.study.bean.Student" alias="student"/>
    </typeAliases>

    <!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
    <environments default="mysql">
        <!--environment配置数据库环境  id属性唯一标识-->
        <environment id="mysql">
            <!-- transactionManager事务管理。  type属性,采用JDBC默认的事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!-- dataSource数据源信息   type属性 连接池-->
            <dataSource type="POOLED">
                <!-- property获取数据库连接的配置信息 -->
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>

    <!-- mappers引入映射配置文件 -->
    <mappers>
        <!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 -->
        <mapper resource="StudentMapper.xml"/>
    </mappers>
</configuration>

2、数据库连接配置文件引入

  核心配置文件中引入数据库连接配置文件。

<!--引入数据库连接的配置文件-->
    <properties resource="jdbc.properties"/>

  数据库连接配置文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.xx.xxx:3306/db14
username=root
password=123456

3、别名使用

  核心配置文件中引入别名,可以单独指定别名,也可以用package指定包,包里面的类名就是别名。

<!--起别名-->
    <typeAliases>
        <typeAlias type="com.itheima.bean.Student" alias="student"/>
        <!--<package name="com.itheima.bean"/>-->
    </typeAliase