MyBatis學習系列一之環境搭建

目錄html

MyBatis學習系列一之環境搭建java

MyBatis學習系列二——增刪改查sql

MyBatis學習系列三——結合Spring數據庫

 

 

    學習一個新的知識,首先作一個簡單的例子使用一下,而後再逐步深刻。MyBatis的學習咱們也從一個小例子開始。apache

一、MyBatis的做用:session

  簡單的說MyBatis實現的是DAO層,經過XML文件配置SQL,映射到PO。mybatis

二、須要準備的引用包oracle

  mybatis-3.2.8.jar:myBatis框架使用app

  ojdbc6.jar:數據庫鏈接框架

三、結構分析

  1)須要配置文件鏈接數據庫;

  2)須要公共方法提供數據庫鏈接的使用;

  3)PO:持久對象

  4)數據查詢SQL配置XML文件;

  5)對外接口;

四、結構搭建

示例以下:

文件說明:

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>

 兩個配置:

1、鏈接數據庫;

2、系統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中; 

 

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

相關文章
相關標籤/搜索