首页 > 技术文章 > MyBatis学习系列一之环境搭建

sshoub 2015-02-25 13:23 原文

目录

MyBatis学习系列一之环境搭建

MyBatis学习系列二——增删改查

MyBatis学习系列三——结合Spring

 

 

    学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入。MyBatis的学习我们也从一个小例子开始。

1、MyBatis的作用:

  简单的说MyBatis实现的是DAO层,通过XML文件配置SQL,映射到PO。

2、需要准备的引用包

  mybatis-3.2.8.jar:myBatis框架使用

  ojdbc6.jar:数据库连接

3、结构分析

  1)需要配置文件连接数据库;

  2)需要公共方法提供数据库连接的使用;

  3)PO:持久对象

  4)数据查询SQL配置XML文件;

  5)对外接口;

4、结构搭建

示例如下:

文件说明:

1)数据库配置文件:configuration.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"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
                <property name="username" value="phonesurvey"/>
                <property name="password" value="world"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="nankang/dao/agentMapper.xml" />    
    </mappers>
</configuration>

 两个配置:

一、连接数据库;

二、系统mapper注册;

 

2)使用连接通用文件:SqlSessionHelper.java

package nankang.util;

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

public class SqlSessionHelper {
    
    public static SqlSessionFactory getSessionFactory(){
        SqlSessionFactory sessionFactory = null;
        String resource= "nankang/configuration.xml";
        try{
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return sessionFactory;
    }
}

 使用SqlSessionFactory创建连接。


3)PO对象:

package nankang.po;

public class Agent {

    private String agentId;
    private String companyCode;
    private String loginName;
    private String name;
    
    
    public String getAgentId() {
        return agentId;
    }
    public void setAgentId(String agentId) {
        this.agentId = agentId;
    }
    public String getCompanyCode() {
        return companyCode;
    }
    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }
    public String getLoginName() {
        return loginName;
    }
    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
}

 这个没什么好说的,就是一个对象及属性。

如果查询SQL中没有查找对应的字段,则为空。

4)PO的映射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="nankang.dao.AgentMapper">
    
    <select id="selectAgentById" parameterType="HashMap" resultType="nankang.po.Agent">
        select agentId,companyCode,loginName,name from Agent where AgentId=#{id}
    </select>

</mapper>
package nankang.dao;

import nankang.po.Agent;

public interface AgentMapper {
    
    public Agent selectAgentById(String Id);

}

对外使用接口,XML文件相当于实现; 

SQL语句,查询的多,也没关系,多余的字段不会映射。

 

5)使用:

package nankang.test;

import nankang.dao.AgentMapper;
import nankang.po.Agent;
import nankang.util.SqlSessionHelper;

import org.apache.ibatis.session.SqlSession;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        try{
            SqlSession sqlSession = SqlSessionHelper.getSessionFactory().openSession();
            
            AgentMapper agentMapper = sqlSession.getMapper(AgentMapper.class);
            Agent agent = agentMapper.selectAgentById("SHNKAG0000000005");
            
            System.out.println(agent.getName());
        }catch(Exception ex){
            System.out.println(ex.getMessage());
        }

    }

}

首先创建一个SQLSession,然后使用这个Session创建Mapper,这块应该放在BO中; 

 

5、示例下载: http://pan.baidu.com/s/1pJmeYpX (Fish的分享>MyBatis>myBatis1.rar)

 

推荐阅读