自实现简易MyBatis(一)

本文介绍了MyBatis的基本概念和运行流程,包括通过XML或注解配置数据库交互,以及如何通过动态代理实现DAO接口的功能。文章深入浅出地探讨了MyBatis的配置文件、XML解析、配置类、MapperProxy等核心组件,旨在帮助读者理解MyBatis的工作原理。
摘要由CSDN通过智能技术生成

前言

初学SSM框架,首先学习了MyBatis。MyBatis是一个用于持久层的框架,主要用于与简化与数据库的交互。我们可以直接通过注解或者XML进行配置。我们只需要写DAO的接口,并将实际的查询语句进行配置,MyBatis通过创建该接口的动态代理来实现具体的持久化操作,而不需要我们手动来实现JDBC的细节。

MyBatis运行流程概览在这里插入图片描述

一般的MyBatis配置方法

// 1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
// 2.获取SqlSessionFactory
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
// 3.通过工厂获取SqlSession对象
SqlSession sqlSession = factory.openSession();
// 4.使用SqlSession创建Dao接口的代理对象
UserDao userDao = sqlSession.getMapper(UserDao.class);
// 5.通过代理对象实现数据库的访问
List<User> users = userDao.findAll();
for(User user:users){
   
    System.out.println(user);
}
// 6.关闭资源
in.close();
sqlSession.close();

源码中主要运用了两个设计模式:工厂模式生成器模式,具体的细节不介绍了

而在配置文件中,只需要指定映射配置文件的位置,其中每个DAO接口的配置文件是唯一的,并且路径需要和UserDao.java一致:比如User类的位置是src/main/java/com.billsjc.bean.User,对应的位置是src/main/resources/com/billsjc/dao/UserDao.xml

<!-- 指定配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
    <mapper resource="com/billsjc/dao/UserDao.xml"/>
</mappers>

在UserDao.xml中,namespace对应的是接口的全类名,每一个select标签对应一个方法,比如id=findAll代表该标签配置的是findAll()方法且返回类型是User类。标签中的文本则是具体的sql语句。

<mapper namespace = "com.billsjc.dao.UserDao">
	<select id="findAll" resultType="com.billsjc.bean.User">
	    select * from user
	</select>
</mapper>

对于DAO接口,我们只需要写如下的代码即可

/**
 * @description: 用户的持久层接口(XML)
 * @author: 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值