如果您希望编写代码来处理 PC 客户机数据库,如 dBase、Foxbase 或 Access,则您可能会使用第一种方法,并且拥有用户机器上的所有代码 。更大的客户机-服务器数据库产品已提供了第 3 级别的驱动程序 。
两层模型和三层模型
当数据库和查询它的应用程序在同一台机器上,而且没有服务器代码的干预时,我们将生成的程序称为两层模型 。一层是应用程序,而另一层是数据库 。在 JDBC-ODBC 桥系统中通常是这种情况 。
当一个应用程序或 applet 调用服务器,服务器再去调用数据库时,我们称其为三层模型 。当您调用称为“服务器”的程序时通常是这种情况 。
编写 JDBC 代码访问数据库
用 ODBC 注册您的数据库
连接数据库
所有与数据库有关的对象和方法都在 java.sql 包中,因此在使用 JDBC 的程序中必须加入 "import java.sql.* " 。JDBC 要连接 ODBC 数据库,您必须首先加载 JDBC-ODBC 桥驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
该语句加载驱动程序,并创建该类的一个实例 。然后,要连接一个特定的数据库,您必须创建 Connect 类的一个实例,并使用 URL 语法连接数据库 。
String url = "jdbc:odbc:Northwind";
Connection con = DriverManager.getConnection(url);
请注意,您使用的数据库名是您在 ODBC 设置面板中输入的“数据源”名称 。
URL 语法可能因数据库类型的不同而变化极大 。
jdbc:subprotocol:subname
第一组字符代表连接协议,并且始终是 jdbc 。还可能有一个子协议,在此处,子协议被指定为 odbc 。它规定了一类数据库的连通性机制 。如果您要连接其它机器上的数据库服务器,可能也要指定该机器和一个子目录:
jdbc:bark//doggie/elliott
最后,您可能要指定用户名和口令,作为连接字符串的一部分:
jdbc:bark//doggie/elliot;UID=GoodDog;PWD=woof
访问MSSQL Server方法:(驱动程序需要:msutil.jar,msbase.jar,mssqlServer.jar)
DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver
URL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo
username=sa
password=
maxcon=10
mincon=1
poolName=SkyDev
利用我们开发的数据库类,使用方法如下:
DbObject DbO = new DbObject(new SqlServerConnectionFactory("localhost",
1433, "demo", "sa", ""));
Connection con = DbO.getConnection();
//类代码
package skydev.modules.data;
public final class SqlServerConnectionFactory
extends ConnectionFactory {
private final String dbDriver =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String host;
private int port;
private String databaseName;
public SqlServerConnectionFactory() {
super.setDriverName(dbDriver);
}
/**
*
* @param host 数据库所在的主机名:如"localhost"
* @param port SQL服务器运行的端口号,如果使用缺省值 1433,传入一个负数即可
* @param databaseName 数据库名称
* @param userName 用户名
* @param password 口令
*/
public SqlServerConnectionFactory(String host,
int port,
String databaseName,
String userName,
String password) {
this.setHost(host);
this.setPort(port);
this.setDatabaseName(databaseName);
this.setUserName(userName);
this.setPassword(password);
init();
}
private void init() {
super.setDriverName(dbDriver);
super.setUrl("jdbc:microsoft:sqlserver://" + host.trim() + ":" +
new Integer(port).toString() + ";DatabaseName=" +
databaseName.trim());
//super.setUrl("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo");
}
……
//------------------------------------------------------------------------------------
访问MySQL的方法:
DBDriver=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/demo
username=
password=
maxcon=5
mincon=1
poolName=zhengmao
访问数据库
一旦连接到数据库,就可以请求表名以及表列的名称和内容等信息,而且您可以运行 SQL 语句来查询数据库或者添加或修改其内容 。可用来从数据库中获取信息的对象有:
DatabaseMetaData 有关整个数据库的信息:表名、表的索引、数据库产品的名称和版本、数据库支持的操作 。
ResultSet 关于某个表的信息或一个查询的结果 。您必须逐行访问数据行,但是您可以任何顺序访问列 。
ResultSetMetaData 有关 ResultSet 中列的名称和类型的信息 。
尽管每个对象都有大量的方法让您获得数据库元素的极为详细的信息,但在每个对象中都有几种主要的方法使您可获得数据的最重要信息 。然而,如果您希望看到比此处更多的信息,建议您学习文档以获得其余方法的说明 。
推荐阅读
- 男人颈部痣相图解大全 男人脖子长痣说明什么
- 临床医学应届毕业生求职简历 2021应届毕业生个人求职简历
- 柴达木盆地位于我国的什么高原 柴达木盆地位于哪个高原我们学过的
- 5类人不宜喝玉米汁,打玉米汁是放大米还是小米
- 农历正月是几月份,农历正月是什么星座
- QQ语音时,总是听到自己的回声和对方电脑里的声音的解决办法 正在qq语音别人打会知道吗?
- 五行对应表
- 2021年江苏人均养老金替代率是多少呢
- 如何通过投资赚钱? 什么项目投资小赚钱快?
- 山根高的面相好不好 山根高说明了什么