第一部分:主配置文件:
<?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();
}
}
}