java 如何访问 ACCESS 数据库,请给个例子,谢谢 不用自己 create system dsn, 有什么办法吗??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢,可是我看到的用 jdbc-odbc bridge 的例子,都要 create 一个 dsn,我知道 asp 里有多种写法联上数据库,也可以不生成 dsn 指接连的,java 能做到吗?? 你可以不用jbdc-odbc bridge 而直接安装某个数据库的jdbc驱动。你可以装个mysql数据库及其jdbc驱动mm.mysql-2.0.4-bin.jar体验一下! /* * Program Database 1.1 *@(#)DatabaseJDBC.java 2001/08/13 */ import java.sql.*; import java.util.*; import java.lang.*; public class DatabaseJDBC //implements DatabaseInf { static String url="jdbc:odbc:quote"; static Statement stmt; static Connection con; static PreparedStatement pstmt; public DatabaseJDBC() { try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); stmt=con.createStatement(); }catch(Exception e){ e.printStackTrace(); } } //public static void CreateTable(String TableName,String[] strname,String[] strtype) public static void CreateTable() { Statement stmt; Connection con; try{ //creat a table in datebase //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); stmt=con.createStatement(); String strQuery="create table Chat(Sender char(10),Sendto char(10),SendMsg timestamp)"; /*String strQuery="CREATE TABLE " + TableName + "("; for(int i=0;i<strname.length-1;i++) strQuery = strQuery + strname[i] + " " + strtype[i] + ","; strQuery = strQuery + strname[strname.length-1] + " " + strtype[strname.length-1] + ")"; System.out.println(strQuery);*/ stmt.executeUpdate(strQuery); System.out.println("table created!"); }catch(Exception e){ System.out.println(e); System.out.println("The table already exists!"); //e.printStackTrace(); } } public static void DropTable(String TableName) { Statement stmt; Connection con; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); //creat a table in datebase stmt=con.createStatement(); System.out.println("DROP TABLE ,if it exists."); String strQuery="DROP TABLE "+ TableName ; //System.out.println(strQuery); stmt.executeUpdate(strQuery); System.out.println("DropTable ok!"); }catch(Exception e){ System.out.println(e); System.out.println("No existing table to delete"); //e.printStackTrace(); } } //public static void InsertTable(String TableName,String[] strname,String[] message) /* public static void InsertTable() { PreparedStatement pstmt; Statement stmt; Calendar rightNow = Calendar.getInstance(); String strTime = rightNow.getTime(); String a1="liyg"; String a2="88"; timestamp a3=(java.lang.String)strTime; Connection con; int d; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); String strQuery="insert into Chat(Sender,Sendto,SendMsg)values(?,?,?)"; pstmt=con.prepareStatement(strQuery); pstmt.setString(1,a1); pstmt.setString(2,a2); pstmt.setTimestamp(3,a3); //insert some volues in table /*String strQuery="INSERT INTO " + TableName + "("; for(int i=0; i<strname.length-1; i++) strQuery = strQuery + strname[i]+","; strQuery = strQuery + strname[strname.length-1]; strQuery = strQuery + ") VALUES("; for(int i=0; i<message.length-1; i++) strQuery = strQuery + "?,"; strQuery = strQuery + "?"; strQuery = strQuery + ")"; System.out.println(strQuery); pstmt=con.prepareStatement(strQuery); for(int i=0; i<message.length; i++) pstmt.setString(i+1,message[i]); System.out.println("IsertTable: end IsertTable"); */ /* if(pstmt.executeUpdate()==1) System.out.println("IsertTable: IsertTable ok!"); else System.out.println("IsertTable: IsertTable false!"); con.close(); }catch(Exception e){ System.out.println(e); System.out.println("No table to insert!"); //e.printStackTrace(); } }*/ public static void UpdateTable(String TableName,String[] strname,String[] message1,int d,String Keywordtype, String Keywordvalue) { PreparedStatement pstmt; Connection con; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); String strQuery="UPDATE " + TableName+ " SET "; for(int i=0; i<strname.length; i++) if ( i!=d ) { strQuery = strQuery + strname[i] + "=?,"; } strQuery = strQuery.substring(0,strQuery.length()-1); strQuery = strQuery + " WHERE "+ strname[d] +"=?"; System.out.println(strQuery); pstmt=con.prepareStatement(strQuery); if(Keywordtype=="String") pstmt.setString(strname.length,Keywordvalue); else if(Keywordtype=="Int") pstmt.setInt(strname.length,Integer.parseInt(Keywordvalue)); for(int i=0;i<message1.length;i++) pstmt.setString(i+1,message1[i]); System.out.println("UpdateTable: end UpdateTable"); pstmt.executeUpdate(); System.out.println("UpdateTable: UpdateTable ok!"); con.close(); }catch(Exception e){ System.out.println(e); System.out.println("No table to update!"); //e.printStackTrace(); } } public static String[] SelectTable(String TableName,String[] strname,String[] strtype,int p,int s, String Keywordvalue1,String Keywordvalue2) { int n=0; Connection con; PreparedStatement pstmt; String[] strArray={""}; ResultSet r; String t=""; String spliter = "\u0001"; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); String strQuery="SELECT * from " + TableName+" WHERE (" +strname[p] + "=?" +" "+ "and" +" "+ strname[s] + "=?)"; System.out.println(strQuery); pstmt=con.prepareStatement(strQuery); if(strtype[p]=="String") pstmt.setString(1,Keywordvalue1); else if(strtype[p]=="Int") pstmt.setInt(1,Integer.parseInt(Keywordvalue1)); if(strtype[s]=="String") pstmt.setString(2,Keywordvalue2); else if(strtype[s]=="Int") pstmt.setInt(2,Integer.parseInt(Keywordvalue2 )); r=pstmt.executeQuery(); while(r.next()) n++; strArray = new String[n+1]; r=pstmt.executeQuery(); strArray[0]="CHAT_TABLE"; for(int k=1;k<n+1;k++) { r.next(); strArray[k]=""; for(int i=0;i<strtype.length;i++) { if(strtype[i]=="String") t=r.getString(strname[i]); else if(strtype[i]=="Int") { int d=r.getInt(strname[i]); t = t.valueOf(d); } strArray[k]+=t+spliter; } } }catch(Exception e){ System.out.println(e); System.out.println("No table to select!"); //e.printStackTrace(); } return strArray; } public static String[] SelectAll(String TableName,String[] strname,String[] strtype ) { int n=0; Connection con; Statement stmt; String[] strArray={""}; ResultSet r; String t=""; String spliter = "\u0001"; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); stmt=con.createStatement(); String strQuery="SELECT * from " + TableName; System.out.println(strQuery); r=stmt.executeQuery(strQuery); while(r.next()) n++; strArray = new String[n]; r=stmt.executeQuery(strQuery); for(int k=0;k<n;k++) { r.next(); strArray[k]=""; for(int i=0;i<strtype.length;i++) { if(strtype[i]=="String") t=r.getString(strname[i]); else if(strtype[i]=="Int") { int d=r.getInt(strname[i]); t = t.valueOf(d); } strArray[k]+=t+spliter; } } System.out.println("selectall ok!"); }catch(Exception e){ System.out.println(e); System.out.println("No table to selectall!"); //e.printStackTrace(); } return strArray; } public static void main(String[] args) { String url="jdbc:odbc:quote"; Statement stmt; Connection con; PreparedStatement pstmt; String TableName="Chat"; String Keywordtype="String"; String Keywordvalue="a3"; String[] strname={"Sender","Sendto","SendMsg"}; String[] strtype={"String","Int","String"}; String[] message={"a1","23","a3"}; String[] message1={"a2","31"}; String[] str; String keyname1="Sender",keyname2="SendMsg"; int d=2,p=0,s=2; String Keywordtype1="String", Keywordtype2="String"; String Keywordvalue1="a2", Keywordvalue2="a3"; try{ //load the driver of the jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //get a link of a datebace con=DriverManager.getConnection(url); //creat a table in datebase stmt=con.createStatement(); }catch(Exception e){ e.printStackTrace(); } //CreateTable( TableName,strname, strtype); CreateTable(); //DropTable (TableName); //InsertTable( TableName,strname,message); //InsertTable(); //InsertTable( TableName,strname,message); //UpdateTable( TableName, strname,message1,d,Keywordtype,Keywordvalue); //str=SelectTable( TableName, strname, strtype, p, s, Keywordvalue1, Keywordvalue2); str=SelectAll(TableName,strname,strtype ); for(int i=0;i<str.length;i++) System.out.println(str[i]); } } 那里有 Access 的drive download 哪里有 Access 的jdbc drive 下 其实我的目的就是为了 java 写个 application,能访问本地的access数据库然后程序给其他不是电脑专业的人用,要他们设个dsn才能用这个软件就太麻烦了用户最好安装完了就可以使用 可以把连接字符串直接写在jdbc:odbc:后面 关于JSTL中的c:forTokens的问题 如何用java获得网页里隐藏的音乐文件的真实地址? session过期事件 java.lang.ClassCastException 问题??? ProcessBuilder创建进程,不能多线程问题 【寻求】一个可以放层叠窗口的Panel的例子! jni返回多个参数的问题,请大家给点建议 怎样在客户浏览器读取web服务器上的文件?高分求教 eclipse 关于uml 画出来的图咋看不见罗?请导! 我安装完JDK1.4后,完成环境变量的设置。执行编译程序javac *.java,但出现错误提示信息bed command or file name!!
你可以装个mysql数据库及其jdbc驱动mm.mysql-2.0.4-bin.jar体验一下!
* Program Database 1.1
*@(#)DatabaseJDBC.java 2001/08/13
*/
import java.sql.*;
import java.util.*;
import java.lang.*;
public class DatabaseJDBC //implements DatabaseInf
{
static String url="jdbc:odbc:quote";
static Statement stmt;
static Connection con;
static PreparedStatement pstmt;
public DatabaseJDBC()
{ try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
stmt=con.createStatement();
}catch(Exception e){
e.printStackTrace();
}
}
//public static void CreateTable(String TableName,String[] strname,String[] strtype)
public static void CreateTable()
{
Statement stmt;
Connection con;
try{
//creat a table in datebase
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
stmt=con.createStatement();
String strQuery="create table Chat(Sender char(10),Sendto char(10),SendMsg timestamp)";
/*String strQuery="CREATE TABLE " + TableName + "(";
for(int i=0;i<strname.length-1;i++)
strQuery = strQuery + strname[i] + " " + strtype[i] + ",";
strQuery = strQuery + strname[strname.length-1] + " " + strtype[strname.length-1] + ")";
System.out.println(strQuery);*/
stmt.executeUpdate(strQuery);
System.out.println("table created!");
}catch(Exception e){
System.out.println(e);
System.out.println("The table already exists!");
//e.printStackTrace();
}
}
public static void DropTable(String TableName)
{
Statement stmt;
Connection con;
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
//creat a table in datebase
stmt=con.createStatement();
System.out.println("DROP TABLE ,if it exists.");
String strQuery="DROP TABLE "+ TableName ;
//System.out.println(strQuery);
stmt.executeUpdate(strQuery);
System.out.println("DropTable ok!");
}catch(Exception e){
System.out.println(e);
System.out.println("No existing table to delete");
//e.printStackTrace();
}
}
//public static void InsertTable(String TableName,String[] strname,String[] message)
/* public static void InsertTable()
{
PreparedStatement pstmt;
Statement stmt;
Calendar rightNow = Calendar.getInstance();
String strTime = rightNow.getTime();
String a1="liyg";
String a2="88";
timestamp a3=(java.lang.String)strTime;
Connection con;
int d;
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
String strQuery="insert into Chat(Sender,Sendto,SendMsg)values(?,?,?)";
pstmt=con.prepareStatement(strQuery);
pstmt.setString(1,a1);
pstmt.setString(2,a2);
pstmt.setTimestamp(3,a3);
//insert some volues in table
/*String strQuery="INSERT INTO " + TableName + "(";
for(int i=0; i<strname.length-1; i++)
strQuery = strQuery + strname[i]+",";
strQuery = strQuery + strname[strname.length-1];
strQuery = strQuery + ") VALUES(";
for(int i=0; i<message.length-1; i++)
strQuery = strQuery + "?,";
strQuery = strQuery + "?";
strQuery = strQuery + ")";
System.out.println(strQuery);
pstmt=con.prepareStatement(strQuery);
for(int i=0; i<message.length; i++)
pstmt.setString(i+1,message[i]);
System.out.println("IsertTable: end IsertTable"); */
/* if(pstmt.executeUpdate()==1)
System.out.println("IsertTable: IsertTable ok!");
else
System.out.println("IsertTable: IsertTable false!");
con.close();
}catch(Exception e){
System.out.println(e);
System.out.println("No table to insert!");
//e.printStackTrace();
}
}*/
public static void UpdateTable(String TableName,String[] strname,String[] message1,int d,String Keywordtype, String Keywordvalue)
{
PreparedStatement pstmt;
Connection con;
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
String strQuery="UPDATE " + TableName+ " SET ";
for(int i=0; i<strname.length; i++)
if ( i!=d )
{
strQuery = strQuery + strname[i] + "=?,";
}
strQuery = strQuery.substring(0,strQuery.length()-1);
strQuery = strQuery + " WHERE "+ strname[d] +"=?";
System.out.println(strQuery);
pstmt=con.prepareStatement(strQuery);
if(Keywordtype=="String")
pstmt.setString(strname.length,Keywordvalue);
else if(Keywordtype=="Int")
pstmt.setInt(strname.length,Integer.parseInt(Keywordvalue));
for(int i=0;i<message1.length;i++)
pstmt.setString(i+1,message1[i]);
System.out.println("UpdateTable: end UpdateTable");
pstmt.executeUpdate();
System.out.println("UpdateTable: UpdateTable ok!");
con.close();
}catch(Exception e){
System.out.println(e);
System.out.println("No table to update!");
//e.printStackTrace();
}
}
public static String[] SelectTable(String TableName,String[] strname,String[] strtype,int p,int s, String Keywordvalue1,String Keywordvalue2)
{
int n=0;
Connection con;
PreparedStatement pstmt;
String[] strArray={""};
ResultSet r;
String t="";
String spliter = "\u0001";
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
String strQuery="SELECT * from " + TableName+" WHERE (" +strname[p] + "=?" +" "+ "and" +" "+ strname[s] + "=?)";
System.out.println(strQuery);
pstmt=con.prepareStatement(strQuery);
if(strtype[p]=="String")
pstmt.setString(1,Keywordvalue1);
else if(strtype[p]=="Int")
pstmt.setInt(1,Integer.parseInt(Keywordvalue1));
if(strtype[s]=="String")
pstmt.setString(2,Keywordvalue2);
else if(strtype[s]=="Int")
pstmt.setInt(2,Integer.parseInt(Keywordvalue2 ));
r=pstmt.executeQuery();
while(r.next())
n++;
strArray = new String[n+1];
r=pstmt.executeQuery();
strArray[0]="CHAT_TABLE";
for(int k=1;k<n+1;k++)
{
r.next();
strArray[k]="";
for(int i=0;i<strtype.length;i++)
{ if(strtype[i]=="String")
t=r.getString(strname[i]);
else if(strtype[i]=="Int")
{
int d=r.getInt(strname[i]);
t = t.valueOf(d);
}
strArray[k]+=t+spliter;
}
}
}catch(Exception e){
System.out.println(e);
System.out.println("No table to select!");
//e.printStackTrace();
}
return strArray;
}
public static String[] SelectAll(String TableName,String[] strname,String[] strtype )
{
int n=0;
Connection con;
Statement stmt;
String[] strArray={""};
ResultSet r;
String t="";
String spliter = "\u0001";
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
stmt=con.createStatement();
String strQuery="SELECT * from " + TableName;
System.out.println(strQuery);
r=stmt.executeQuery(strQuery);
while(r.next())
n++;
strArray = new String[n];
r=stmt.executeQuery(strQuery);
for(int k=0;k<n;k++)
{
r.next();
strArray[k]="";
for(int i=0;i<strtype.length;i++)
{ if(strtype[i]=="String")
t=r.getString(strname[i]);
else if(strtype[i]=="Int")
{
int d=r.getInt(strname[i]);
t = t.valueOf(d);
}
strArray[k]+=t+spliter;
}
}
System.out.println("selectall ok!");
}catch(Exception e){
System.out.println(e);
System.out.println("No table to selectall!");
//e.printStackTrace();
}
return strArray;
}
public static void main(String[] args)
{
String url="jdbc:odbc:quote";
Statement stmt;
Connection con;
PreparedStatement pstmt;
String TableName="Chat";
String Keywordtype="String";
String Keywordvalue="a3";
String[] strname={"Sender","Sendto","SendMsg"};
String[] strtype={"String","Int","String"};
String[] message={"a1","23","a3"};
String[] message1={"a2","31"};
String[] str;
String keyname1="Sender",keyname2="SendMsg";
int d=2,p=0,s=2;
String Keywordtype1="String", Keywordtype2="String";
String Keywordvalue1="a2", Keywordvalue2="a3";
try{
//load the driver of the jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//get a link of a datebace
con=DriverManager.getConnection(url);
//creat a table in datebase
stmt=con.createStatement();
}catch(Exception e){
e.printStackTrace();
}
//CreateTable( TableName,strname, strtype);
CreateTable();
//DropTable (TableName);
//InsertTable( TableName,strname,message);
//InsertTable();
//InsertTable( TableName,strname,message);
//UpdateTable( TableName, strname,message1,d,Keywordtype,Keywordvalue);
//str=SelectTable( TableName, strname, strtype, p, s, Keywordvalue1, Keywordvalue2);
str=SelectAll(TableName,strname,strtype );
for(int i=0;i<str.length;i++)
System.out.println(str[i]);
}
}