package write_read;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class ReadFileDB2 {
public ReadFileDB2() {
}
/**
* 读取某个文件夹下的所有文件目录名称,及文件存储到数据库中
* @曲敏杰 2012-07-09
* @throws ClassNotFoundException
* @throws SQLException
*/
public static boolean readfile(String filepath)
throws FileNotFoundException, IOException, ClassNotFoundException,
SQLException {
try {
File file = new File(filepath);
//如果是文件
if (!file.isDirectory()) {
System.out.println("absolutepath=" + file.getAbsolutePath());
} else if (file.isDirectory()) {
//如果是文件夹(目录)
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filepath + "\\" + filelist[i]);
if (!readfile.isDirectory()) {
//获取文件绝对路径
String pathStr = readfile.getAbsolutePath();
System.out.println("文件绝对路径=" + pathStr);
//获取'\'字符所在位置的下标添加到ArrayList中
ArrayList list = new ArrayList();
for (int j = 0; j < pathStr.length(); j++) {
if (pathStr.charAt(j) == '\\') {
list.add(j+1);
}
}
//获取客户名称开始下标
String khmcstart = list.get(1).toString();
int mcks = Integer.parseInt(khmcstart);
//获取客户名称结束下标后一位
//获取客户账号开始下标
String khmcend = list.get(2).toString();
int mcjs = Integer.parseInt(khmcend);
//获取客户账号结束下标后一位
String khzhstart = list.get(3).toString();
int zhjs = Integer.parseInt(khzhstart);
//获取客户名称
String khmcStr = pathStr.substring(mcks, mcjs - 1);
System.out.println("客户名称=" + khmcStr);
//获取客户账号
String khzhStr = pathStr.substring(mcjs, zhjs - 1);
System.out.println("客户账号=" + khzhStr);
putimg(khmcStr, khzhStr, pathStr);
} else if (readfile.isDirectory()) {
readfile(filepath + "\\" + filelist[i]);
}
}
}
} catch (FileNotFoundException e) {
System.out.println("readfile() Exception:" + e.getMessage());
}
return true;
}
/**
* 连接db2(或mysql)数据库
* 把读取的目录及文件存储到数据库中
*/
public static boolean putimg(String khmc, String khzh, String path) {
try {
//连接mysql数据库
// String url = "jdbc:mysql://localhost/img?useUnicode=true&characterEncoding=gb2312";
// Class.forName("com.mysql.jdbc.Driver");
// String username = "root";
// String password = "root";
//连接DB2数据库
String url = "jdbc:db2://localhost:50000/SJPT";
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
String username="DB_SJPT";
String password="sjpt";
Connection conn = DriverManager.getConnection(url, username,password);
int returnFlag = 0;
String picID = null;
Statement stmt = conn.createStatement();
//生成序号
String xhSql = "SELECT NEXTVAL FOR SEQ_KHXX_XH XH FROM SYSIBM.SYSDUMMY1";
ResultSet rs = stmt.executeQuery(xhSql);
if(rs.next()){
picID = rs.getString("XH");
}
String strSql = "insert into t_rp_khzl (id,khmc,khzh) values ('"+picID+"','"+khmc+"','"+khzh+"')";
stmt.execute(strSql);
PreparedStatement pstmt = null;
String updateSql = "";
File files = new File(path);
InputStream photoStream = new FileInputStream(files);
updateSql = " UPDATE t_rp_khzl SET img=? where id='"+picID+"'";
pstmt = conn.prepareStatement(updateSql);
pstmt.setBinaryStream(1, photoStream, (int) files.length());
returnFlag = pstmt.executeUpdate();
if (returnFlag >= 1) {
System.out.println("图片写入成功!");
} else {
System.out.println("图片写入失败!");
}
//关闭用到的资源
stmt.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* main方法入口,把"E:/客户资料"目录下的文件以二进制的形式出入到数据库中
*/
public static void main(String[] args) throws ClassNotFoundException,
SQLException {
try {
boolean flag = readfile("E:/客户资料");
if(flag==true){
System.out.println("文件写入已完成");
}
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}
}
分享到:
相关推荐
Android读取Assert资源目录下数据库,数据库操作; Android读取Assert资源目录下数据库,数据库操作 Android读取Assert资源目录下数据库,数据库操作
项目需要读取Excel,将数据导入数据库保存,最终可以用报表读取数据库并显示,比较简单。本文介绍了使用POI读取Excel数据并导入DB2数据库的方法。
本文将为大家介绍如何操作Excel读取数据导入DB2数据库。
从Excel中读取数据导入到数据库中,Excel中有合并单元格的列,也有超过4000字符的数据列。
C#基础操作之读取文件到数据库,值得下载和练习
C# 文件保存到数据库中或者从数据库中读取文件
图片存入数据库从数据库中读取图片.txt
java 读取txt文本文件中的数据并保存到数据库中源代码,假设txt已有格式,并以","分隔。其中的sql包需要自己去微软官网下载。
从数据库中读取数据并显示在RichTextBox从数据库中读取数据并显示在RichTextBox从数据库中读取数据并显示在RichTextBox
定时读取excel更新到数据库,用2003的excel
C#通过ftp读取DT文件,将读取到的数据保存到Oracle数据库中。
在测试的时候,需要造模拟数据,或者是将生产环境的数据导出到测试环境中去,本文记录通过python读取txt文件,并将数据导入mysql数据库 1、示例代码: import pymysql # 打开数据库连接 conn = pymysql.connect(host...
在VS2010中打开网站,浏览ReadExcel.aspx页面,这里选择你要导入的excel表,并且还可以为导入数据库中的表命名,点击Upload完成上传。注意:需要修改ReadExcel.aspx.cs页面中CreateTable中的连接字符串。
批量读取txt文件导入到数据库中,批量读取txt文件导入到数据库中 批量读取txt文件导入到数据库中,批量读取txt文件导入到数据库中
C#读取XML文件并写入数据库的三种方法,直接写入和先读取到内存再写入数据库
实现RTF文件的读取,并且把读取到的文件存储到数据库,并显示出来。
一个Android读取数据库信息的例子供大家参考学习。