1. 程式人生 > >JAVA從Excel中讀取資料儲存到資料庫中

JAVA從Excel中讀取資料儲存到資料庫中

1.jar包

2.資料庫資訊

3.JDBC連線資料庫工具類

package Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBhepler {
	String url ="jdbc:mysql://192.168.0.109:3306/javenforexcel?useUnicode=true&characterEncoding=utf-8";

	String user="root";
	String pwd="123456";
	Connection conn=null;
	ResultSet rs=null;
	
	public void DataBase() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn=DriverManager.getConnection(url, user, pwd);
		} catch (ClassNotFoundException e) {
			System.out.println("裝載JDBC 驅動程式失敗");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("無法連線資料庫");
			e.printStackTrace();
		}
	}
	
	//查詢
	public ResultSet Search(String sql,String str[]) {
		DataBase();
		
		try {
			PreparedStatement pst=conn.prepareStatement(sql);
			if (str!=null) {
				for (int i = 0; i < str.length; i++) {
					pst.setString(i+1, str[i]);
				}
				
			}
			
			rs=pst.executeQuery();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		return rs;
		
	}
	//增刪修改
	
	public int AddU(String sql,String str[]) {
		int a=0;
		DataBase();
		try {
			PreparedStatement pst=conn.prepareStatement(sql);
			if (str!=null) {
				for (int i = 0; i < str.length; i++) {
					pst.setString(i+1, str[i]);
				}
			}
			a=pst.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		return a;
		
		
	}
	
}

4.讀取Excel表的工具類

package service;

import java.io.File;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import Test.DBhepler;
import entity.StuEntity;
import jxl.Sheet;
import jxl.Workbook;

public class StuService {
	
	//查詢指定目錄中電子表格中所有的資料
	
	public static List<StuEntity> getAllByExcel(String file){
		List<StuEntity>list =new ArrayList<StuEntity>();
		
		try {
			Workbook rwb=Workbook.getWorkbook(new File(file));
			Sheet rs=rwb.getSheet(0);
			
			int clos=rs.getColumns();//得到所有的列
			int rows=rs.getRows();   //得到所有的行
			System.out.println("列數:"+clos+"行數:"+rows);
			
			
			for (int i = 1; i < clos; i++) {
				for (int j = 0; j < rows; j++) {
					
					String id=rs.getCell(j++,i).getContents();
					String name=rs.getCell(j++,i).getContents();
					String sex=rs.getCell(j++,i).getContents();
					String num=rs.getCell(j++,i).getContents();
					
					System.out.println("id:"+id+"name:"+name+"sex:"+sex+"num:"+num);
					StuEntity entity=new StuEntity();
					entity.setId(Integer.parseInt(id));
					entity.setName(name);
					entity.setSex(sex);
					entity.setNum(Integer.parseInt(num));
					list.add(entity);
					
					
				}
				
			}
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		return list;
		
		
	}
	
	//通過id判斷是否存在
	
	public static boolean isExist(int id) {
		
		try {
			DBhepler db=new DBhepler();
			ResultSet rs=db.Search("select * from stu where id =? ", new String[] {id+""});
			if (rs.next()) {
				return true;
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return false;
	}

}

5.將讀取到的Excel的資料儲存到資料庫,相同的就更新,不同的就新增

package excel;

import java.util.List;

import Test.DBhepler;
import entity.StuEntity;
import service.StuService;

public class TestExcelToDb {
	public static void main(String[] args) {
		//得到表格中所有的資料
		List<StuEntity>listExcel=StuService.getAllByExcel("d:/book.xls");
		
		
		DBhepler db=new DBhepler();
		
		for (StuEntity stuEntity : listExcel) {
			int id=stuEntity.getId();
			if (!StuService.isExist(id)) {
				//不存在就新增
				String sql="insert into stu(name,sex,num)values(?,?,?)";
				String[] str=new String[] {stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+""};
				db.AddU(sql, str);
				
			}else {
				//存在就更新
				String sql="update stu set name=?,sex=?,num=? where id=?";
				String[] str=new String[] {stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+"",id+""};
				db.AddU(sql, str);
			}
		}
		
	}
	
	

}

相關推薦

JAVAExcel讀取資料儲存資料庫

1.jar包 2.資料庫資訊 3.JDBC連線資料庫工具類 package Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta

一個簡單的txt檔案讀取資料插入資料庫

一: 首先我們應該先·建一個Dynamic web project 工程。 二: 定義一個讀檔案操作 package com.what.files; 在這裡我們要用到用於讀取本地檔案中的位元組資料的FileInputStream,FileInputStream繼承了Inpu

webservice(第三天)(包含一個真實專案,讀取EXCEL表格資料資料庫,其中涉及真實的隱私資料不能公開資料集)

主要內容: CXF的介紹、安裝和配置 CXF釋出SOAP協議的服務 CXF+Spring整合釋出SOAP的服務 CXF釋出REST服務 什麼是REST CXF+Spring整合釋出REST服務 綜合案例 CXF介紹: cxf是一個開源的webservice框架,提供很多完善

如何輸入流讀取資料到字串

一、讀取思路 1.使用InputStream物件構造InputStreamReader 2.使用InputStreamReader物件構造BufferedReader物件 3.構造一個StringBuilder物件,用來接收BufferedReader中的資料 二、原始碼

文字檔案讀取資料到集合,並遍歷集合

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; /*  * 需求:從文字檔案中讀取資料(每一行

dataGridView更新資料資料庫

Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load         conn.Open()         cmd = conn.CreateCommand         

已解決問題:Excel資料資料庫,本地VS執行都成功,網站釋出後不能讀取資料

問題如標題:先上程式碼 String path = Server.MapPath("~/UploadExcel/"); string FileName = path + DateTime.Now.ToString("yyyyMMddHHmmss") + fuload.

java實現k-means演算法(用的鳶尾花iris的資料集,mysq資料庫讀取資料

k-means演算法又稱k-均值演算法,是機器學習聚類演算法中的一種,是一種基於形心的劃分方法,其中每個簇的中心都用簇中所有物件的均值來表示。其思想如下: 輸入: k:簇的數目;D:包含n個物件的資料集。輸出:k個簇的集合。 方法: 從D中隨機選擇幾個物件作為起始質心

java匯入excel模板資料資料庫

一、前臺頁面其實就是一個檔案的上傳的模板 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition

Prefuse學習(二)資料庫讀取資料

prefuse是一個非常不錯的開源視覺化專案,尤其是用在social network/complex network上,個人感覺要比jung好。不過可惜的是,prefuse的user manual還在建

怎麼excel讀取資料_python

下載擴充套件庫 xlrd 讀excle xlwt 寫excle 直接在百度上搜就能下載 下載後使用 import xlrd 就可以讀excle檔案了 開啟檔案: xls = xlrd.open_workbook(fileName) 選擇表:括號內為第幾個表 sheet

資料庫配置讀寫分離後如何方便地主庫讀取資料

基於ThinkPHP5.1.15+MySQL演示主從同步配置與讀寫分離解決方案。 軟體環境:ThinkPHP5.1.15+MariaDB 10.1.30(主伺服器)+MySQL5.7(從伺服器)+Win10 兩臺伺服器IP分別為:192.168.199.234、192.1

用pythonexcel表格讀取資料生成可以放在科技論文的圖片

最近在寫畢業小論文,需要插入符合科技論文的資料圖,其實很多的設定都是規定好的,雖然自己在excel中設定一下也不花多少時間,覺得好玩想著是不是可以用python做一個自動讀取資料畫圖的小指令碼,以後寫報告也可以用得著。 其實整個思路很清楚,兩個晚上的樣子就搭好了大體的程式,

JavaCSV檔案讀取資料和寫入

.CSV檔案是以逗號分割的資料倉儲,讀取資料時從每一行中讀取一條資料元祖,也就是一條資料,再用字元分割的方式獲取表中的每一個數據項。 package com.conn.csv;

android 將資料儲存到檔案&檔案讀取資料

1.將資料儲存到檔案中,我直接貼程式碼了,基本註釋都在程式碼中,原諒我很懶。 /** * 將資料存到檔案中 * * @param context context

C# 資料庫讀取資料(ExecuteReader)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using Syst

使用poi實現java讀取excel表格並存儲到資料庫解決讀取日期格式問題(ssm框架)

本文是在搭完ssm框架之上實現的讀取excel檔案,已實現功能,如有問題可在評論區詢問使用的jar包<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency>

使用Qtexcel讀取資料資料庫

一、前言 本文介紹了一種在Qt平臺將excel表格的資料讀取至資料庫QSQLite的方法。思路為:先將excel表格轉為csv檔案,若原表格中存在著中文,還需將csv的編碼格式轉為UTF-8,接著由QFile開啟該csv檔案,將每一行的資料讀出,並寫入建立的資料庫表格。

利用poiexcel匯入資料資料庫

最近遇到了從excel向資料庫匯入資料的情況,利用POI技術實現資料的匯入: 前臺頁面程式碼如下: <input type="file" name="" id="file" style="width: 165px"> <button type="butto

Java讀取儲存EXCEL檔案圖片

/*     * 儲存excel中的圖片(以檔案形式儲存,或者存入資料庫)      *      * basePath:應用所在路徑,附件存放路徑:     * 引數:is是上傳的附件檔案流     */    public void saveSheetImgByFile(