MyBaits(一) 初识MyBatis

(一)什么是MyBatis

MyBatis是当前主流的java持久层框架之一。(另一个是Hibernate)。
Mybatis的前身是iBatis,是一种支持简单SQL数据操作、存储过程、高级映射的持久层框架。也被成为ORM框架(对象关系映射框架)。ORM就是一种处理Java对象和关系型数据库中数据类型不匹配得到技术

Hibernate和MyBatis的区别:
在这里插入图片描述

(二)MyBatis的工作原理

在这里插入图片描述MyBatis 框架在操作数据库时,大体经过了 8 个步骤:

  1. 读取 MyBatis 配置文件,主要内容是获取数据库连接
  2. 加载映射文件 Mapper.xml
  3. 构建会话工厂SqISessionFactory
  4. 创建 SqlSession 对象
  5. MyBatis 底层定义了一个 Executor 接口来操作数据库,它会根据 SqlSession 传递的参
    数动态地生成需要执行的 SOL 语句,同时负责查询缓存的维护
  6. MappedStatement 对象
  7. 输入参数映射
  8. 输出结果映射

(三)入门程序

(1)导包
在这里插入图片描述
(2)添加配置文件log4j.properties
在这里插入图片描述

备注:配置文件可以在mybatis-3.4.2.pdf文档中8.1.1.2中复制

(3)创建实体类
(4)创建映射文件 CustomerMaþper.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.allen.mapper.CustomerMapper">

	<select id="findCustomerById" resultType="com.allen.entity.CustomerDO" parameterType="Integer">
		select * from customer where id = #{id}
	</select>

	<insert id="addCustomer" parameterType="com.allen.entity.CustomerDO">
		insert into customer (username, jobs, phone) values (#{username}, #{jobs}, #{phone})
	</insert>
</mapper>
备注:: mybatis-3.4.2.pdf,在第 2 小节 Getting started (入门指南)下的 2.1.5小节 Exploring Mapped SQL Statements 中,即可找到映射文件的约束信息

(5)创建 MyBatis 的核心配置文件 mybatis-config.xml

<?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>
	<!-- 引进db.properties文件,作为参数 -->
	<properties resource="db.properties"></properties>
	
	<!-- 配置环境,默认的环境 id 为 mysql -->
	<environments default="mysql">
		<!-- 配置 id 为 mysql 的数据库环境 -->
		<environment id="mysql">
			<!-- 使用 JDBC 的事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}" />
				<property name="url" value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="com/allen/mapper/CustomerMapper.xml" />
	</mappers>
</configuration>

db.properties文件
在这里插入图片描述
(6)测试类
在这里插入图片描述

MyBatis 的操作大致可分为以下几个步骤 。
( 1 ) 读取MyBatis配置文件 。
( 2 ) 根据配置文件构建 SqISessionFactory。
( 3 ) 通过 SqlSessionFactory 创建 SqlSession 。
( 4 )使用 SqlSession 对象操作数据库(包括查询、添加、修改、删除以及提交事务等)。
(5 )关闭 SqlSession 。

    注释:更新数据添加sqlSession.commit();
补充:在使用"${}"进行 SQL 字符串拼接时,无法防止 SQL 注入问题 . 所以想要实现模糊查询,又要防止 SQL 注入,可以对上述映射文件中模糊查询的 select 语句进行修改,使用 MySQL 中的 concat()函数进行字符串拼接 . 具体修改示例如下所示 
select * from t customer where username like concat ( '%' #{value} '%' )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值