mybatis入门

1)  什么是Mybatis

MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除

了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的

XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的

Java对象)映射成数据库中的记录。(官方文档)

      PS: Mybatis是面向接口编程的,MyBatis的前身是 iBatis。

  1)  Mybatis作为一个实现了JPA(Java Persistence API)规范的一门O/R Mapping框架(对象/关系映射)。

  2)  Mybatis对SQL和存储过程的直接支持,能够获得SQL调优。

2)  Mybatis组成

3)  构建SqlSessionFactory

      每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得。SqlSessionFactoryBuilder对象可以从XML配置文件,或从Configuration类的习惯准备的实例中构建SqlSessionFactory对象。
String resource = "org/mybatis/config/mybatis.cfg.xml"; 
Reader reader = Resources.getResourceAsReader(resource); 
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

PS: 还有一个使用Mybatis的API来构建SqlSessionFactory(不推荐).

其中mybatis.cfg.xml文件内容:

<?xmlversion="1.0"encoding="UTF-8"?>

 

<!DOCTYPE configuration PUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">

 

<configuration>

    <typeAliases>

        <typeAlias alias="User" type="com.mybatis.entity.User"/>

    </typeAliases>

 

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC"/>

            <dataSource type="POOLED">

                <property name="driver" value="com.mysql.jdbc.Driver"/>

                <property name="url"    value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"/>

                <property name="username" value="root" />

                <property name="password" value="admin" />

            </dataSource>

        </environment>

    </environments>

  

    <mappers>

        <mapper resource="com/mybatis/mapper/User.xml"/>

    </mappers>

</configuration>

PS: Mybatis配置文件: sqlMapConfig.xml (参见mybatis-3-config.dtd及官方文档说明)

4)  Sql映射文件

一般地,将对一个持久对象(对应数据库中的表)的操作的sql语句定义到一个xml文件中。如:

<?xmlversion="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.mybatis.mapper.UserMapper">

    <select id="selectUser" parameterType="int" resultType="User">

        select * from user where id = #{id}

    </select>

</mapper>

5) 获取SqlSession

SqlSession session = sqlSessionFactory.openSession();

6) 执行sql

try {
    User user = (User) session.selectOne("com.mybatis.mapper.UserMapper.selectUser", "3");
} finally {
  session.close();
}

 小结:

步骤:

1) 下载mybatis-3.1.1.jar包,加入到classpath中

2) 创建与数据库表对应的实体类,以User表为例

3) 创建mybatis.cfg.xml配置文件,配置数据源(数据库为mysql,将数据库驱动包加入到classpath中)

4) 创建sqlMap配置文件User.xml,添加查询sql语句

      5) 在main方法中测试查询或使用JUnit4的@Test注解

 

posted @ 2012-08-31 12:38  今天是昨天的明天  阅读(1294)  评论(0)    收藏  举报