想当初自己刚开始学java时,被如何连接数据库这个问题困扰了很久。access不懂sql不懂,可谓“百废待兴”。sql于mysql都分不清,由于 学校里还没有教数据库。所以基本上也就是自己摸着路走过来的,到了现在仍旧有很多不懂得地方,但比起刚学起时的无知却又懂了许多。如果是高手就skip 吧。
学了几天jsp深深地感觉到,其实jsp就是java,是java的一种应用,java在网络上的应用,所以说java的基础知识仍旧极端重要。两者连接数据库其实是一样的。
数据库有很多日常生活中最常用的要数access,个人出于兴趣也摆弄过mysql,ms sql 2000等数据库。mysql虽然效率很高,非常适合最为中小型的web数据库可是功能和使用太不方便了,不仅要学sql(一种通用的数据库查询控制语言)还要学习在黑屏下控制mysql这个软件。虽然免费,但个人感觉十分不爽,还有就是ms sql,微软的产品,庞大而且强大。但是要money,以后如果真的要办个大网站,估计用这个比较合适。现在的话没事就不要花这个冤枉钱了(盗版?自己看着办吧)初学的话就用access吧,一二十万条的纪录还难不倒这东西。
还要介绍一下jdbc和odbc,由于c,c++,java等语言不能够直接访问数据库,于是就需要有一个中间件来搭桥接线。odbc用于c和c++等于 语言连接数据库。jdbc则用于java连接数据库。jdbc几乎可以连接所有的数据库,当你对ms sql产生不满想转到 ibm的db2的时候只要改变一下连接方式就可以了,其他东西一律不用改动。这也是java这几年这么火的原因之一。access呢?这可是微软的东西 啊?没关系,sun公司的jdk里有一个jdbc-odbc桥接器。用这个桥接器就可以在java里用标准的sql语言来操作数据库了。
java连接access有两种连接方式,一种是将数据库文件和java源文件放在一起,也就是说这个数据库跟随这个java应用,到哪都能用。还有一种方式就是通过设置数据源的方式。这个方式有一个毛病就是换一台电脑就要重新设置一次数据源。现在讲第一种使用方法
下面是我编的一个用于连接access的类
import java.sql.*;
class DbConnecter{
public Connection conn;
DbConnecter(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//1
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}//load jdbcodbcdriver
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";//2
try {
conn=DriverManager.getConnection(url);//3
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public Connection conn;
DbConnecter(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//1
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}//load jdbcodbcdriver
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";//2
try {
conn=DriverManager.getConnection(url);//3
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
关键的就是黑体的部分。这是一个通用的类。首先要import java.sql.*;
第一条语句是说"我要使用sun公司的jdbc-odbc的桥接驱动程序"第2句就是正式载入一个叫做student.mdb的数据库文件。这个文件一般 和这个java文件在同一个目录下,如果是工程则在工程目录下。第3句产生一个叫conn的数据库连接实例。那么怎么使用者各类呢?
比如我再写一个获取这个数据库信息的类:
class DbInfor{
DbInfor() throws SQLException{
DbConnecter connecter = new DbConnecter();
DatabaseMetaData dbIfor = connecter.conn.getMetaData();
System.out.println(dbIfor.getURL());
System.out.println(dbIfor.getUserName());
System.out.println(dbIfor.getDatabaseProductName());
}
}
DbInfor() throws SQLException{
DbConnecter connecter = new DbConnecter();
DatabaseMetaData dbIfor = connecter.conn.getMetaData();
System.out.println(dbIfor.getURL());
System.out.println(dbIfor.getUserName());
System.out.println(dbIfor.getDatabaseProductName());
}
}
首先要创建一个连接对象connecter,connecter就可以创建各种操作数据库的方法了这里创建了一个dbIfor对象用于取得数据库的信息。
在写一个用于测试的main函数
public class DataBaseConnect {
public static void main(String[] args) throws SQLException{
DbInfor dbinfor= new DbInfor();
DbDisplayer display=new DbDisplayer();
}
}
public static void main(String[] args) throws SQLException{
DbInfor dbinfor= new DbInfor();
DbDisplayer display=new DbDisplayer();
}
}
这段程序一运行就会显示如下结果 jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb
admin
ACCESS
至此数据库连接成功接下来就可以通过sql语言来查询,创建,修改,删除等操作了
admin
ACCESS
本文转自 xhinkerx 51CTO博客,原文链接http://blog.51cto.com/xhinker/134202如需转载请自行联系原作者