7种数据库连接的方式

时间:2022-10-24 05:43:52
1、Oracle8/8i/9i数据库(thin模式) 


  Class.forName("oracle.jdbc.driver.OracleDriver"); 


  String url="jdbc:oracle:thin:@localhost:1521:orcl"; 


  //orcl为数据库的SID 


  String user="test"; 


  String password="test"; 


  Connection conn= DriverManager.getConnection(url,user,password); 


  2、DB2数据库 


  Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 


  String url="jdbc:db2://localhost:5000/sample"; 


  //sample为你的数据库名 


  String user="admin"; 
  
  String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 


  3、Sql Server7.0/2000数据库 


  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 


  String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; 
 
  //mydb为数据库 
 
  String user="sa"; 


  String password=""; 
 
  Connection conn= DriverManager.getConnection(url,user,password); 


 
  4、Sybase数据库 
 
  Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 


  String url =" jdbc:sybase:Tds:localhost:5007/myDB"; 


  //myDB为你的数据库名 


  Properties sysProps = System.getProperties(); 
 
  SysProps.put("user","userid"); 


  SysProps.put("password","user_password"); 


  Connection conn= DriverManager.getConnection(url, SysProps); 


  5、Informix数据库 


  Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
 
  String url = 
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; 


  user=testuser;password=testpassword"; 
  
  //myDB为数据库名 
  Connection conn= DriverManager.getConnection(url); 


  6、MySQL数据库 


  Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
 
  String url ="jdbc:mysql://localhost/myDB?


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


  //myDB为数据库名 


        //使用MySQL数据库驱动
        <jndi-name>MySQLDB</jndi-name>
        <connection-url>jdbc:mysql://localhost:3306/dbname</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>user</user-name>
        <password>pass</password>




  Connection conn= DriverManager.getConnection(url); 


  7、PostgreSQL数据库 


  Class.forName("org.postgresql.Driver").newInstance(); 


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


  //myDB为数据库名 


  String user="myuser"; 


  String password="mypassword"; 


  Connection conn= DriverManager.getConnection(url,user,password);










1、Oracle8/8i/9i数据库(thin模式) 
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
//orcl为数据库的SID 
String user="test"; 
String password="test"; 
Connection conn= DriverManager.getConnection(url,user,password); 


2、DB2数据库 
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
String url="jdbc:db2://localhost:5000/sample"; 
//sample为你的数据库名 
String user="admin"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 


3、Sql Server7.0/2000数据库 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; 
//mydb为数据库 
String user="sa"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 


4、Sybase数据库 
Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 
String url =" jdbc:sybase:Tds:localhost:5007/myDB"; 
//myDB为你的数据库名 
Properties sysProps = System.getProperties(); 
SysProps.put("user","userid"); 
SysProps.put("password","user_password"); 
Connection conn= DriverManager.getConnection(url, SysProps); 


5、Informix数据库 
Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
String url = 
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; 
user=testuser;password=testpassword"; 
//myDB为数据库名 
Connection conn= DriverManager.getConnection(url); 


6、MySQL数据库 
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
//myDB为数据库名 
Connection conn= DriverManager.getConnection(url); 


7、PostgreSQL数据库 
Class.forName("org.postgresql.Driver").newInstance(); 
String url ="jdbc:postgresql://localhost/myDB" 
//myDB为数据库名 
String user="myuser"; 
String password="mypassword"; 
Connection conn= DriverManager.getConnection(url,user,password); 


















 一、连接各种数据库方式速查表
下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。


1、Oracle8/8i/9i数据库(thin模式) 
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID 
String user="test"; 
String password="test"; 
Connection conn= DriverManager.getConnection(url,user,password); 


2、DB2数据库 
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 
String user="admin"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 


3、Sql Server7.0/2000数据库 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; 
//mydb为数据库 
String user="sa"; 
String password=""; 
Connection conn= DriverManager.getConnection(url,user,password); 


4、Sybase数据库 
Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名 
Properties sysProps = System.getProperties(); 
SysProps.put("user","userid"); 
SysProps.put("password","user_password"); 
Connection conn= DriverManager.getConnection(url, SysProps); 


5、Informix数据库 
Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
String url = 
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; 
user=testuser;password=testpassword"; //myDB为数据库名 
Connection conn= DriverManager.getConnection(url); 


6、MySQL数据库 
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
//myDB为数据库名 
Connection conn= DriverManager.getConnection(url); 


7、PostgreSQL数据库 
Class.forName("org.postgresql.Driver").newInstance(); 
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 
String user="myuser"; 
String password="mypassword"; 
Connection conn= DriverManager.getConnection(url,user,password); 




8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
















MySQL高级特性----对比与其他数据库  
 
 
性能 


  对于速度的真实比较,以及不断成熟的MySQL基准套件。见10.8 使用你自己的基准。因为没有线程创建开销、一个较小的语法分析器、较少功能和简单的安全性,mSQL应该在下列方面更快些:
  执行重复的连接和断开的测试,在每个连接期间运行一个非常简单的查询。 
  有很少的列和键的插入很简单的表的INSERT操作。 
  CREATE TABLE和DROP TABLE。 
  在不是一个索引的一些东西上SELECT。(一个表扫描是很容易的。) 
  因为这些操作是如此简单,当你有更高的启动开销时,很难在这些方面变得更好。在连接被建立以后,MySQL应该性能好一些。在另一方面,MySQL比mSQL(以及大多数其他的SQL实现)在下列方面更好些:
  
  复杂的SELECT操作


  检索较大的结果(MySQL有一个更好、更快并且更安全的协议)。 
  有变长字符串的表,因为MySQL有更有效的并可在VARCHAR列上索引。 
  有很多列的表的处理。 
  由长记录的表的处理。 
  有很多许多表达式的SELECT。 
  在大表上的SELECT。 
  同时处理很多连接。MySQL充分是完全多线程化的,每个连接有它自己的线程,这意味着没有线程必须等待另一个线程(除非一个线程正在修改一张表,另外的线程想要存取)在mSQL中,一旦一个连接被建立了,所有其它线程必须等到第一个线程完成,不管连接正在运行的查询是短的或是长的。当第一个连接终止时,下一个才能工作,而此时所有其它线程再次等待,等等。 
  
  联结。如果你改变一个SELECT中的表的顺序,mSQL可能变得异常地慢。在基准套件中,比MySQL要慢超过15000倍的时间。这是由于mSQL缺乏一个联结优化器以便以最佳的顺序排定表。然而,如果你把表按完全正确的顺序放在mSQL2中并且WHERE是很简单的并使用索引列,联结将相对快些!见10.8 使用你自己的基准。 
  ORDER BY和GROUP BY。 
  DISTINCT。 
  使用TEXT或BLOB列。 
  
  SQL功能 


  GROUP BY和HAVING。mSQL根本不支持GROUP BY。MySQL支持一个有两个HAVING和下列函数: COUNT()、AVG()、MIN()、MAX()、SUM()和STD()的完整的GROUP BY。如果SELECT从一张表中检索,没有其他列被检索并且没有WHERE子句,COUNT(*)被优化以很快地返回。 MIN()和MAX()可以取字符串参数。 
  带计算的INSERT和UPDATE。MySQL能在一个INSERT或UPDATE中做计算。例如:
  mysql> UPDATE SET x=x*10+y WHERE x<20;
  
  别名,MySQL有列的别名。 
  限制列名。在MySQL中,如果一个列名在用于查询的表之间唯一的,你不必须使用完整的 合格者。 
  带函数的SELECT。MySQL有很多函数(太多不能在这里列出;见7.4 用在SELECT和WHERE子句中的函数)。
   
  磁盘空间效率 


  即,你能使你的表有多小?MySQL有很精确的类型,因此你可以创建占据很小空间的表。一个有用的MySQL数据类型的例子是MEDIUMINT,它是3个字节长。如果你有100,000,000个记录,每个记录节省甚至一个字节也是很重要的。mSQL2有一个较有限的列类型集合,因此更难于使表更小。 
  
  稳定性


  这较难客观地评价。对于MySQL稳定性的讨论,见1.5 MySQL有多么稳定?。我们没有mSQL稳定性的经验,因此我们对此不能说任何东西。 
  价格 
  另一个重要的问题是许可证。MySQL有一个比mSQL更灵活的许可证,并且也不比mSQL昂贵。无论你选择使用哪个产品,记得要至少考虑支付一个许可证或电子邮件支持的费用。(当然如果你把你出售的一个产品包括在MySQL中,你将被要求获得一个许可证。) 
  
  Perl接口 


  MySQL有与mSQL基本相同Perl接口,当有一些增加的功能。 
  
  JDBC ( Java ) 


  MySQL目前有4个JDBC驱动程序:
  gwe 驱动程序:由GWE technologies 开发的一个Java接口(不再支持)。 
  jms 驱动程序:由Xiaokun Kelvin ZHU的开发的一个改进的gwe驱动程序。 
  twz 驱动程序:由Terrence W. Zellers 开发的一个type 4 JDBC驱动程序并用于学习目的。 
  mm 驱动程序:由Mark Matthews 开发的一个type 4 JDBC驱动程序。 
  推荐的驱动程序是twz或mm驱动程序。两者均被报导工作出色。我们知道mSQL有一个 JDBC 驱动程序,但是我们对它有太少的经验不能进行比较。
  
  开发速度 


  MySQL有一个非常小的开发者队伍,但是我们是非常习惯于用C和C++编码,非常快速。因为线程、函数、GROUP BY等在mSQL中仍未实现,它有很多追赶工作要做。要想得到关于它的一些前景,你可以查看mSQL最后一年的 “HISTIRY”文件,并将它与MySQL参考书手册的新功能小节比较(见D MySQL变迁历史)。哪个快开发得最快应该是相当明显的。 
  
  实用程序 


  mSQL和MySQL都有许多有趣的第三方工具。因为向上移植(从mSQL到MySQL)是很容易的,几乎所有mSQL可用的有趣的应用程序也可被MySQL使用。MySQL带有一个简单的msql2mysql程序修正在mSQL和MySQL使用的大多数C API函数之间拼写差别。例如,它将msqlConnect()实例改变为mysql_connect()。变换一个客户程序从mSQL到MySQL通常花几分钟时间。 
  21.1.1 怎样将mSQL的工具转换到MySQL
  根据我们的经验,转换诸如使用mSQL C API的msql-tcl和msqljava工具将只花不大一小时时间,使得他们用MySQL C API工作。
  
  转换过程是: 


  在源代码上运行外壳脚本msql2mysql。这需要replace程序,它与MySQL一起散发。 
  编译。 
  修正所有编译器错误。 
  mSQL C API与MySQL C API 之间差别是: 
  
  MySQL使用一个MYSQL结构作为一种连接类型(mSQL使用一个int)。 
  mysql_connect()取一个指向一个MYSQL结构的指针作为一个参数。很容易定义全局性定义一个或使用malloc()获得一个。mysql_connect()也取两个参数指定用户和口令。你可以为了缺省使用将这些设置为NULL,NULL。 
  mysql_error()取MYSQL结构作为一个参数。如果你正在移植老的代码,只是把参数加到你的老的msql_error()编码中。 
  MySQL对所有错误返回一个错误号和一条文本错误消息。mSQL仅返回一条文字错误消息。 
  存在某些不兼容性,因为MySQL支持从同一个进程的到服务器多个连接。 
  
   mSQL和MySQL的客户机/服务器通讯协议有何不同
  有足够的差别使得不可能(或至少不容易)支持两者。
  
  它MySQL协议不同于mSQL协议的最重要的方面列在下面: 
  
  一个消息缓冲区可以包含很多结果行。 
  如果查询或结果比当前缓冲区大,消息缓冲区动态地被扩大,直到一个可配置的服务器和客户上限。 
  所有的包被编号以捕捉重复或丢失的包。 
  所有的列值以ASCII码发送。列和行的长度以紧凑的二进制编码(1、2或3个字节)发送。 
  MySQL能在未缓冲得结果中读取(不必在客户端存储完整的集合)。 
  如果一个单独写/读花了超过30秒时间,服务器关闭连接。 
  如果一个连接空闲8个小时,服务器关闭连接。 
   mSQL 2.0的SQL句法与MySQL有何不同
  列类型 
  
  MySQL 


  有下列额外的类型(比较其他的;见7.7 CREATE TABLE句法): 、
  对于一个字符串集中之一的ENUM类型。 
  对于一个字符串集中多个的SET类型。 
  对于64位整数的BIGINT类型。 
  MySQL也支持下列额外的类型属性: 
  UNSIGNED选项。 
  对于整数列的ZEROFILL选项。 
  对于是一个PRIMARY KEY的整数列的AUTO_INCREMENT选项。见20.4.29 mysql_insert_id()。 
  对所有列的DEFAULT值。 
  
  mSQL2 


  mSQL列类型对应于MySQL类型显示在下面:mSQL类型 相应的MySQL类型 
  CHAR(len) CHAR(len)