mybatis源码阅读之2:mybatis执行流程

本文详细介绍了MyBatis框架的基本使用流程,包括如何获取sqlSessionFactory和SqlSession对象,以及如何通过SqlSession获取Mapper的代理对象进行数据库操作。同时,文章还提供了具体的代码示例,帮助读者快速掌握MyBatis的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇  框架概述

下一篇 mybatis配置文件详解

 

1.获取sqlSessionFactory对象

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

 配置文件mybatis-config.xml的各项配置,后续章节会单独讲解。

2.获取SqlSession对象

SqlSession session = sqlSessionFactory().openSession(true);

SqlSession openSession(boolean autoCommit):true表示自动提交 

SqlSession代表和数据库的一次会话,用完必须关闭。

同样,sqlsession和connecttion一样,都是线程不安全的,每次使用,都要去获取。

3.获取接口的代理对象MapperProxy

1.首先自定义个Mapper接口

public interface StudentMapper {

	public int addStudent(Student s);

	public int updateStudent(Student s);

	public int deleteById(Long id);

	public Student findOneById(Long id);

	public Student findAll();

}

2.定义mapper接口对用的sql.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.licw.lean.mybatis_anayl.StudentMapper">

	<insert id="addStudent" parameterType="com.licw.lean.mybatis_anayl.Student">
		INSERT INTO studentTab
		(name,age) VALUES (#{name},#{age})
	</insert>

	<update id="updateStudent" parameterType="com.licw.lean.mybatis_anayl.Student">
		UPDATE studentTab SET
		name =#{name},age=#{age} WHERE id=#{id}
	</update>

	<delete id="deleteById" parameterType="java.lang.Long">
		DELETE FROM studentTab
		WHERE id =#{id}
	</delete>

	<select id="findOneById" parameterType="java.lang.Long">
		SELECT * FROM studentTab
		WHERE id=#{id}
	</select>

	<select id="findAll" resultType="com.licw.lean.mybatis_anayl.Student">
		SELECT * FROM studentTab
	</select>

</mapper>

3.通过SqlSeesion获取Mapper的代理

StudentMapper mapper = session.getMapper(StudentMapper.class);

4.执行增删改查方法

Student s = new Student("12344", 32);
int nums = mapper.addStudent(s);

5.关闭session

session.close();

以上5个步骤中,抛出异常部分没有写出来,实际写代码过程中,要注意异常的捕获,因为这个不是本系列的重点,就不罗列了 

 

 

上一篇  框架概述

下一篇 mybatis配置文件详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值