MyBatis无xml配置
1.查询:@SelectProvider
2.更新:@UpdateProvider
3.删除: @DeleteProvider
4.插入:@InsertProvider
CSRCReportsMapper.java
//查询条件获取表中数据
@SelectProvider(type = CSRCReportsMapperProvider.class, method = "getRowsMbyWhere")
public List<TParColumValueVO> getRowsMbyWhere(@Param("colums") List<TParFuncColumVO> colums,
@Param("maps") Map<String, String> maps);
//更新表中数据
@UpdateProvider(type = CSRCReportsMapperProvider.class, method = "updateTable")
public void updateTable(@Param("clomList") List<TParFuncColumVO> clomList,
@Param("listvalue") List<TParColumValueVO> listvalue);
//删除数据
@DeleteProvider(type = CSRCReportsMapperProvider.class, method = "deleteTable")
public void deleteTable(@Param("table") String table, @Param("id") Integer id);
//插入数据
@InsertProvider(type = CSRCReportsMapperProvider.class, method = "insertTable")
public void insertTable(@Param("table") String table,
@Param("clomList") List<TParFuncColumVO> clomList,
@Param("listvalue") List<TParColumValueVO> listvalue,
@Param("opdate") String opdate);
CSRCReportsMapperProvider.java
public class CSRCReportsMapperProvider {
/**
* 动态查询表数据
*/
public String getRowsM(final Map<String,Object> map){
List<TParFuncColumVO> colums = (List<TParFuncColumVO>)map.get("colums");
StringBuffer sb = new StringBuffer("select ");
String table ="";
StringBuffer from = new StringBuffer("");
if (null != colums && colums.size() > 0) {
for (int i = 0; i < colums.size(); i++) {
TParFuncColumVO curfield = colums.get(i);
String curTable = curfield.getFuncid();
if (i == colums.size() - 1) {
sb.append(colums.get(i).getOthername()+"."+colums.get(i).getColumname2() + " as " + colums.get(i).getColumid());
} else {
sb.append(colums.get(i).getOthername()+"."+colums.get(i).getColumname2() + " as " + colums.get(i).getColumid() + ",");
}
if (colums.get(i).getColumname2().equals("ERROR_INFO")){
sb.append(",").append(colums.get(i).getOthername()+"."+colums.get(i).getColumname2() + " as " +"ERROR_INFO");
}
//拼接from条件
if(i == 0){
table = curTable;
from.append(" from ").append(table).append(" ").append(curfield.getOthername());
}
}
sb.append(from);
sb.append(" where 1=1 ");
}
return sb.toString();
}
/**
* 查询条件动态查询表数据
*/
public String getRowsMbyWhere(final Map<String,Object> map){
List<TParFuncColumVO> colums = (List<TParFuncColumVO>)map.get("colums");
Map<String, String> maps = (Map<String, String>)map.get("maps");
StringBuffer sb = new StringBuffer("select ");
String table ="";
StringBuffer from = new StringBuffer("");
if (null != colums && colums.size() > 0) {
for (int i = 0; i < colums.size(); i++) {
TParFuncColumVO curfield = colums.get(i);
String curTable = curfield.getFuncid();
if (i == colums.size() - 1) {
sb.append(colums.get(i).getOthername()+"."+colums.get(i).getColumname2() + " as " + colums.get(i).getColumid());
} else {
sb.append(colums.get(i).getOthername()+"."+colums.get(i).getColumname2() + " as " + colums.get(i).getColumid() + ",");
}
//拼接from条件
if(i == 0){
table = curTable;
from.append(" from ").append(table).append(" ").append(curfield.getOthername());
}
}
sb.append(from);
sb.append(" where 1=1 ");
//拼接查询条件
Iterator<Map.Entry<String, String>> iterator = maps.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
String value = entry.getValue();
//拼接查询条件
if (StringUtils.isNotBlank(value)){
sb.append("and "+entry.getKey()+" like '%"+entry.getValue()+"%'");
}
}
}
return sb.toString();
}
/**
* 更新表数据
*/
public String updateTable(final Map<String, Object> map) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
List<TParFuncColumVO> colums = (List<TParFuncColumVO>) map.get("clomList");
List<TParColumValueVO> listvalue = (List<TParColumValueVO>) map.get("listvalue");
StringBuffer sb = new StringBuffer("update ");
Class projectClass = TParColumValueVO.class;
String table = "";
//from条件
StringBuffer from = new StringBuffer("");
String[] strvalue = new String[colums.size()];
String[] strcolunname = new String[colums.size()];
for (int i = 0; i < listvalue.size(); i++) {
TParColumValueVO curVO = listvalue.get(i);
if (null != colums && colums.size() > 0) {
for (int j = 0; j < colums.size(); j++) {
TParFuncColumVO curfield = colums.get(j);
String curTable = curfield.getFuncid();
String fieldName = colums.get(j).getColumid();
String getter = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
Method curMethod = projectClass.getMethod(getter);
String value = (String) curMethod.invoke(curVO);
//将列值放入数组
strvalue[j] = value;
//将列名放入数组
strcolunname[j] = colums.get(j).getOthername() + "." + colums.get(j).getColumname2();
//拼接from条件
if (j == 0) {
table = curTable;
from.append(table).append(" ").append(curfield.getOthername());
}
}
}
}
sb.append(from);
sb.append(" set (");
for (int j = 0; j < colums.size(); j++) {
if (j == colums.size() - 1) {
sb.append(strcolunname[j]).append(")");
} else {
sb.append(strcolunname[j]).append(",");
}
}
sb.append("=(select ");
Map<String, String> mapid = new HashMap<>();
for (int f = 0; f < colums.size(); f++) {
if (colums.get(f).getColumname2().equals("ID")) {
mapid.put("id",strvalue[f]);
}
if (f == colums.size() - 1) {
sb.append("'").append(strvalue[f]).append("'").append(" from dual)").append(" where ").
append(colums.get(1).getOthername() + ".id").
append("=").append("'").append(mapid.get("id")).append("'");
} else {
sb.append("'").append(strvalue[f]).append("'").append(",");
}
}
return sb.toString();
}
/**
* 删除表数据
*/
public String deleteTable(final Map<String, Object> map){
String table = (String)map.get("table");
Integer id = (Integer)map.get("id");
StringBuffer sb = new StringBuffer("delete ");
sb.append("from ").append(table).append(" where ").append(table).append(".id=").append("'").append(id).append("'");
return sb.toString();
}
/**
* 插入数据
*/
public String insertTable(final Map<String, Object> map) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
String table = (String) map.get("table");
List<TParFuncColumVO> colums = (List<TParFuncColumVO>) map.get("clomList");
List<TParColumValueVO> listvalue = (List<TParColumValueVO>) map.get("listvalue");
String opdate = (String) map.get("opdate");
String[] strvalue = new String[colums.size()];
Class projectClass = TParColumValueVO.class;
StringBuffer sb = new StringBuffer("insert ");
sb.append("into ").append(table).append(" values(");
for (int i = 0; i < listvalue.size(); i++) {
TParColumValueVO curVO = listvalue.get(i);
if (null != colums && colums.size() > 0) {
for (int j = 0; j < colums.size(); j++) {
String fieldName = colums.get(j).getColumid();
String getter = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
Method curMethod = projectClass.getMethod(getter);
String value = (String) curMethod.invoke(curVO);
strvalue[j] = value;
}
}
}
for (int f = 0; f < colums.size(); f++) {
if (colums.get(f).getColumname2().equals("ID")) {
strvalue[f] = UUID.randomUUID().toString().replaceAll("-", "");
}
if (colums.get(f).getColumname2().equals("OP_DATE")){
strvalue[f] = opdate;
}
if (colums.get(f).getColumname2().equals("CHECK_TIME")) {
strvalue[f] = null;
}
if (colums.get(f).getColumname2().equals("CREATE_TIME")) {
strvalue[f] = null;
}
if (colums.get(f).getColumname2().equals("TIME_MARK")){
strvalue[f]= null;
}
if (f == colums.size() - 1) {
if(strvalue[f]!=null) {
sb.append("'").append(strvalue[f]).append("'").append(")");
}else{
sb.append(strvalue[f]).append(")");
}
} else {
if(strvalue[f]!=null) {
sb.append("'").append(strvalue[f]).append("'").append(",");
}else{
sb.append(strvalue[f]).append(",");
}
}
}
return sb.toString();
}
}