mapper层(代替dao层)
UserMapper.xml
UserController层
批量导入
涉及到的工具类
import com.wn.entity.User;
import javax.servlet.http.Part;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class CSVUtil <T> {
public static List<String> getCSVList(Part part){
String fileName = part.getSubmittedFileName();
if(fileName.endsWith(".csv")){
List<String> listStr = new ArrayList<>();
InputStream ins = null;
try {
ins = part.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(ins));
String temp = null;
while ((temp=br.readLine())!=null){
listStr.add(temp);
}
br.close();
return listStr;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
//将csv文件中的字符串转成对象
public static <T> List<T> strToUser(List<String> listStr,Class<T> cla){
List<T> list = new ArrayList<>();
//属性名
String[] filedName = listStr.get(0).split(",");
for (int i = 1; i < listStr.size(); i++) {
try {
//属性值
String[] fieldValues = listStr.get(i).split(",");
T obj = cla.newInstance();
for (int j = 0; j < filedName.length; j++) {
Field f = cla.getDeclaredField(filedName[j]);
f.setAccessible(true);
String typeName = f.getGenericType().getTypeName();
Object fieldValue = fieldValues[j];
if(typeName.contains("int") || typeName.contains("Integer")){
fieldValue = Integer.parseInt(fieldValues[j]);
}else if(typeName.contains("double") || typeName.contains("Double")){
fieldValue = Double.parseDouble(fieldValues[j]);
}else if(typeName.contains("long") || typeName.contains("Long")){
fieldValue = Long.parseLong(fieldValues[i]);
}
f.set(obj,fieldValue);
}
list.add(obj);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
return list;
}
}
工具类作用
csv文件
jsp页面代码截图详解
批量导入的模态框
<div class="modal fade" id="addManyUserModal" tabindex="-1" role="dialog" aria-labelledby="addManyUserModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="addManyUserModalLabel">选择批量导入的文件</h4>
</div>
<div class="modal-body">
<form class="text-center form-inline" id="addManyUserFormId">
<p>
选择上传文件:<input type="file" name="fileName" class="form-control" style="width:400px" placeholder="请选择头像">
</p>
<p>
<button type="button" class="btn btn-info" id="addManyUserBtn">确认导入</button>
<button type="button" class="btn btn-info" data-dismiss="modal">返回首页</button>
</p>
</form>
</div>
</div>
</div>
</div>
重点框处
批量导入的ajax
UserController层的批量删除
UserMapper.xml中的批量删除见上
前端页面批量删除的ajax
批量删除后重置为第一页
需要源码demo参考的可以私信
demo而已,仅供参考