MyBatis

本文介绍了MyBatis框架的基本概念、安装配置方法,并详细解释了如何通过接口映射和配置文件映射的方式进行数据库操作。

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

一、MyBatis安装及下载地址

官网 :http://mybatis.github.io/

下载路径:https://github.com/mybatis/mybatis-3/releases

文档:http://mybatis.github.io/mybatis-3/zh/getting-started.html

国内镜像地址:http://maven.aliyun.com/nexus/#nexus-search;quick~mybatis

Maven配置:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.2.8</version>
</dependency>

二、MyBatis 简介

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。


三、Hibernate与MyBatis

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。

iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。

四、MyBatis入门配置

使用接口映射:

<?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>
	<!-- 读取JDBC配置文件 -->
    <properties resource="cn/et/springmvc/util/jdbc.properties"></properties>
    
    <!-- 当从数据库取到空值时,如果没有此配置在浏览器将会显示为 undefined,配置了则会直接显示为"" -->
    <settings>
		<setting name="callSettersOnNulls" value="true"/>
	</settings>
	
	<!-- 配置数据库的环境 (开发环境) -->
	<environments default="development">
		<environment id="development">
		
			<!-- 将事务交给JDBC来处理   commit rollback -->
			<transactionManager type="JDBC" />
			
			<!-- 数据源(dataSource) 用来获取连接 connection  连接池(dbcp、c3p0、druid) -->
			<dataSource type="POOLED">
			
				<!-- 数据源四要素:一、驱动类 -->
				<property name="driver" value="${driverName}" />
				
				<!-- 数据源四要素:二、URL -->
				<property name="url" value="${url}" />
				
				<!-- 数据源四要素:三、用户名 -->
				<property name="username" value="${uname}" />
				
				<!-- 数据源四要素:四:密码 -->
				<property name="password" value="${password}" />
				
			</dataSource>
		</environment>
	</environments>
	
	<!-- 这里使用的是接口注解映射 -->
	<mappers>
		<mapper class="cn.et.springmvc.dao.EmpDao"/>
	</mappers>
	
</configuration> 

使用配置文件映射:



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>
	<!-- 读取JDBC配置文件 -->
    <properties resource="jdbc.properties">
    </properties>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
			<property name="driver" value="${driver}" />
			<property name="url" value="${url}" />
			<property name="username" value="${username}" />
			<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<!-- 引用其他的映射文件 这里可以引用多个文件配置文件 -->
	<mappers>	
		<mapper resource="com/ib/UserInfoMapper.xml" />
		<mapper resource="........" />
	</mappers>
</configuration> 

映射配置文件:

com/ib/UserInfoMapper.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="org.ib.UserInfo">
  <select id="selectUserInfo" resultType="com.ib.UserInfo">
    select id from hib_user_info where id = #{id}
  </select>
  
</mapper>

通过接口直接映射Sql(XML)

接口定义:
package com.ib;
import org.apache.ibatis.annotations.Select;
public interface UserMapper {
public UserInfo selectUserInfo(String id);
}
mybatis-config.xml内容:
<mappers>
	<mapper resource="com/ib/UserInfoMapper.xml" />
	<mapper class="com.ib.UserMapper"/>
</mappers>
UserInfoMapper.xml
<mapper namespace=" com.ib.UserMapper ">  
 <select id="selectUserInfo" resultType=" UserInfo "    parameterType="java.lang.String"   > 
    select id from hib_user_info where id=#{id}"   
  </select>   
</mapper>

通过接口直接映射Sql(注解)

接口定义:
package com.ib;
import org.apache.ibatis.annotations.Select;

public interface UserMapper {
@Select("select id from hib_user_info where id=#{id}")
public UserInfo selectUserInfo(String id){
	
}
mybatis-config.xml内容:
<mappers>
      <mapper class="com.ib.UserMapper"/>
</mappers>
通过接口调用:
//获取资源文件的路径
String resource = "mybatis-config.xml";
//加载资源文件获取输入流
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过输入流获取实现接口的会话的工厂类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//开启回话
SqlSession session=sqlSessionFactory.openSession();
//通过回话获取接口实例
UserMapper um=session.getMapper(UserMapper.class);


其他内容会后续编辑



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值