java访问数据库四种方法的对比

java访问数据库四种方法的对比,第1张

1)JDBC-ODBC桥加ODBC驱动程序

JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

(2)本地API

这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。

(3)JDBC网络纯Java驱动程序

这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。

(4)本地协议纯Java驱动程序

这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。

据专家预计第(3)、(4)类驱动程序将成为从JDBC访问数据库的首方法。第(1)、(2)类驱动程序在直接的纯Java驱动程序还没有上市前会作为过渡方案来使用。对第(1)、(2)类驱动程序可能会有一些变种,这些变种要求有连接器,但通常这些是更加不可取的解决方案。第(3)、(4)类驱动程序提供了Java的所有优点,包括自动安装(例如,通过使用JDBC驱动程序的appletapplet来下载该驱动程序)。

首先要确定你安装了相应的数据库没有…conn 后要有url ,user ,password 参数…不加不然连不上数据库的…,要确定你有没有上述加载类…的包…,看你报的错误应该是没有相应的数据库,没有指向…

1JDBC呗,import javasql;

传统连接方式

Connection conn = getConnection();//获得连接

//注意下边应该抛出个SQLException异常

Statement stat = conncreateStatement();

statexecuteXXX("")//执行SQL语句,查询就是Query,插入,修改这种 *** 作就Update

ResultSet result; //查询后返回的结果集用这个保存

connclose//最后别忘了关闭连接

2当然是Hibernate了,是一种持久层技术,建立相应的实体后可以把数据库当对象 *** 作,非常方便,具体使用我觉得应该看看书会比较好!

我刚写了一个只有插入的,望采纳

import javasql;

import javautil;

public class TestPre {

public static void main(String[] args) {

int i=0,deptno=0;//i只做while循环使用,deptno是表dept2中的一个属性,类型是int

String dname=null,loc=null;//dname和loc也是表dept2的属性,类型是String

Scanner s=new Scanner(Systemin);

Systemoutprintln("请输入3个参数");

while(i<3){

try{

deptno=snextInt();

i++;

dname=snext();

i++;

loc=snext();

i++;

}catch(InputMismatchException e){

Systemoutprintln("输入的类型不符,退出");

Systemexit(-1);

}

}

Connection conn=null;

PreparedStatement pstmt=null;

try {

ClassforName("commysqljdbcDriver");

conn = DriverManagergetConnection("jdbc:mysql://localhost/mydata"+ "user=root&password=root");

pstmt=connprepareStatement("insert into dept2 values(,,)");

pstmtsetInt(1, deptno);

pstmtsetString(2, dname);

pstmtsetString(3, loc);

pstmtexecuteUpdate();

Systemoutprintln("插入完成");

} catch (ClassNotFoundException e) {

Systemoutprintln("连接数据库不成功,程序退出");

Systemexit(-1);

} catch (SQLException e) {

Systemoutprintln("连接数据库不成功,程序退出");

Systemexit(-1);

}

finally{

try{

if(pstmt!=null){

pstmtclose();

pstmt=null;

}

if(conn!=null){

connclose();

conn=null;

}

}catch(SQLException e){

eprintStackTrace();

}

}

}

}

你要连接的是什么数据库

连接什么数据库,你就要去下载相应的驱动

package comdaoconn;

import javasqlConnection;

import javasqlDriverManager;

import javasqlSQLException;

import comentityPubTermBean;

/

ms sql2005连接

@author Administrator

/

public class ConnByMsSql2005 {

public static Connection getConn(){

Connection conn=null;

try {

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")newInstance(); //加载驱动类

conn=DriverManagergetConnection("jdbc:sqlserver:127001:1433;databasename=数据库名","登录数据库名","密码");

} catch (InstantiationException e) {

eprintStackTrace();

} catch (IllegalAccessException e) {

eprintStackTrace();

} catch (ClassNotFoundException e) {

eprintStackTrace();

} catch (SQLException e) {

eprintStackTrace();

}

return conn;

}

}

//查询数据库表的方法

public List<Us> select() {

Connection con = null;

PreparedStatement pst = null;

ResultSet rt = null;

con = ConnByMsSql2005 getConn();//获得上面的连接数据库的对象

List<Us> list = new ArrayList<Us>();

try {

String sql="select from users";//查询语句

pst = conprepareStatement();

rt = pstexecuteQuery();//执行查询

while (rtnext()) { //循环查询的结果集

//将数据封装到javabean里

Us u = new Us();

usetId(rtgetInt(1));

usetName(rtgetString(2));

usetPwd(rtgetString(3));

//将每一个javabean对象放到list集合

listadd(u);

}

} catch (SQLException e) {

eprintStackTrace();

} finally {

//关闭数据库 *** 作对象

try {

if (rt != null) {

rtclose();

}

if (pst != null) {

pstclose();

}

if (con != null) {

conclose();

}

} catch (SQLException e) {

eprintStackTrace();

}

}

return list; //返回得到的数据库数据

}

JAVA连接数据库的方式有多种:

根据所需要的不同数据库驱动分,分为四种:

1:1类驱动。这就是JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。

2:2类驱动。这就是JDBC+厂商API的形式。厂商API一般使用C编写,所以,这种方式也不长使用。

3:3类驱动。这就是JDBC+厂商Database

Connection

Server+DataBase的形式。

这种方法就是在JAVA

DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。

4:4类驱动。这就是纯JDBC+DATABASE的连接方式。也是推荐的连接方式。这使得APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:

硬编码方式,就是在程序中硬性编入数据库连接的所须参数。

JNDI

DataSource方式。就是在程序运行的外布环境中又称(Context)设置一个datasource数据源,有一个jndi

名称,程序只须查找此名称就可得到一个数据库连接的对象。

以上就是关于java访问数据库四种方法的对比全部的内容,包括:java访问数据库四种方法的对比、谁来帮助下java访问数据库的问题,谢谢了!、在Java语言中如何实现数据库的访问等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9480099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存