第一部分:Common.xml (mybatis sql执行文件 这里通过java传参形成sql语句)
- 下面包含各种传参查询和传入sql语句进行查询(注入问题在java中进行处理)
- 添加和批量添加
- 批量删除
- 修改在CommonDao中
第二部分:CommonMapper.java (接口类)
第三部分:CommonDao.java 基于CommonMapper实现sql语句实现方法调用参数化(具体方法查看CommonDao类中有注释)
第四部分:Params.java,ParamCondition.java (参数接受传递类,具体参数查看此类)
第五部分:Mybatis.xml (mybatis与mysql之间的数据连接配置)
第六部分:jdbc.properties (数据源配置)
第七部分:pom.xml (maven包引用配置)
第八部分: CommonDaoTest (测试类)
Common.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="com.beijingserver.mapper.CommonMapper">
<insert id="executeAction" parameterType="String">
${value}
</insert>
<select id="findOneData" parameterType="String" resultType="java.util.Map">
${value}
</select>
<select id="findManyData" parameterType="String" resultType="java.util.Map">
${value}
</select>
<select id="findCount" parameterType="String" resultType="long">
${value}
</select>
<insert id="addEntity" parameterType="com.beijingserver.pojo.Params"
useGeneratedKeys="true" keyProperty="id">
insert into ${tables}
<foreach collection="insertMap.keys" item="k" index="index" open="(" separator="," close=")">
${k}
</foreach>
values
<foreach collection="insertMap.values" item="v" index="index"
open="(" separator="," close=")">
#{v}
</foreach>
</insert>
<insert id="batchAdd" parameterType="com.beijingserver.pojo.Params">
insert into ${tables}
<foreach collection="insertMap.keys" item="k" open="("
separator="," close=")">
<if test="null != insertMap[k]">${k}</if>
</foreach>
values
<foreach collection="bacthInsertMap" item="item" index="index" separator=",">
<foreach collection="item.values" item="v" open="("
separator="," close=")">
#{v}
</foreach>
</foreach>
</insert>
<delete id="batchDelete" parameterType="com.beijingserver.pojo.Params">
DELETE FROM ${tables} WHERE ${deleteCoulumnName}
<foreach collection="deleteList" item="id" index="index"
open="IN(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>
CommonMapper.java
package com.beijingserver.mapper;
import java.util.List;
import java.util.Map;
import com.beijingserver.pojo.Params;
public interface CommonMapper {
/**
* 执行增删改sql语句
*
* @author zhy
* @param sql sql语句
* @return
*/
public long executeAction(String sql);
/**
* 根据sql语句查询单调数据
*
* @author zhy
* @param sql sql语句
* @return
*/
public Map<String, Object> findOneData(String sql);
/**
* 根据sql语句查询多调数据
*
* @author zhy
* @param sql sql语句
* @return
*/
public List<Map<String, Object>> findManyData(String sql);
/**
* 添加实体数据
*
* @author zhy
* @param params 添加参数类
* @return
*/
public int addEntity(Params params);
/**
* 根据sql语句查询条数
*
* @author zhy
* @param sql sql语句
* @return
*/
public long findCount(String sql);
/**
* 批量添加
*
* @author zhy
* @param params 添加参数
* @return
*/
public int batchAdd(Params params);
/**
* 批量删除
*
* @author zhy
* @param params 参数类
* @return
*/
public int batchDelete(Params params);
/**
* 根据sql语句查询单个值
*
* @author zhy
* @param sql sql语句
* @return
*/
public Object findOneValue(String sql);
}
CommonDao.java
package com.beijingserver.dao;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.beijingserver.mapper.CommonMapper;
import com.beijingserver.pojo.Params;
/**
* 类名称:通用DAO实现层 描述:通用数据处理层 创建人:周化益 创建时间:2015-08-05
*/
@Repository("commonDao")
public class CommonDao<T> {
@Autowired
private CommonMapper commonMapper;
/**
* 增删改SQL操作
*
* @param sql 操作的sql语句
* @return
*/
public long executeAction(String sql) {
return commonMapper.executeAction(sql);
}
/**
* 查询单条语句
*
* @param sql 操作的sql语句
* @return
*/
public Map<String, Object> findOneData(String sql) {
return commonMapper.findOneData(sql);
}
/**
* 查询多条语句
*
* @param sql 操作的sql语句
* @return
*/
public List<Map<String, Object>> findManyData(String sql) {
return commonMapper.findManyData(sql);
}
/**
* 查找数量
*
*