`

读取多级目录下客户资料到mysql数据库中

阅读更多
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.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class ReadFileMysql {

public ReadFileMysql() {
}

/**
* 读取某个文件夹下的所有文件目录名称,及文件存储到数据库中
*
* @曲敏杰 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或List中
// ArrayList list = new ArrayList();
List 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+"'";
String strSql = "insert   into   t_rp_khzl (khmc,khzh,img) values (?,?,?)";
pstmt = conn.prepareStatement(strSql);
pstmt.setString(1, khmc);
pstmt.setString(2, khzh);
pstmt.setBinaryStream(3, 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) {
}

}

}
2
1
分享到:
评论

相关推荐

    eshop-cache:多级缓存架构项目,kafka读取缓存更新请求,从数据库获取缓存,写入ehcache和redis

    (3)缓存数据生产服务监听到了消息以后,就发送请求到对应的服务中调用接口以及拉取数据,此时是从mysql中查询的 (4)缓存数据生产服务拉取到了数据之后,会将数据在本地缓存中写入一份,就是ehcache中 (5)同时...

    最新小程序新闻资讯微信小程序开发后端+php.zip

    4. **数据存储优化**:采用MySQL数据库,确保数据的稳定存储和高效查询。 5. **API接口设计**:提供标准的RESTful API接口,方便前端调用和数据交互。 6. **图片与视频支持**:支持文章内容中的图片和视频上传及显示...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    asp.net知识库

    在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--...

    绿色免费人力资源管理软件┊人事、考勤、工资、考核、OA

    可从多个历史单据中复制,支持辅助数据管理,提供个税工具,应发金额、所得税、应发任输一个数据自动计算另外2个,灵活生成各类统计报表,可定制方案,查询非常方便,支持组合条件查询,支持员工数据导入,支持初始...

    风越.net代码生成器 v3.5

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    风越asp代码生成器 V3.5

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    风越ASP代码生成器FireAspCreatorv2.9.rar

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    风越.net代码生成器v2.9

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    风越ASP代码生成器2.8

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

Global site tag (gtag.js) - Google Analytics