Mybatis

一、Mybatis核心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>

    <!-- 引用db.properties配置文件 -->
    <properties resource="db.properties"/>

    <typeAliases>

        <!-- 单个别名定义 -->
        <typeAlias alias="user" type="包名.类名"/>

        <!-- 批量别名定义,别名为类名(首字母大写或小写都可以) -->
        <package name="其它包"/>

    </typeAliases>


    <settings>
        <!-- 开启延迟加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>



    <!--
        development : 开发模式
        work : 工作模式
     -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <!-- value属性值引用db.properties配置文件中配置的值 -->
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${name}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>

    <!-- 映射器 -->
    <mappers>

        <mapper resource="相对路径/xxx.xml"/>
        <mapper url="绝对路径/xxx.xml" />

        <!-- 类名与Mapper.xml文件名相同 -->
        <mapper class="包名.类名" />
        <package name="包名"/>

    </mappers>

</configuration>

二、MapperXML

<?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="包名.xml名">


    <resultMap id="id名" type="映射类型">

        <!-- 只需配置不同名字的即可 -->
        <id property="属性名" column="字段名"></id>
        <result property="属性名" column="字段名"></result>
        <result property="属性名" column="字段名"></result>

        <!-- 映射list -->
        <collection property="属性名" ofType="映射类型">

            <id property="属性名" column="字段名"></id>
            <result property="属性名" column="字段名"></result>

            <!-- 映射一个pojo对象 -->
            <association property="items" javaType="cn.itcast.mybatis.po.Items">
                <id property="属性名" column="字段名"></id>
                <result property="属性名" column="字段名"></result>
            </association>

        </collection>
    </resultMap>


    <resultMap id="id名" type="映射类型">

        <!-- 只需配置不同名字的即可 -->
        <id property="属性名" column="字段名"></id>
        <result property="属性名" column="字段名"></result>
        <result property="属性名" column="字段名"></result>

        <!-- 延迟加载 -->
        <association property="属性名" javaType="映射类型" column="字段名,作为select参数" select=”selectId值”>
            <id property="属性名" column="字段名"></id>
            <result property="属性名" column="字段名"></result>
        </association>

    </resultMap>

    <insert id="方法名" parameterType="参数类型">

        <!-- 获取自增长id -->
        <selectKey keyProperty="Po类对应属性名" order="AFTER" resultType="java.lang.Integer">
            select LAST_INSERT_ID()
        </selectKey>

        <!-- 获取uuid -->
        <selectKey keyProperty="Po类对应属性名" order="BEFORE" resultType="java.lang.String">
            select uuid()
        </selectKey>

        INSERT INTO stu (name, clazz, ages)  VALUE (#{name},#{clazz},#{age})
    </insert>


    <delete id="方法名" parameterType="参数类型">
        DELETE FROM stu WHERE id=#{id}
    </delete>

    <select id="方法名" parameterType="参数类型" resultMap="对应id值">
        SELECT * FROM stu 
        <foreach collection="[list/array/属性名]" item="item" open="开始字符串" separator="间隔字符串" close="结束字符串">
                #{item.id}
        </foreach>
    </select>


    <!-- sql片段 -->
    <sql id="sql01">
        <if test="name!=null and name!=''">
            name=#{name},
        </if>
        <if test="clazz!=null and clazz!=''">
            clazz=#{clazz},
        </if>
    </sql>



    <update id="方法名" parameterType="参数类型">

       UPDATE stu

       <!-- 去掉多余的',' -->
        <set>
            <!-- 引入sql片段 -->
            <include refid="[namespace/]对应id值"></include>
        </set>

        WHERE id=#{id}

    </update>

</mapper>

三、MybatisUtils

import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtils {

    private static SqlSessionFactory factory;

    //Mybatis核心XML路径
    private static String resource;

    static {
        try {

            //加载mybatis 的配置文件(它也加载关联的映射文件)
            InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream(resource);
            //构建sqlSession 的工厂
            factory=new SqlSessionFactoryBuilder().build(is);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static SqlSessionFactory getFactory(){
        return factory;
    }
}

四、相关jar包

  • mybatis-3.2.7.jar
  • mysql-connector-java-5.1.7-bin.jar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值