java不用设置jdbcodbc数据源连接access数据库

在网上看了一些资料,基本上都是一样的。怎么试也行不通。于是我怀疑为什么那些错误的技术文章如此大张旗鼓的到处都是。今天有人问我如果把主机托管出去,也就是说上传到托管主机的web系统是没有办法设置Access数据源的。没办法,自己硬着头皮试了几次,总算没有白费我宝贵的游戏时间,呵呵。

方法是这样的,首先要写一个程序,它从db.properties文件中读取配置信息。程序我就不在这里多写了。我写的配置文件类似下面的样式:

# username 和 password 都没有 这在于所用的数据库是否设置
driver=sun.jdbc.odbc.JdbcOdbcDriver
url=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Tomcat 5.5/webapps/housetrade/HouseTrade.mdb
# url=jdbc:odbc:HouseTrade   如果要用这行的方法,那么就必须设置数据源 
username=
password=

注意上面的第三行。它是设置数据库连接的url。就是这一行实现了不用设置jdbcodbc数据源的功能。后面写了数据库的绝对路径。

 

2010-03-10 由于用的excel太多,经常把excel数据导入mysql在做一些处理。回家想想为什么不直接让excel做数据库区分析核对呢。所以实施以下。效果还是不错的

package test;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

@SuppressWarnings("unchecked")
public class Test {
	public static void main(String[] args) {
		//注册驱动程序
		try {
			Class jdbcDriver = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			DriverManager.registerDriver((Driver)jdbcDriver
					.newInstance());
			String url = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=workbook.xls";
			Connection realConn = DriverManager.getConnection(url, "", "");
			
			//String sql = "select * from [Sheet1$]";
			//String sql = "select sum(注册数据) from [Sheet1$]";
			String sql = "select sum(注册数据) from [Sheet1$] where 取到名称 like '%好%'";
			Statement stmt = realConn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			while(rs.next()) {
				//System.out.println(rs.getString(1)+ "\t" + rs.getString(2));
				//System.out.println(rs.getInt(1));
				System.out.println(rs.getDouble(1));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 

注意上面加载excel url和access是如此的一致。而在excel中每个sheet可以作为一个表,而每个表的第一行作为列元数据定义。我们在制定表的时候 要用 “[表名$]”的方式才可以。

 

2010-03-11 今天进行了一个频繁用jdbc方式更新excel的操作,结果抛出“跟新操作过于频繁的异常”。看来一些事情还是得把数据导入mysql才能做

 

2010-04-08 access excel 用sql直接操作能力是在太弱。如果不想被莫名奇妙的sql(本来就没有问题的sql)问题浪费时间,还是放弃直接使用吧。

 

你可能感兴趣的:(java,sql,jdbc,Excel,Access)