MyBatis的环境搭建以及简单案例

MyBatis框架简介

MyBatis的前身是iBatis,是一个开源的数据持久层(Dao)框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。

MyBatis内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。

数据持久化(概念)

	数据持久化是将内存中的数据模型转换为存储模型,已将存储模型转换为内存中的数据模型的统称。
	例如:文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。

ORM(数据持久化技术)

ORM(Object/RelationaI Mapping)及对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。

MyBatis环境搭建

	这里我们使用mybatis-3.2.2版本、MyEclipse、mysql数据库演示
  1. 下载需要的jar文件

    	jar包以及源码包地址:http://github.com/mybatis/mybatis-3/releases	
    
  2. 部署jar文件

    	将mybatis-3.2.2.jar 文件以及jdbc驱动文件复制到lib目录中,并添加到Libraries中。
    
  3. 创建MyBatis核心配置文件mybatis-config.xml

    	PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    	"http://mybatis.org/dtd/mybatis-3-config.dtd">
    	<configuration>
    		<!-- 引入 database.propertiesMySql文件 -->
    		<properties resource="database.properties"> <!-- 先读取内部配置,外部会覆盖内部配置,resource中是引入外部的database文件,也可以不设置,直接在内部设置 -->
    			<property name="driver" value="com.mysql.jdbc.Driver"/>
    			<property name="url" value="jdbc:mysql://laptop-4p6qt61b:3306/smbms?useUnicode=true&amp;characterEncoding=utf-8"/>
    			<property name="username" value="root"/>
    			<property name="password" value="123456"/>
    		</properties>
    		<settings>
    			<!-- 配置mybatis的log实现为LOG4J -->
    			<setting name="logImpl" value="LOG4J"></setting>
    			<!-- 设置resultMap的自动映射级别为Full(自动匹配所有) -->
    			<setting name="autoMappingBehavior" value="FULL"/>
    		</settings>
    		<!-- 配置类型别名(pojo) -->
    		<typeAliases>
    			<package name="cn.smbms.pojo"/>		<!-- 2.通过pojo包来自动扫描类名生成类型别名 -->
    		</typeAliases>
    		<!-- 配置mybatis多套运行环境 -->
    		<environments default="development">
    			<environment id="development">
    				<!-- 配置事物管理,采用JDBC的事物管理  MANAGED(托管)-->
    				<transactionManager type="JDBC"></transactionManager>
    				<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源  UNPOOLED:-->
    				<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>
    		<!-- 将mapper映射文件加入到配置文件中 -->
    		<mappers>
    			<mapper resource="cn/smbms/dao/user/UserMapper.xml"/>	<!-- 方式1:使用类资源路径获取资源 -->
    		</mappers>
    	</configuration>
    
    
  4. 创建持久化类POJO

持久化类是指其实例状态需要被MyBatis持久化到数据库中的类。在应用的设计中,持久化类通常对应需求中的业务实体。MyBatis一般采用POJO编程模型来实现持久化类,与POJO类配合完成持久化工作是MyBatis最常用的工作模式。

	javascrip package cn.smbms.pojo;
	import java.util.Date;
	import java.util.List;
	
	public class User {
		
		/*字段*/
		private Integer id ;			//id
		private String userCode;		//用户编码
		private String userName;		//用户名称
		private String userPassword;	//用户密码
		private Integer gender;			//性别
		private Date birthday;			//出生日期
		private String phone;			//电话
		private String address;			//地址
		private Integer userRole;		//用户角色
		private String userRoleName;	//用户角色名称
		private Integer createdBy;		//创建者
		private Date creationDate;		//创建时间
		private Integer modifyBy;		//更新者
		private Date modifyDate;	//更新时间
		private Role role;		//用户角色
		private List<Address> addressList;	//用户地址列表
   }
  1. 创建SQL映射文件与User接口类(为了方便暂时把它们放在dao.user包下)

SQL映射文件一般对应于相应的POJO,所以一般都是采用POJO的名称+Mapper的规则来进行命名。

SQL映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mapper.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.smbms.dao.user.UserMapper">
	<!-- 根据用户名称查询用户列表 -->
	<select id="getUserListByUserName" resultType="User" parameterType="string">
		select * from smbms_user where userName like CONCAT('%',#{userName},'%')
	</select>	
</mapper>

User接口类

  	package cn.smbms.dao.user;
	import java.util.List;
	import java.util.Map;
	import org.apache.ibatis.annotations.Param;
	import cn.smbms.pojo.User;
	/**
	 * 绑定映射语句的接口(User映射器)
	 * @author 一支烟
	 *
	 */
	public interface UserMapper {
		/**
		 * 根据用户名称查询用户列表(方法名名称与映射文件的select中id一致)
		 * @param userName
		 * @return
		 */
		public List<User> getUserListByUserName(String userName);
	}
  1. 创建测试类(可以使用JUnit或者main方法)

    public class UserMapperTest {
    private Logger logger = Logger.getLogger(UserMapperTest.class);
    @Test
    public void test() {
    	String resource = "mybatis-config.xml";
    	SqlSession sqlSession = null;
    	List<User> userList = null;
    	try {
    		//1.读取全局配置文件:mybatis-config.xml
    		//获取mybatis-config.xml文件的输入流  
    		InputStream is = Resources.getResourceAsStream(resource);
    		//2.创建SqlSessionFactory对象,此对象可以完成对配置文件的读取 
    		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    		//3.创建SqlSession对象,此对象的作用是调用mapper文件进行数据操作  
    		sqlSession = factory.openSession();
    		//4.通过getMapper方法获取UserMapper接口对象 (官方推荐使用方式)
    		UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    		//5.调用UserMapper中的方法
    		userList = mapper.getUserListByUserName("张");
    	} catch (Exception e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally{
    		//4.关闭SqlSession对象
    		if(null != sqlSession){
    			sqlSession.close();
    		}
    	}
    	if(null != userList){
    		for (User user:userList) {
    			//使用Log4j输出也可使用System输出
    			logger.debug("testGetUserList userCode:"+user.getUserCode()+
    					" and userName:"+user.getUserName()+
    					" and userRole:"+user.getUserRole()+
    					" and userRoleName:"+user.getUserRoleName()+
    				/*	" and age:"+user.getAge()+*/
    					" and address:"+user.getAddress());
    		}
    	}
    }
    }	 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值