mybatis学习经验分享

第一部分:主配置文件:
 

<?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>
    <!-- 设置别名 -->
    <typeAliases>
        <!-- 给实体类去一个别名,叫做 employee -->
        <typeAlias type="com.dl.mybatis.entity.Employee" alias="employee"/>
    </typeAliases>
    <!-- 数据库连接的配置 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/java2010?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
    <!-- 引入映射的配置文件 -->
    <mappers>
        <mapper resource="com/dl/mybatis/mapper/EmployeeMapper.xml"/>
    </mappers>
</configuration>

第二部分:映射的配置文件。

<?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.dl.mybatis.dao.EmployeeDao">
    <!-- 方法一:插入的新数据的时候,并获取插入的ID 只适用于 MySQL -->
   <insert id="addEmployee" parameterType="employee" useGeneratedKeys="true" keyProperty="id">
        insert into employee(name,gender,age,phone) values (#{name},#{gender},#{age},#{phone})
   </insert>

    <!-- 方法二:插入的新数据的时候,并获取插入的ID MySQL和orcale 都可用 -->
    <insert id="addEmployee2" parameterType="employee">
         insert into employee(name,gender,age,phone) values (#{name},#{gender},#{age},#{phone})
         <selectKey order="AFTER" keyProperty="id" resultType="int">
             select last_insert_id()
         </selectKey>
    </insert>

    <!-- mybatis if 语句的使用 -->
    <insert id="addEmployee3" parameterType="employee">
        insert into employee(
        <trim suffixOverrides=",">
            <if test="name != null">
                name,
            </if>
            <if test="gender != null">
                gender,
            </if>
            <if test="age != null">
                age,
            </if>
            <if test="phone != null">
                phone,
            </if>
        </trim>
        ) values(
            <trim suffixOverrides=",">
                <if test="name != null">
                    #{name},
                </if>
                <if test="gender != null">
                    #{gender},
                </if>
                <if test="age != null">
                    #{age},
                </if>
                <if test="phone != null">
                    #{phone},
                </if>
            </trim>
        )
    </insert>

    <update id="updateEmployee" parameterType="employee">
        update employee set name = #{name},age = #{age},phone=#{phone} where id = #{id}
    </update>

    <!-- mybatis foreach 用法介绍 参数是一个list集合的时候的用法 -->
    <delete id="deleteEmployee" parameterType="list">
        delete from employee where id in
        <foreach collection="list" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>
    
    <!-- mybatis foreach 用法介绍,参数是一个数组 -->
    <delete id="deleteEmployee2" parameterType="map">
        delete from employee where id in 
        <foreach collection="array" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>


    <!-- mybatis set 方法的介绍 -->
    <update id="updateEmployee2" parameterType="employee">
        update employee
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="gender != null">
                gender = #{gender},
            </if>
            <if test="age != null">
                age = #{age},
            </if>
            <if test="phone != null">
                phone = #{phone}
            </if>
        </set>
            where id = #{id}
    </update>

</mapper>

第三部分:执行方法介绍

package com.dl.mybatis.test;

import com.dl.mybatis.dao.EmployeeDao;
import com.dl.mybatis.entity.Employee;
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 java.io.IOException;
import java.io.InputStream;

/**
 * \* Created with IntelliJ IDEA.
 * \* @author: DL代先生
 * \* Date: 2021/1/25
 * \* Time: 17:19
 * \* WeChat: D19121630l
 * \* Company: DL19121630工作室
 * \* Description: 原创代码,如需代写,微信联系!
 * \
 */
public class Demo1 {
    public static void main(String[] args) {
        try {
            //第一步:读取配置文件
            InputStream resource = Resources.getResourceAsStream("mybatis.xml");
            //第二步:创建SqlSessionFactory对象
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resource);
            //第三步:创建SqlSession对象
            SqlSession sqlSession = factory.openSession();
            //第四步:创建DAO的代理对象
            EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
            //第五步:用代理对象执行对应的方法
            mapper.addEmployee(new Employee("代先生","男",20,"13682304539"));
            //第六步:提交
            sqlSession.commit();
            //第七步:关闭SqlSession对象
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


 

猜你喜欢

转载自blog.csdn.net/weixin_45634682/article/details/113132977