java JDBC连接不同的数据库写法sql,oracle,mysql

java JDBC连接不同的数据库写法sql,oracle,mysql,第1张

JDBC连接不同数据库的写法如下:

1、Oracle8/8i/9i数据库(thin模式)

ClassforName("oraclejdbcdriverOracleDriver"); 

String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID 

String user="test"; 

String password="test"; 

Connection conn= DriverManagergetConnection(url,user,password);

2、SQL Server2005及以上版本数据库

ClassforName("commicrosoftsqlserverSQLServerDriver"); 

String url="jdbc:sqlserver://localhost:1433;DatabaseName=mydb"; 

//mydb为数据库 

String user="sa"; 

String password=""; 

Connection conn= DriverManagergetConnection(url,user,password);

3、MySQL数据库

ClassforName("commysqljdbcDriver"); 

String url ="jdbc:mysql://localhost/myDB

user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 

//myDB为数据库名 

Connection conn= DriverManagergetConnection(url);

4、DB2数据库

ClassforName("comibmdb2jdbcappDB2Driver ")newInstance(); 

String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 

String user="admin"; 

String password=""; 

Connection conn= DriverManagergetConnection(url,user,password);

5、Sybase数据库

ClassforName("comsybasejdbcSybDriver")newInstance(); 

String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名 

Properties sysProps = SystemgetProperties(); 

SysPropsput("user","userid"); 

SysPropsput("password","user_password"); 

Connection conn= DriverManagergetConnection(url, SysProps);

6、Informix数据库

ClassforName("cominformixjdbcIfxDriver")newInstance(); 

String url = "jdbc:informix-sqli://123456789:1533/myDB:INFORMIXSERVER=myserver; 

user=testuser;password=testpassword"; //myDB为数据库名 

Connection conn= DriverManagergetConnection(url);

7、PostgreSQL数据库

ClassforName("orgpostgresqlDriver")newInstance(); 

String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 

String user="myuser"; 

String password="mypassword"; 

Connection conn= DriverManagergetConnection(url,user,password);

8、access数据库直连用ODBC的

ClassforName("sunjdbcodbcJdbcOdbcDriver") ;

String url="jdbc:odbc:Driver={MicroSoft Access Driver 

(mdb)};DBQ="+applicationgetRealPath("/Data/ReportDemomdb");

Connection conn = DriverManagergetConnection(url,"","");

Statement stmtNew=conncreateStatement() ;

Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库 *** 作二进制代码库,例如在oracle for windows中就是oci dll 文 件)

jdbc-odbc桥 | odbc | 厂商DB代码---------------数据库Server

只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的

但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的因为,你不可能要求所有客户都能找到odbc driver

=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。

简述JDBC提供的连接数据库的几种方法。 1)与数据源直接通信:使用JDBC和数据库已制定的协议时,可使用一个驱动程序直接与数据源通信。既可以建立自己的驱动程序,也可找一个公用的。

2)通过JDBC驱动程序的通信:可连接到一个高标准的驱动程序上,该驱动程序依次与另一个可与数据源通信的专用驱动程序通信。

3)与ODBC数据源通信:一个公开可用的专用驱动程序是JDBC/ODBC桥梁驱动程序,它是Javasoft公司开发的,允许应用程序与ODBC数据源相连。

本地 JDBC 框架JDBC 是基本的 Java 技术 API,允许访问数据库。它代表最低级别的持久性策略。本地框架各不相同,但大多数有着相似的特征。大多数 JDBC 解决方案把所有的数据访问包装在数据访问对象中,对象中包装有一个关系表。从那里,您可以把数据留在结果集或者选择把结果集中的每一行映射到一个对象。Java 技术开发人员倾向于映射到轻值对象(light value objects)。一个特殊的替代方案是 Martin Fowler 的有效记录设计模式,这种设计模式提供针对数据表中行的包装程序。每一个有效记录都有访问每一列的方法,以及保存、删除或更新行的方法。长处基于 JDBC 的解决方案提供良好的控制能力。您要写更多的代码来解决预料中的问题,但是您有访问数据库的所有权利,并且可以让它只做您想要它做的事。纯 JDBC 给予您非常好的灵活性。弱点关系数据库和对象并不是一回事 —— 这里有一点分歧。您不得不处理一些面向对象的概念,如继承。您还必须自己管理每一个对象,写查询程序来完成创建、读取、更新或删除 *** 作。如果要提升性能,需要提供您自己的缓存。总结对于那些技术不好但了解 SQL 的 Java 程序员来说,JDBC 是一个很好的选择。如果您需要更好的访问 SQL 或者在进行批处理计算或报告,那么 JDBC 也能胜任。变种有几个框架和工具可以帮助您扩展 JDBC。一些工具,像 Velocity 和 MiddleGen,会生成数据访问对象,给出数据库表的描述。Spring 提供依赖注入和面向方面的编程,这使得服务和依赖关系的集成更加容易。但是总得来说,应用程序结构和策略应该保持一致。对象关系映射程序OOP 和关系数据库基于根本不同的基础。通常,很难把两者混合起来。如果您有一个现有的关系模式或一个可能频繁改变的关系模式,那么 ORM 框架也许正是您需要的。大多数的 ORM 试图让您透明地处理对象。您提供一个 POJO,然后,通过使用代码生成(EJB)、字节码 *** 纵(JDO)或反射(Hibernate),框架与持久性相关联。每种技术都有它的长处和弱点,因此大多数的框架使用多种方法来完成工作。您需要告诉应用程序如何映射数据库表到应用程序的类。您可以用一个独立的 XML 文件或程序代码中的注释来达到目的。这些注释可以采取 Java 5 注释的形式(使用 XDoclet 之类的工具)。如果模式和对象模型不会走到一起,我一般会将代码和配置文件分离。持久性框架让您从数据库载入一系列的对象。您可以显示它们,或 *** 纵它们并把它们存回到关系数据库。大多数的 ORM 框架提供扩展,比如两级缓存。一般来说,第一级缓存保证事务的完整性,第二级保证跨集群中机器的一致性。尽管有多种实现,但是您应该准确理解缓存策略。您需要用于管理配置和依赖性的策略。您的应用程序可能需要选择一个事务策略并使用数据源和连接池。正如在前面的章节中所学到的那样,Spring 和 ORM 能很好地为您处理这些问题。这里有一些可用的 ORM。EJB企业级 JavaBean 提供两种标准化的持久性策略,EJB 1x 标准 和 2x 标准。第二个标准做的更好,但仍然过于复杂。EJB 专家组承认这一事实并将提供第三个标准,即 EJB 3 JSR;但是该标准将对所有的 Java Enterprise Edition (JEE) 用户可用,不仅仅是对 EJB 用户可用。因此,EJB 持久性标准实际上是一条死路,因为新的应用程序想要目标方案接近期望的 JSR 220 标准。HibernateHibernate 很快变成了持久性的事实上的标准。它快速,有效,而且是免费的。因为 Hibernate 让您制定任意的 POJO 持久性,所以它必须有一种方法把持久性关联到一个对象而不必改动代码。Hibernate 主要通过反射来提供透明性,但是它通过动态代理混合在一些运行时字节码 *** 纵中。使用反射,Hibernate 可以在事务完成前后查看对象的状态。如果状态发生改变,Hibernate 可以把它保存到数据库中。代理帮助 Hibernate 实现一些其他的特性,比如懒散加载(lazy loading)。(把动态代理想像成一个坐在目标对象前面的对象,它有一个与目标对象相同的接口。每当您调用某些方法或访问实例变量时,代理都可以自由地调用持久层。)Hibernate 仅支持关系数据库,而且它与 SQL 结合的紧密程度比大多数其他的持久性框架要高。Hibernate 使用类似于 SQL 的查询语言,这种相似性对用户的帮助很大。如果需要,您也可以在 Hibernate 中直接使用 SQL。像 JDO 一样,Hibernate 拥有两级缓存。第一级缓存叫做会话,给您一个存放持久性对象的地方。您可以把对象载入缓存并 *** 纵它们。然后决定何时通过在会话上调用刷新(flush)或提交(commit)来将更改持久存储到数据库中。Hibernate 帮助您管理关系。如果您定义一个关系,比如雇员属于部门,Hibernate 将对其进行管理。如果您载入一个部门的信息,您可以决定是在载入一个部门时载入所有的雇员信息(热切加载),还是等待载入雇员信息(懒散加载)。长处Hibernate 有一个灵活的映射机制。一些场景比其他场景付出更多的努力来映射,但是如果您能在一个关系模式中表示它,那么也许在 Hibernate 中有一种方法来映射到它。Hibernate 的性能比大多数的框架要好而且还在不断提升。文档很优秀,收购 JBoss 后,支持也在改善。JBoss 小组也把 Hibernate 放置在一个合适的位置以抢在竞争者之前实现 JSR 200 持久性标准。对 Hibernate 来说,与其他开放源码框架和商业框架的集成比其他的替代框架要好。一般来说,Spring 与 Hibernate 的集成比与其他任何一个持久性框架的集成要好。Hibernate 是一个创新的框架。在推动与 SQL 的集成上,它比大多数其他的框架走的更远。它具有一些其他框架不支持的特性,比如会话过滤。还有一支强大的公共和商业开发人员团队为其工作。弱点如果您是一家大公司,那么您可能要用不支付许可费来弥补支持上的欠缺。Hibernate 比替代框架更加难以管理。例如,您没有 SolarMetric 的 Kodo JDO 产品提供的丰富的管理控制台。您也没有 Versant 的 JDP 产品提供的丰富的用户界面工具。最后,Hibernate 不像一些持久性框架那么专业。例如,对于一些边缘情况,比如管理懒散加载,Kodo JDO 有非常好的错误信息和更加可预测的行为。JDO如果您想要带持久性框架的 Betamax,JDO 1x 就足够了 —— 虽然时运似乎在转向 JDO 2,更不用说 JSR 220 持久性标准了。在过去三年左右的时间里,最好的技术持久性框架来自 JDO 社区。JDO 通过字节码增强机制实现了透明性。JDO 2 多少会放松这个限制。JDO 提供一种叫做 JDO QL 的查询语言。对缓存和提取定义了懒散/热切提取场景的组(可以在每次查询的基础上定义这样的场景),它有正式的性能扩展。JDO 还为分离式处理(detached processing)提供一个模型,以便您能够从一个 JDO 会话(叫做 PersistenceManager)分离一个对象,改变并重新附加该对象。然后数据库应用所有更改。JDO 还为任意的数据存储提供透明的持久性。在现实世界中,大多数的数据是非关系型的,JDO 自己就能很好地为该社区提供解决方案。长处JDO 的各种供应商各有长处。Kodo 产品在需要极限持久性场景的利基市场卖得很好。Kodo 执行快速,并得到广泛的认同:它对任何一个 JDO 产品都有最好的映射支持。(我要说,就现在来看,它的映射支持是业界最好的。)Kodo 还在可管理性方面领先。(Versant 产品也有着非常快的速度。)显然,它的最大优点是针对映射支持的用户界面。弱点对 JDO 弱点的任何处理都必须从市场份额开始。作为一个标准,JDO 应当得到更好的保护,但是到目前为止,这个标准并不是非常成功。具有讽刺意味的是,JSR 220 持久性标准的出现很可能会对 JDO 造成打击。许多 JDO 供应商已经宣布在他们的产品中支持 JSR 220。您将会看到一个更强大的标准,而且好的 JDO 供应商将能够在那些市场中占有一席之地。JSR 220 标准将会开放,而且新的标准将从那里快速产生,您将会看到顾客使用同样的标准来尝试 JDO。由于疲弱的市场表现, JDO 需要在开放源码社区中更好地表现。Versant 向 Eclipse 小组捐赠它的产品是在正确的方向上前进了一步。其他Top Link、OJB 和 Cayenne 正在追赶 Hibernate,但是它们不可能赶上了(出于许多因素)。在接下来的几期文章中,我将用其他的语言如 Ruby 或 Python 来探索几个框架。混合解决方案本文将在介绍完一种混合解决方案后结束。大多数的 ORM 解决方案把一个类映射到一个关系数据库模式,而诸如 iBATIS 之类的混合框架则把类映射到一个 SQL 查询的结果。对于 iBATIS,您提供一个 XML 文件,它指定查询和从那些查询到对象的映射。您能得到 ORM 的一些好处,比如一致缓存策略、独立于代码库的 SQL 和限定的关系管理。长处iBATIS 还有一些 ORM 框架没有的优点。您有对 SQL 的严格控制的权利,不必担心对象/关系的不匹配,也不必投入几个月来学习一个对象/关系映射框架。弱点iBATIS 不会给予您 ORM 所做的一切。您需要编码查询来完成每一次的数据库访问,而不是您自己来完成访问。与数据库的结合更加紧密。并依靠您选择的 SQL 方言。然而这并不是 iBATIS 的直接局限,这些是这一类解决方案固有的本性。

首先导入驱动jar包,程序是

package test;

import javasqlConnection;

import javasqlDriverManager;

import javasqlSQLException;

public class connectionMySql {

private static Connection connection;

static{

String driver="commysqljdbcDriver";

String url="jdbc:mysql://localhost:3306/purview";

try {

ClassforName(driver);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

Systemoutprint("加载驱动失败");

eprintStackTrace();

}

try {

connection=DriverManagergetConnection(url, "root", "root");

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

public static Connection getConnection() {

return connection;

}

public static void main(String [] args) {

Connection con=connectionMySqlgetConnection();

if(!conequals("")){

Systemoutprint("数据库连接成功,连接id是:"+con);

}

}

}

前期准备,具体包括

1]

下载安装SQL Server(本文以SQL Server 2012为例)

2]

下载Microsoft JDBC Driver for SQL Server

3]

下载并且安装集成开发环境 Eclipse IDE for Java EE Developers(可选)

准备用于查询的数据库和数据表

打开SQL Server Manage Studio打开SQL Server 2012

新建一个名为UniversityDB的数据库

新建一个名为course的表并且插入如下记录

在Eclipse中建立工程并且进行配置

打开Eclipse

新建一个Dynamic Web Project

命名为JDBCdemo

将之前下载的sqljdbc4jar复制到WEB-INF/lib目录下。

如果WEB-INF目录下没有lib目录,就手动创建。

右键单击工程名,在d出的菜单中选择Build Path

如果选择 add JARs

然后选中sqljdbc4jar之后点确定。

在工程目录的WebContent目录下新建一个JSP文件

添加如下代码

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<%@ page import="javasql" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 401 Transitional//EN" ">

<html>

<head>

<meta >

<title>Insert title here</title>

</head>

<body>

<%

Statement sql;

ResultSet rs;

String driverName = "commicrosoftsqlserverjdbcSQLServerDriver";   //加载JDBC驱动

String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=UniversityDB";   //连接服务器和数据库sample

String userName = "sa";   //默认用户名

String userPwd = "wkt19910602";   //密码

Connection dbConn;

try {

ClassforName(driverName);

dbConn = DriverManagergetConnection(dbURL, userName, userPwd);

sql=dbConncreateStatement();

rs=sqlexecuteQuery("selectfrom course");

Systemoutprintln("Connection Successful!");   //如果连接成功 控制台输出Connection Successful!

outprintln("<table Border>");

outprintln("<tr><td colspan=8 align=center>用户数据</td></tr>");

outprintln("<tr>");

outprintln("<td width=100>CourseId</td>");

outprintln("<td width=100>Title</td>");

outprintln("<td width=100>Department</td>");

outprintln("<td width=100>Credits</td>");

outprintln("</tr>");

while(rsnext())

{

outprintln("<tr>");

outprintln("<td>"+rsgetString(1)+"</td>");

outprintln("<td>"+rsgetString(2)+"</td>");

outprintln("<td>"+rsgetString(3)+"</td>");

outprintln("<td>"+rsgetString(4)+"</td>");

outprintln("</tr>");

}

outprintln("</table>");

dbConnclose();

} catch (Exception e) {

eprintStackTrace();

}

%>

</body>

</html>

最后还需要配置环境变量

将sqljdbc4jar加入到classpath中。

具体方法如下(以win7为例)

计算机=>右键选择属性=>选择高级系统设置=>选择环境变量=>在classpath中添加sqljdbc4jar的所在位置。

编译运行工程,结果如下

以上就是关于java JDBC连接不同的数据库写法sql,oracle,mysql全部的内容,包括:java JDBC连接不同的数据库写法sql,oracle,mysql、数据库驱动类型 jdbc什么意思、简述JDBC提供的连接数据库的几种方法是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存