码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis入门

时间:2016-01-21 10:40:21      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

  一、什么是Mybatis

    可以简单将mybatis理解为ibatis的升级版本,它是一个java的持久层框架,底层依赖jdbc接口,此持久层框架包含sql maps与data access objects组件。mybatis可以通过xml或者注解的方式用于配置原始映射,将接口和java的pojo映射成数据库中的记录。

 

  二、如何配置MyBatis

    开发环境:win10 64位英文版,sql2008r2,eclipse4.4,jdk1.7最新版本号,mavne3.2.1

    jar包版本:mybatis3.2.6,sqljdbc4-4.0,log4j-1.2.17、junit-4.11(可选)

    步骤:1、在eclipse中新建一个mavne project,选择maven-archetype-quickstart,选择下一步,在新窗口中的artifactid输入项目名称即可。

         2、在pom.xml中加入jar包依赖,如下:

<dependencies>
    <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
            <scope>test</scope>
        </dependency>
        
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.6</version>
        </dependency>
        
        <!-- 导入SqlServer数据库链接jar包 -->
        <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
        
    </dependency>
    
  </dependencies>

      3、在项目里面src/main/java 这个source folder中新建一个mybatis的配置文件,如下:

<?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>
    <!-- 注意:每个标签必须按顺序写,不然蛋疼的DTD会提示错误:The content of element type "configuration" 
        must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,mappers?)". -->

    <!-- 数据库文件 -->
    <properties resource="db.properties" />

    <!-- environment 开发模式 work 工作模式 -->
    <environments default="work">
        <environment id="work">
            <transactionManager type="JDBC" />
            <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>
    <!-- 注册映射文件 -->
    <mappers>
        <!-- 通过xml方式映射 -->
        <mapper resource="com/mybatis/demo/userMapper.xml" />
        <!-- 通过注解方式映射 -->>
        <mapper class="com.mybatis.demo.IUserMapper" />
    </mappers>

</configuration>

      4、在第三步中注意到了<properties resource="db.properties" />这个,这样写是单独将数据库连接字符串放在一个db.properties文件中,如下:

driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
url =jdbc:sqlserver://localhost:1433;databaseName=DBtest
username =sa
password =      //这里的密码为空

    到这里,通过在pom.xml中添加jar包依赖、在代码文件夹中添加mybatis访问数据库的配置信息以及自身映射信息,新增一个db.properties存放数据库连接字符串信息,一个基本的mybatis测试项目就搭建起来了,如下图

    技术分享

 

  三、创建一个简单的select查询

    1、在sql2008中新建一个数据库dbtest,在里面新建一个表users,里面3个字段id,name,age

    2、新建一个users的pojo对象。

    3、通过xml方式映射数据

      在当前包下面新建一个userMapper.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.mybatis.demo.userMapper">

    <!-- 根据ID查询得到一个user对象 -->

    <select id="getUser" parameterType="int" resultType="com.mybatis.demo.User"
        resultMap="usermap">
        select *
        from Users where id_id=#{id}
    </select>

    <resultMap type="com.mybatis.demo.User" id="usermap">
        <!--id 针对主键 -->
        <id property="id" column="id_id" />
        <!-- result针对主键之外的字段 -->
        <!-- 如果column写错了,返回值为类型默认值 <result property="name" column="name_s" /> -->
        <result property="name" column="name_n" />  
        <result property="age" column="age_a" />
    </resultMap>

</mapper>

    4、通过注解方式映射数据

       在当前包下面新建一个IUserMapper接口

package com.mybatis.demo;

import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import com.mybatis.demo.*;

public interface IUserMapper {
    
    @Select("select * from Users where id_id =#{id}")
    @Results({ @Result(property="id", column="id_id"),
            @Result(property="name" ,column="name_n"),
            @Result(property="age" ,column="age_a") })
    public User getById(int id);
}
 
  5、新建一个test类
package com.mybatis.demo;

import java.io.IOException;
import java.io.InputStream;

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

public class test {
    public static void main(String[] args) throws IOException  {
        
        //1、加载配置文件
        String resource = "conf.xml"; 
        InputStream inputStream = test.class.getClassLoader().getResourceAsStream(resource);

        //2、构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        
        //3、创建能执行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        
        //4、映射sql的标识字符串
        String statement = "com.mybatis.demo.userMapper.getUser";
    
        //5、执行查询
        User user1 = session.selectOne(statement, 56);
        System.out.println("xml方式:"+user1);
        
        IUserMapper userMapper = session.getMapper(IUserMapper.class);
        User user2 = userMapper.getById(56);
        System.out.println("注解方式:"+user2);

        //6、关闭session对象
        session.close();
    }
}

  6、需要注意的几个地方

    

 

MyBatis入门

标签:

原文地址:http://www.cnblogs.com/wucj/p/5147352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!