我是个新手,我现在的想做一个,是要用JAVA连接两个数据库,一个是mdb的access数据库,一个是TXT的数据库,我想通过查询mdb内表里的某一行数据来找到TXT里的数据,比如说输入mdb内表td下名为sd的数值为157的数,返回mdb内表td下名为dd与157同行的数值,通过这个数值查询到TXT数据库下以该数值同名的TXT文件内的数据。
不知道哪位高手能指点一下,在下十分感谢,另外,我想知道TXT的数据库的JAVA里的操作方法……
不知道哪位高手能指点一下,在下十分感谢,另外,我想知道TXT的数据库的JAVA里的操作方法……
解决方案 »
- 对于 instanceof 一些疑问!!
- 问点关于CLASSPATH 路径的问题。
- java threads , concurrency event etc..............
- 如何实现java备份指定数据库到指定路径?高手请指教啊
- 如何解决“找出一组数中的最大数”?
- 新手问题:为何java程序只能放在bin下才能运行通过
- 有没有介绍linux下java编程的书
- 我的第一个JAVA程序,请指导!
- 算法问题:用1和2可重复的将10个位置填满
- java中能否用布尔值作为程序进行的判断条件?如何用布尔值?
- 关于getParameterMetaData()的疑问 谢谢大家啊 我搞了好多天了
- 正则表达式匹配
用spring的话就配两个数据源。
数据库是mysql 表的形式是create table sample(
id int(11) NOT NULL auto_increment,
date varchar(20),
size varchar(20),
number varchar(20),
PRIMARY KEY(id)
)ENGINE=MyISAM DEFAULT CHARSET=GBK;其中txt文件每行数据分别插入date,size,number中
数据库连接:public static void main(String[] args) throws SQLException {
// 注册驱动程序
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK", "root", "root");
}txt文件格式为:2007.01.01 10 100
2007.01.02 10 200
2007.01.03 10 300
2007.01.04 12 400package web;import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;//插入的数据类
class Simple {
String date;
String size;
String number;
}public class Client {
// 加载数据库驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} // 连结数据库
static Connection getConnection() {
String url = "jdbc:mysql://localhost:3306/test1";
String user = "root";
String password = "123456";
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
} // 插入数据
static void insert(Simple simple) {
Connection conn = getConnection();
String sql = "INSERT INTO sample(date,size,number) VALUES(?,?,?)";
PreparedStatement sm = null;
try {
sm = conn.prepareStatement(sql);
sm.setString(1, simple.date);
sm.setString(2, simple.size);
sm.setString(3, simple.number);
sm.execute();
} catch (Exception e) {
e.printStackTrace();
}
} // 获取文本内容列表
static List<Simple> getText(String filePath) {
List<Simple> simples = new ArrayList<Simple>();
try {
FileReader reader = new FileReader(filePath);
BufferedReader bfReader = new BufferedReader(reader);
String text = null;
while ((text = bfReader.readLine()) != null) {
String[] texts = text.split(" ");
Simple simple = new Simple();
simple.date = texts[0];
simple.size = texts[1];
simple.number = texts[2];
simples.add(simple);
}
} catch (Exception e) {
e.printStackTrace();
}
return simples;
} public static void main(String[] args) {
// 获取文本内容
List<Simple> simples = getText("test.txt");
// 插入数据库
for (Simple simple : simples) {
insert(simple);
}
}
}
注:在Eclipse下,test.txt放在项目文件夹下,设置数据库驱动
那要看你这些文本有没有特定格式,格式越规范,你工作越简单。比如你都是按照分类命名文件名,并且都是CSV的格式文本。那你直接用普通IO api读写就好了。最坏情况是没有特定格式。那你只能用文本搜索引擎了,比如lucene。
...