• MyBatis学习系列一之环境搭建


    目录

    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)

  • 相关阅读:
    泛型技巧系列:如何提供类型参数之间的转换
    一些支离破碎的泛型反射技巧
    泛型技巧系列:类型字典和Type Traits
    Excel开发:简化工作表中选定区域的操作。
    趣味程序:打印自己代码的程序
    VBF BETA 1.5 发布了
    .NET 2.0 CER学习笔记
    随笔乱入,开心就好
    Cocos2dx for WindowsPhone:开发一个打地鼠游戏(下)
    跨平台网络游戏趋势和优势
  • 原文地址:https://www.cnblogs.com/sshoub/p/4299452.html
Copyright © 2020-2023  润新知