/*
* 本程序主要功能:
* 通过 TestFile 类获取制定路径下的文件列表
* 并将文件列表插入数据库中的 database_file 表中
*
*/
import java.io.*;
import java.sql.*;
/*
* 本类主要功能:
* 获取 fileRoute 路径下的文件列表
*
*/
class TestFile
{
public String[] getFileName(final String fileRoute)
{
File file = new File(fileRoute);
String[] sf = file.list();
return sf;
}
}
/*
* 本类主要功能:
* 连接数据库,并向其中插入数据(指定路径下的文件列表)
*
*/
class TestDatabase
{
public Connection conn;
Statement stat = null;
String[] fileName = null;
public TestDatabase(String[] fileName)
{
this.fileName = fileName;
//加载MySQL数据库驱动
try
{
//static Class Class.forName(String className):返回与带有给定字符串名的类或接口相关联的 Class 对象
//Class.newInstance():再通过创建此 Class 对象所表示的类的一个新实例
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("数据库驱动加载成功");
}
catch(Exception e)
{
System.out.println("数据库驱动加载失败");
e.printStackTrace();
}
//以(IP, 用户名, 密码)的方式连接数据库
try
{
//DriverManager.getConnection(String url, String user, String password):
//试图建立到给定数据库 URL 的连接
//注意:因为数据库的 character_set_connection 是 GBK 编码,
//所以 "useUnicode=true&characterEncoding=gbk" 此句不能少,否则无法通过在程序中往数据库中插入中文字符
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk"
,"root" ,"");
System.out.println("数据库连接成功");
//Statement Connection.createStatement():创建一个 Statement 对象来将 SQL 语句发送到数据库
stat = conn.createStatement();
}
catch(Exception e)
{
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
//将数据插入数据库
public void insertData()
{
for(int i = 0; i < fileName.length; i++)
{
try
{
//public void execute():
//执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法
//执行数据库插入数据命令 INSERT INTO dataTableName VALUES (value_1, value_2, ...);
//实际命令 INSERT INTO database_file VALUES (fileID, fileName);
stat.execute("INSERT INTO database_file VALUES ("
+ (i+1) + ","
+ "'" + fileName[i] + "'"
+");");
System.out.println(i+1 + " " + fileName[i]);//同步显示插入的数据
Thread.sleep(1000);//延时1000毫秒
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
public class TestFileToDatabase
{
public static void main(String[] args)
{
// TODO 自动生成的方法存根
TestFile tf = new TestFile();
String[] fileStr;
fileStr = tf.getFileName("D:\\资料\\研究生资料\\P2P\\移动计算,移动云");
TestDatabase td = new TestDatabase(fileStr);
td.insertData();
}
}
9.往数据库中插入数据(数据是中文字符)
最新推荐文章于 2022-12-06 20:43:27 发布