设为首页 收藏本站
查看: 1116|回复: 0

[经验分享] 读取多级目录下客户资料到db2数据库中

[复制链接]

尚未签到

发表于 2016-11-17 07:45:34 | 显示全部楼层 |阅读模式
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);
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);
}
}
}

} 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) {
}

}

}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301363-1-1.html 上篇帖子: DB2不正确信息汇总-SQL CODE和SQL State有关 下篇帖子: Hibernate 在DB2数据库下生成SQL注释的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表