MyBatis 映射器

ps 一个用于生成MyBatis配置文件的插件 mybatis-generator
使用方法呢, 是加入maven插件中 然后执行相关命令可以实现自动生成MyBatis配置文件

自动映射

首先编写无参的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;
    }
}

然后创建数据库

这次使用的是开发环境创建的数据库
数据库类型如下

编写映射文件


	
	

此时结果会自动映射到VO对象中,根据VO对象自动调用set方法,然后进行赋值操作

此时DAO层接口

    /**
     * @param id
     * @return
     */
    public Role getRole(int id);

传递多个参数

如果需要传递多个参数,使用MyBatis提供的Map接口

首先新增加DAO层接口

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

接着,书写映射文件,传递参数

	

这里呢,定义了一个结果集
对于返回的数据,使用typehand进行拦截,将会调用自定义别名的role类

	
		
		
		
		
		
		
	

现在的完整文件





	
		
		
		
		
		
		
	
	
	
	
	




	
	
	
	
		
	
	
	
	
		
	
	
	
		
			
			
			
			
				
				
				
				
			
		
	
	
	
		
	

书写结果展示

<%@ 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(); //获取开始时间 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(); //获取结束时间 %> <% Iterator iterator = role.iterator(); while(iterator.hasNext()){ %> <%=((Role)iterator.next()).getNote()%> <% } %>

数据库中大概有一万多条记录,时间较长

ps 一万多条list担心内存

此时可以在此处输出查询日志,用于进行分析

注解传递参数

使用param注解传递参数

新建一个DAO接口

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

再次编写映射文件,对DAO层和SQL语句进行映射配置

	
	

再次编写展示层

<%@ 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(); //获取开始时间 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(); //获取结束时间 %> <% Iterator iterator = role.iterator(); while(iterator.hasNext()){ %> <%=((Role)iterator.next()).getNote()%> <% } %>

运行结果


MyBatis 映射器_第1张图片

你可能感兴趣的:(MyBatis 映射器)