首页 > 其他分享 >2023.4.13每日总结

2023.4.13每日总结

时间:2023-04-13 20:58:08浏览次数:37  
标签:总结 13 java String classpath private static 2023.4 import

完成使用jdbc实现使用excel批量插入数据到数据库

package wangzhan;

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
 
 
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
 
public class ReadExcelFile {
 
    public static String TAG="EXCELToSQL";
 
    private static final String mSQLDriver = "com.mysql.jdbc.Driver";
 
    private static final String UserName="root";
    private static final String PassWord="qq2665410029";
    private static final String Url="jdbc:mysql://localhost:3306/pddabc?useSSL=false";
    private static Connection conSQL;
    private static String excelpath="C:\\Users\\王磊\\Desktop\\test.xls";
    private static Sheet sheet0=null;
    private static String val_property=null;
    private static String val_intfname=null;
 
 
    public static void main(String[] args){
 
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //加载驱动
                    Class.forName(mSQLDriver);
 
                    //建立连接
                    conSQL = DriverManager.getConnection(Url,UserName,PassWord);
                    
                    String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", "");
                    classpath = URLDecoder.decode(classpath,"utf-8");
                    System.out.println(classpath);
                    String webappRoot = classpath.replaceAll("build/classes/", "");
                    System.out.println(webappRoot);
                    String fileName = webappRoot + "src/main/webapp/test.xls";
                    System.out.println(fileName);
                    excelpath=fileName;
                    sheet0 = readSheet(excelpath,0);
                    int rows=sheet0.getRows();
                    for (int h=0; h<rows; h++){
                        val_property=readRow(sheet0,h)[0];
                        val_intfname=readRow(sheet0,h)[1];
 
                        String sql="INSERT Read_My_Excel(property,intfname) VALUES('"+ val_property +
                                "','"+ val_intfname + "');";
                        //创建statement对象,用来执行SQL语句
                        Statement st = conSQL.createStatement();
 
 
                        st.executeUpdate(sql);
                    }
 
                }catch (Exception e){
                    e.printStackTrace();
                }
 
 
 
            }
        }).start();
 
    }
 
//由于我的EXCEL中有好几张表,因此本方法实现的是获取Sheet对象
    public static Sheet readSheet(String filepath, int sheetcount){
        Sheet sheet=null;
 
        if ( null != filepath && !"".equals(filepath.trim())){
            Workbook workbook= null;
            InputStream inputStream = null;
            try {
                inputStream= new FileInputStream(filepath);
                workbook = Workbook.getWorkbook(inputStream);
                if (null == workbook){
                    return null;
                }
                sheet = workbook.getSheet(sheetcount);
 
                if (null == sheet){
                    return null;
                }else{
                    return sheet;
                }
 
 
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                if (null != inputStream){
                    try{
                        inputStream.close();
                    }catch (Exception e){
                        e.printStackTrace();
                    }
 
                }
            }
 
        }
        return sheet;
 
    }
//对一张表实现对第j条记录的读取,并存为数组结构
    public static String[] readRow(Sheet sheet, int j){
        int k = 0;
        String[] array= new String[2];
        int sheet_row = sheet.getRows();
        for( k=0; k<sheet_row; k++ ){
            if(j == k){
                Cell[] cells=sheet.getRow(j);
                array[0]=cells[0].getContents();
                array[1]=cells[1].getContents();
                break;
            }
        }
        return array;
 
    }
}

 

标签:总结,13,java,String,classpath,private,static,2023.4,import
From: https://www.cnblogs.com/wllovelmbforever/p/17316357.html

相关文章

  • 一、图论基础知识(2023.4.13初版[个人向])
    1.图的定义和概念1.图的定义图(Graph)是由顶点的有穷非空集合V和顶点之间的边的集合E组成,通常表示为G={V,E},其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合1.图中点的数据元素称之为顶点线性表中的数据元素称为元素数中的数据元素称为结点2.线性表和树均可以没有元素,......
  • JAVAWEB-项目搭建准备工作八步骤-2023-04-13
    第一步:生成一个javamavenweb项目第二步:配置TOMCAT第三步:测试项目是否可以跑起来第四步:导入maven各个jar包+增加build解决资源导出问题<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://ww......
  • 2023/4/13
    1、输入一个整数,将其顺序反转后输出   (dowhile语句)#include<iostream>usingnamespacestd;intmain(){ intn,s; cin>>n; do{ s=n%10;          //取末尾数字 cout<<s; n=n/10;          //将原数的末尾数字割除 }while(n!=0......
  • Aws Aurora构建高级冗余和服务集成总结
    本文通过把存储在S3中的csv文件导入到Aurora数据库实例中,同时订阅一个AmazonSimpleNotificationService(SNS)来通知到指定邮箱。资源清单一个MyDBPostgresql数据库,一张表venues一个可以连接到数据库的EC2一个SNS主题myUpdatedSNS一个Lambda函数myNotifyUpdate一个S3桶mys3-pg-tes......
  • 2023-4-13美团测开二面
    1.自我介绍2.写项目的背景是什么3.为什么使用SpringCloud,主要适用于哪些功能4.为什么用MongoDB5.MongoDB和Redis哪个更快6.拷贝数组有几种方式,哪种方式效率更高效率从高到低:System.arraycopy、clone、(Arrays.copyOf、Arrays.copyOfRange)、for循环。7.Integ......
  • 随笔20230413
    突然很想找个根本不讲中文的国家生活个一年两年。远离世俗、所有人,只和自己的灵魂独处一会,仔细地问问自己,你、我究竟从何而来,又终将魂归何处。我有深厚的基础生物知识,我系统学习过大量的理工科知识,我理解万事万物都有其运行的规律我明白一切缘起都终将湮灭可是我还是固执的认......
  • 4.13
    Android中wrap_parent、match_parent、fill_parent是什么意思,有什么区别?1、wrap是扩展空间,并且强制性占用整个空间,不给其他控件留地方。2、match的话是指“填充满”父容器,有自动调整的功能。区别:1、wrap_content设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全......
  • 13文件操作
    文件操作文件读写语法:open(file,mode,encoding)参数:file——文件所在位置(相对路径、绝对路径)mode——操作文件的模式encoding——文件的编码格式相对路径:基于目前的路径获取绝对路径:一个完整的路径操作文件的模式:r-读w-写a-追加模式描述r以只读......
  • 打卡4.13
    #include<iostream>usingnamespacestd;classTime{public:      Time();      friendvoiddisplay();private:      inthour,minu,sec;};Time::Time(){     hour=11;      minu=11;      sec=11;}voiddisplay(){Tim......
  • Ural 1353 Milliard Vasya's Function(DP)
    题目地址:Ural1353定义dp[i][j],表示当前位数为i位时,各位数和为j的个数。对于第i位数来说,总可以看成在前i-1位后面加上一个0~9,所以状态转移方程就很容易出来了:dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i][j-2]+.......+dp[i][j-9];最后统计即可。代码如下:#include<iostream>#i......