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()%>
<%
}
%>
运行结果