idea web项目 初代目myBatis小样 批量导入+批量删除

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">&times;</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而已,仅供参考

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页