前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis框架入门

Mybatis框架入门

作者头像
暴躁的程序猿
发布2022-03-23 16:57:02
1770
发布2022-03-23 16:57:02
举报
文章被收录于专栏:阿飞的学习记录

框架概述

什么是框架

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

框架要解决的问题

框架要解决的最重要的一个问题是技术整合的问题,在 J2EE 的 框架中,有着各种各样的技术,不同的软件企业需要从 J2EE 中选择不同的技术,这就使得软件企业最终的应用依赖于这些技术,技术自身的复杂性和技术的风险性将会直接对应用造成冲击。而应用是软件企业的核心,是竞争力的关键所在,因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。

MyBatis 框架概述

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。 mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。 采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。 为了我们能够更好掌握框架运行的内部过程,并且有更好的体验,下面我们将从自定义 Mybatis 框架开始来学习框架。此时我们将会体验框架从无到有的过程体验,也能够很好的综合前面阶段所学的基础。

Mybatis 框架快速入门

搭建 Mybatis 开发环境 创建 maven 工程 导入坐标

代码语言:javascript
复制
 <dependencies>
 <dependency>
	 <groupId>org.mybatis</groupId>
	 <artifactId>mybatis</artifactId>
	 <version>3.4.5</version>
	 </dependency>
 <dependency>
	 <groupId>junit</groupId>
	 <artifactId>junit</artifactId>
	 <version>4.10</version>
	 <scope>test</scope>
	 </dependency>
 <dependency>
	 <groupId>mysql</groupId>
	 <artifactId>mysql-connector-java</artifactId>
	 <version>5.1.6</version>
	 <scope>runtime</scope>
 </dependency>
 <dependency>
	 <groupId>log4j</groupId>
	 <artifactId>log4j</artifactId>
	 <version>1.2.12</version>
 </dependency>
 </dependencies>

编写实体类

代码语言:javascript
复制
	private Integer id;
	private String username;
	private Date birthday;
	private String sex;
	private String address;

编写持久层接口

代码语言:javascript
复制
public interface UserDao {
	/**
	* 查询所有用户
	* @return
	*/
		List<User> findAll();
}

编写持久层接口的映射文件UserDao.xml 要求: 创建位置:必须和持久层接口在相同的包中。 名称:必须以持久层接口名称命名文件名,扩展名是.xml

代码语言:javascript
复制
<?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.rpf.dao.IUserDao">
		<!-- 配置查询所有操作 -->
		<select id="findAll" resultType="com.rpf.domain.User">
		select * from user
		</select>
</mapper>

编写 SqlMapConfig.xml 配置文件(mybaits主配置)

代码语言:javascript
复制
<?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>
			<!-- 配置 mybatis 的环境 -->
	<environments default="mysql">
			<!-- 配置 mysql 的环境 -->
	<environment id="mysql">
			<!-- 配置事务的类型 -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 配置连接数据库的信息:用的是数据源(连接池) -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
				<property name="username" value="root"/>
				<property name="password" value="123456"/>
			</dataSource>
      </environment>
 </environments>
<!-- 告知 mybatis 映射配置的位置 -->
	<mappers>
			<mapper resource="com/rpf/dao/UserDao.xml"/>
	</mappers>
</configuration>

编写测试类

代码语言:javascript
复制
/**
*
*MybatisTest
* Description: 测试 mybatis 的环境
*/
public class MybatisTest {
		public static void main(String[] args)throws Exception {
			//1.读取配置文件
			InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
			//2.创建 SqlSessionFactory 的构建者对象
			SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
			//3.使用构建者创建工厂对象 SqlSessionFactory
			SqlSessionFactory factory = builder.build(in);
			//4.使用 SqlSessionFactory 生产 SqlSession 对象
			SqlSession session = factory.openSession();
			//5.使用 SqlSession 创建 dao 接口的代理对象
			IUserDao userDao = session.getMapper(IUserDao.class);
			//6.使用代理对象执行查询所有方法
			List<User> users = userDao.findAll();
			for(User user : users) {
			System.out.println(user);
			}
			//7.释放资源
			session.close();
			in.close();
			}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 框架概述
  • Mybatis 框架快速入门
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档