MyBatis学习1之MyBatis快速入门

一、MyBatis介绍(http://www.mybatis.org/mybatis-3/zh/index.html

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

二、MyBatis快速入门

  1、开发环境搭建

  1.1创建maven工程(注:笔者这里创建的是java工程,数据库使用sqlite)
 
  1.2在pom.xml文件中添加sqlite数据库驱动包与mybatis包

<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.8.11.2</version>
</dependency>
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
        </dependency>

 
 1.3创建表t_group、t_person(此处创建表的过程忽略,sqlite创建表和mysql中创建表操作相似)
 
  2、使用mybatis框架编写一个简单的查询

    2.1编写与t_group表对应的实体类

 public class Group {
	private int id;
	private String groupName;
	private String description;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getGroupName() {
		return groupName;
	}
	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
}

   2.2添加MyBatis的配置文件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="org.sqlite.JDBC" />
			    <property name="url" value="jdbc:sqlite:cfg/ht.db" />
			    <property name="username" value="" /><!-- sqlite属于内置文件型数据库不需要用户名和密码 -->
			    <property name="password" value="" />
             </dataSource>
		</environment>
	</environments>
</configuration>

   2.3编写与t_group表对应sql映射文件GroupMapper.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.zlt.mybatis.model.Group">
	<select id="selectGroupByID" parameterType="int" resultType="Group" >
		select t.id,t.group_name,t.description from t_group t where t.id = #{id}
	</select>
</mapper>

   2.4mybatis.xml文件中注册GroupMapper.xml文件

 在mybatis.xml文件中添加以下内容

 

	<mappers>
	     <mapper resource="com/zlt/mybatis/mapping/GroupMapper.xml" />
	</mappers>

 

   2.5编写测试类

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。
public class TestMyBatis {
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;
	static {
		try {
			reader = Resources.getResourceAsReader("mybatis.xml");//加载mybatis的配置文件
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//构建sqlSession的工厂
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		
		SqlSession session = sqlSessionFactory.openSession();///创建能执行映射文件中sql的sqlSession
		String statement = "com.zlt.mybatis.model.Group.selectGroupByID";////映射sql的标识字符串
		Group group = session.selectOne(statement, 1);////执行查询返回一个唯一group对象的sql
		if(null != group) {
			System.out.println("id:" +group.getId()+"name:" +group.getGroupName()+"description:" + group.getDescription());
		}
	}
}

   2.6运行结果(注:结果虽然出来了,但是group_name属性查出来是空的,而表中的记录是有值的,下一节分析)

 


 
   2.7最后整个项目结构如下:

 

 

 

 

猜你喜欢

转载自lintaozhou.iteye.com/blog/2397247