Mybatis 简明教程(一)

1.mybatis介绍

1.1 持SQL、Procedure、Advanced Mapping的优秀持久层框架,不过与EJB、Spring相比,称其为组件更合适

1.2 开源组件,最新版本3.2.0,官方地址 http://code.google.com/p/mybatis/

2.准备工作

2.1 mybatis jar包下载   http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DMyBatis

2.2 mysql驱动下载  http://www.mysql.com/downloads/connector/j/

3.新建Java工程,MyBatis入门级使用

3.1  引入mybatis、mysql相关jar包,主要包括

mysql-connector-java-5.1.23-bin.jar

mybatis-3.2.0.jar

log4j-1.2.17.jar

commons-logging-1.1.1.jar

其中log4j和commons-loggin是mybatis需要使用的jar包,当然以上jar包版本号不一定要跟本例一样精确

3.2 创建mybatis所需的配置文件

(1)创建连接数据库所需的properties文件,如 setting.popertis,并添加连接mysql所需的账号密码以及驱动和链接

          #----注意修改用户名和密码,以和你本机匹配----#

         mysql.driver=com.mysql.jdbc.Driver
         mysql.url=jdbc:mysql://localhost:3306/world
         mysql.username=root
         mysql.password=*****

(2)创建mybatis的config文件,如命名为mybatis.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>

	<!-- 配置数据源 -->
	<environments default = "development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${mysql.driver}"/>
				<property name="url" value="${mysql.url}"/>
				<property name="username" value="${mysql.username}"/>
				<property name="password" value="${mysql.password}"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- SQL 映射:此处为对应的sql映射文件 -->
	<mappers>
		<mapper resource="com/yli/sop/dao/CityMapper.xml"/>
	</mappers>
</configuration>

(3)创建sql映射文件

注意该文件的放置路径需和(2)中指定的路径一致,本例放在 com.yli.sop.dao 这个package下

<?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">
    
<!-- 指定sql语句的命名空间,一般以所在包名命名...此处并不是规范的命名... -->
<mapper namespace="city">
	
	<!-- 注意此处配置的传入参数使用resultType,不是resultMap;结果集也一样,配配错了 -->
	<select id="queryCityByID" parameterType="hashmap" resultType="hashmap">
		<!-- 注意写你自己数据的表名,别写错了 -->
		SELECT * FROM city
		<where>
			<!-- 用 #{key} 的形式从传入参数取值,此处入参类型是HashMap,key即表示HashMap中的key -->
			<if test="id != null and id != ''">
				id = #{id}
			</if>
			<if test="id == null or id == ''">
				id = -1
			</if>
		</where>
	</select>
	
	<select id="queryCityList" parameterType="hashmap" resultType="hashmap">
		SELECT * FROM city limit 0,10
	</select>
</mapper>

 3.3 从配置文件加载mybatis配置,做简单测试

package com.yli.sop.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class MybatisTest {

	public static void main(String[] args) throws IOException {
		// Mybatis配置文件目录
		String resource = "config/mybatis.xml";
		// 使用Mybatis工具类加载配置文件
		Reader reader = Resources.getResourceAsReader(resource);
		
		// 使用SqlSessionFactoryBuilder创建Session工厂
		SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
		
		// 创建SqlSession,打开连接
		SqlSession session = sqlMapper.openSession();
		
		// 配置简单的SQL参数
		Map<String, Integer> parameter = new HashMap<String, Integer>();
		parameter.put("id", 1);
		
		// 查询单条记录
		Map<String, Object> resultMap = session.selectOne("city.queryCityByID", parameter);
		System.out.println(resultMap);
		
		// 查询列表
		List<Map<String, Object>> resultList = session.selectList("city.queryCityList");
		System.out.println(resultList);
		
		// 关闭连接
		session.close();
	}
}

以上是Mybatis最简单使用,关于更实用或者企业级的使用,后续再写吧。。。

猜你喜欢

转载自gzuimis.iteye.com/blog/1827112
今日推荐