摘要:一個(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自動(dòng)映射
使用方法呢, 是加入maven插件中 然后執(zhí)行相關(guān)命令可以實(shí)現(xiàn)自動(dòng)生成MyBatis配置文件
首先編寫(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ù)類型如下
此時(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 ListfindRoleByteMap(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; Listrole = 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 ListfindRoleByteMap1(@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; Listrole = 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
摘要:第一是手動(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。具體的安裝如下所...
摘要:首先導(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...
摘要:所有的語(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...
摘要:的解析和運(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...
閱讀 2913·2021-11-24 09:39
閱讀 1723·2021-09-28 09:35
閱讀 1178·2021-09-06 15:02
閱讀 1446·2021-07-25 21:37
閱讀 2833·2019-08-30 15:53
閱讀 3711·2019-08-30 14:07
閱讀 767·2019-08-30 11:07
閱讀 3604·2019-08-29 18:36