成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

MyBatis 映射器

cpupro / 3509人閱讀

摘要:一個(gè)用于生成配置文件的插件使用方法呢是加入插件中然后執(zhí)行相關(guān)命令可以實(shí)現(xiàn)自動(dòng)生成配置文件自動(dòng)映射首先編寫(xiě)無(wú)參的然后創(chuàng)建數(shù)據(jù)庫(kù)這次使用的是開(kāi)發(fā)環(huán)境創(chuàng)建的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)類型如下編寫(xiě)映射文件此時(shí)結(jié)果會(huì)自動(dòng)映射到對(duì)象中根據(jù)對(duì)象自動(dòng)調(diào)用方法然后進(jìn)行賦

ps 一個(gè)用于生成MyBatis配置文件的插件 mybatis-generator
使用方法呢, 是加入maven插件中 然后執(zhí)行相關(guān)命令可以實(shí)現(xiàn)自動(dòng)生成MyBatis配置文件
自動(dòng)映射

首先編寫(xiě)無(wú)參的javabean

package com.ming.MyBatis.POJO;

/**
 * @author ming
 */
public class Role {
    private int id;
    private String roleName;
    private String note;
    
    public Role(){

    }

    /**
     * @param id 
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @param roleName 
     */
    public void setRole_name(String roleName) {
        this.roleName = roleName;
    }

    /**
     * @param note 
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * @return 
     */
    public int getId() {
        return id;
    }

    /**
     * @return 
     */
    public String getRoleName() {
        return roleName;
    }

    /**
     * @return 
     */
    public String getNote() {
        return note;
    }
}
然后創(chuàng)建數(shù)據(jù)庫(kù)

這次使用的是開(kāi)發(fā)環(huán)境創(chuàng)建的數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)類型如下

編寫(xiě)映射文件

    
    

此時(shí)結(jié)果會(huì)自動(dòng)映射到VO對(duì)象中,根據(jù)VO對(duì)象自動(dòng)調(diào)用set方法,然后進(jìn)行賦值操作

此時(shí)DAO層接口

    /**
     * @param id
     * @return
     */
    public Role getRole(int id);
傳遞多個(gè)參數(shù)

如果需要傳遞多個(gè)參數(shù),使用MyBatis提供的Map接口

首先新增加DAO層接口

    /**
     * 查詢Map
     * @param params
     * @return
     */
    public List findRoleByteMap(Map params);

接著,書(shū)寫(xiě)映射文件,傳遞參數(shù)

    

這里呢,定義了一個(gè)結(jié)果集
對(duì)于返回的數(shù)據(jù),使用typehand進(jìn)行攔截,將會(huì)調(diào)用自定義別名的role類

    
        
        
        
        
        
        
    

現(xiàn)在的完整文件





    
        
        
        
        
        
        
    
    
    
    
    



    
    
    
    
        
    
    
    
    
        
    
    
    
        
            
            
            
            
                
                
                
                
            
        
    
    
    
        
    

書(shū)寫(xiě)結(jié)果展示

<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.ming.Util.SqlSessionFactoryUtil" %>
<%@ page import="com.ming.MyBatis.POJO.RoleMapper" %>
<%@ page import="com.ming.MyBatis.POJO.Role" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.swing.text.html.HTMLDocument" %>
<%@ page import="java.util.Iterator" %>


Hello World!

<% long startTime = System.currentTimeMillis(); //獲取開(kāi)始時(shí)間 SqlSession sqlSession = null; List role = null; for(int i = 0; i < 10; i++) { try { sqlSession = SqlSessionFactoryUtil.openSqlSesion(); RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class); Map paramsMap = new HashMap(); paramsMap.put("roleName", "name"); paramsMap.put("note", "note"); role = roleMapper.findRoleByteMap(paramsMap); sqlSession.commit(); } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); } finally { if (sqlSession != null) { sqlSession.close(); } } } long endTime = System.currentTimeMillis(); //獲取結(jié)束時(shí)間 %> <% Iterator iterator = role.iterator(); while(iterator.hasNext()){ %> <%=((Role)iterator.next()).getNote()%> <% } %>

數(shù)據(jù)庫(kù)中大概有一萬(wàn)多條記錄,時(shí)間較長(zhǎng)

ps 一萬(wàn)多條list擔(dān)心內(nèi)存

此時(shí)可以在此處輸出查詢?nèi)罩?用于進(jìn)行分析

注解傳遞參數(shù)

使用param注解傳遞參數(shù)

新建一個(gè)DAO接口

    /**
     * @param roleName 
     * @param note
     * @return
     */
    public List findRoleByteMap1(@Param("roleName") String roleName, @Param("note") String note);

再次編寫(xiě)映射文件,對(duì)DAO層和SQL語(yǔ)句進(jìn)行映射配置

    
    

再次編寫(xiě)展示層

<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.ming.Util.SqlSessionFactoryUtil" %>
<%@ page import="com.ming.MyBatis.POJO.RoleMapper" %>
<%@ page import="com.ming.MyBatis.POJO.Role" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.swing.text.html.HTMLDocument" %>
<%@ page import="java.util.Iterator" %>


Hello World!

<% long startTime = System.currentTimeMillis(); //獲取開(kāi)始時(shí)間 SqlSession sqlSession = null; List role = null; for(int i = 0; i < 10; i++) { try { sqlSession = SqlSessionFactoryUtil.openSqlSesion(); RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class); Map paramsMap = new HashMap(); paramsMap.put("roleName", "name"); paramsMap.put("note", "note"); role = roleMapper.findRoleByteMap1("name", "note"); sqlSession.commit(); } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); } finally { if (sqlSession != null) { sqlSession.close(); } } } long endTime = System.currentTimeMillis(); //獲取結(jié)束時(shí)間 %> <% Iterator iterator = role.iterator(); while(iterator.hasNext()){ %> <%=((Role)iterator.next()).getNote()%> <% } %>

運(yùn)行結(jié)果

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/74132.html

相關(guān)文章

  • spring和mybatis的整合

    摘要:第一是手動(dòng)在的配置文件中使用部分來(lái)指定類路徑。第二是使用工廠的屬性。注解和樣式的配置都是支持的。在事務(wù)處理期間一個(gè)單獨(dú)的對(duì)象將會(huì)被創(chuàng)建和使用。創(chuàng)建的代理控制開(kāi)放和關(guān)閉翻譯任意的異常到的異常中。每個(gè)映射器將會(huì)在指定的包路徑中遞歸地被搜索到。 mybatis-spring 若要整合spring和mybatis就需要一個(gè)插件即mybatis-spring-x.x.x.jar。具體的安裝如下所...

    vspiders 評(píng)論0 收藏0
  • mybatis 入門(mén)搭建

    摘要:首先導(dǎo)包依賴如下構(gòu)建應(yīng)用是以為中心的實(shí)例可以通過(guò)獲得其中是工廠接口任務(wù)用于創(chuàng)建配置文件將會(huì)解析配置文件在類對(duì)象中配置獲取數(shù)據(jù)源事務(wù)管理器映射器在文件下新建文件配置文件內(nèi)容如下定義別名定義數(shù)據(jù)庫(kù)信息事物管理 首先導(dǎo)包 依賴如下 mysql mysql-connector-java 8.0.15 org.m...

    enali 評(píng)論0 收藏0
  • Mybatis射器配置文件疑點(diǎn)

    摘要:所有的語(yǔ)句都需要配置一個(gè),并且要和中的方法名相同。若有參數(shù),則需要設(shè)置參數(shù)類型,如下一般來(lái)說(shuō)會(huì)在中設(shè)置類型,即其實(shí)不設(shè)置一般情況下也不會(huì)出錯(cuò),但是一般情況下設(shè)置類型,因?yàn)楫?dāng)參數(shù)值為空時(shí),能夠確保找到正確的類型處理器。 mapper statement: insert update select delete。所有的mapper statement 語(yǔ)句都需要配置一個(gè)id,并且id...

    CNZPH 評(píng)論0 收藏0
  • 【深入淺出MyBatis筆記】MyBatis的解析和運(yùn)行原理

    摘要:的解析和運(yùn)行原理構(gòu)建過(guò)程提供創(chuàng)建的核心接口。在構(gòu)造器初始化時(shí)會(huì)根據(jù)和的方法解析為命令。數(shù)據(jù)庫(kù)會(huì)話器定義了一個(gè)對(duì)象的適配器,它是一個(gè)接口對(duì)象,構(gòu)造器根據(jù)配置來(lái)適配對(duì)應(yīng)的對(duì)象。它的作用是給實(shí)現(xiàn)類對(duì)象的使用提供一個(gè)統(tǒng)一簡(jiǎn)易的使用適配器。 MyBatis的解析和運(yùn)行原理 構(gòu)建SqlSessionFactory過(guò)程 SqlSessionFactory提供創(chuàng)建MyBatis的核心接口SqlSess...

    bitkylin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<