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最简单使用,关于更实用或者企业级的使用,后续再写吧。。。