博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)
阅读量:5966 次
发布时间:2019-06-19

本文共 13657 字,大约阅读时间需要 45 分钟。

本文引用自CKJ-CLARK

1. MySQL(

Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );

2. PostgreSQL(

Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );

3. Oracle(

Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

4. Sybase(

Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")

5. Microsoft SQLServer()

Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );

6. Microsoft SQLServer()

Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs", sUsr, sPwd );

7. ODBC

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );

8.DB2(新添加)

Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );

9.Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10

JDBC Name: jTDS

URL: 
Version: 0.5.1
Download URL: 

语法:

Class.forName("net.sourceforge.jtds.jdbc.Driver ");
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password");
or
Connection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password");

10.Postgresql

JDBC Name: PostgreSQL JDBC
URL: 
Version: 7.3.3 build 110
Download URL: 
语法:
Class.forName("org.postgresql.Driver"); 
Connection con=DriverManager.getConnection("jdbc:postgresql://host:port/database","user","password");

11.IBM AS400主机在用的JDBC语法

有装V4R4以上版本的Client Access Express
可以在C:\Program Files\IBM\Client Access\jt400\lib
找到 driver 档案 jt400.zip,并更改扩展名成为 jt400.jar
语法:
java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ());
Class.forName("com.ibm.as400.access.AS400JDBCConnection");
con = DriverManager.getConnection("jdbc:as400://IP","user","password");

12.informix

Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
String url = 
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; 
user=testuser;password=testpassword";
Lib:jdbcdrv.zip<br><br>Class.forName( "com.sybase.jdbc.SybDriver" )
url="jdbc:sybase:Tds:127.0.0.1:2638/asademo";
SybConnection connection= (SybConnection)DriverManager.getConnection(url,"dba","sql");

13.SAP DB

Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");
java.sql.Connection connection = java.sql.DriverManager.getConnection ( "jdbc:sapdb://" + host + "/" + database_name,user_name, password)

14.InterBase

String url = "jdbc:interbase://localhost/e:/testbed/database/employee.gdb";
Class.forName("interbase.interclient.Driver");
//Driver d = new interbase.interclient.Driver (); /* this will also work if you do not want the line above */
Connection conn = DriverManager.getConnection( url, "sysdba", "masterkey" );

15.HSqlDB

url:     
driver: org.hsqldb.jdbcDriver

连接方式有4种,分别为:
con-str(内存): jdbc:hsqldb.
con-str(本地): jdbc:hsqldb:/path/to/the/db/dir
con-str(http): jdbc:hsqldb:http://dbsrv
con-str(hsql): jdbc:hsqldb:hsql://dbsrv

一、直连接数据库

1 Java 连接 Oralce Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl";   Connection conn= DriverManager.getConnection(url,user,password); 2 Java 连接 MySQL Class.forName("org.gjt.mm.mysql.Driver ").newInstance(); String URL = "jdbc:mysql://localhost/test"; Connection conn= DriverManager.getConnection(url,user,password); 3 Java 连接SQLServer Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance(); String URL =” jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; Connection conn= DriverManager.getConnection(url,user,password);
4 Java 连接DB2 Class.forName(“com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String URL =”jdbc:db2://localhost:5000/sample"; Connection conn= DriverManager.getConnection(url,user,password); 5 Java 连接 Infomix Class.forName("com.informix.jdbc.IfxDriver ").newInstance(); String URL =jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver Connection conn= DriverManager.getConnection(url,user,password); 6 Java 连接 SyBase Class.forName("com.sybase.jdbc.SybDriver").newInstance(); Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps);
7 Java连接 PostgreSQL Class.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql://localhost/soft" Connection conn= DriverManager.getConnection(url,user,password);

二、 tomcat连接数据库(JNDI连接)

1、先在自己应用程序WEB-INF目录下的web.xml添加以下语句:  
   
引用资源说明
   
引用资源的JNDI名
   
引用资源的类名
   
管理者(Container)
      然后在tomcat目录/conf/server.xml文件里相应的
元素,添加如下子元素:
2、例子:以下是我的假设的项目ACMEWeb:      在相应程序的web.xml里添加 
     .....    
     
jdbc/AcmeDB
     
javax.sql.DataSource
     
Container
   
     然后再server.xml里修改:  
        
     建议你把上面的内容编写成为一个xml文件,拷到conf/Catalina/
<主机名>
/文件夹下 ------------
    
    
    
maxActive
    
20
    
    
    
maxIdle
    
10
    
    
    
maxWait
    
-1
    
            
    
username
sa
    
password
enter
    
    
driverClassName
    
com.microsoft.jdbc.sqlserver.SQLServerDriver
    
    
url
    
jdbc:microsoft:sqlserver://infor:1433;DatabaseName=infordb
    
                
    
        
    
               -------------------------------------------------------------------------- JNDI是J2EE中一个很重要的标准,通常我们是在EJB编程中用到, Tomcat4.0中提供了在JSP和Servelt中直接使用JNDI的方法,下面谈一下在Tomcat4.0中配置和使用JNDI的方法 (以通过JNDI连接数据库为例) 假设使用的数据库是mysql,实验例子在TOMCAT_HOME/webapps/DBTest目录中
A.将mysql的JDBC连接库mm.mysql-2.0.9-bin.jar放入TOMCAT_HOME/common/lib中
B.配置TOMCAT_HOME/conf/serer.xml文件在
段中加入一个Context:
这是DBTest的根路径,这是为了在DBTest中使用做准备.
C.在上面加入的
段加入
factory
org.apache.commons.dbcp.BasicDataSourceFactory
maxActive
100
maxIdle
30
maxWait
10000
username
test
password
test
driverClassName
org.gjt.mm.mysql.Driver
url
jdbc:mysql://localhost:3306/test
我们可以将按照Sample加入,主要修改的是driverClassName,url,和用户帐号;需要强调的是"jdbc/TestDB"就是JDNI要查找的Name.
D. 在JSP或servlet中使用JNDI查找服务 下面是在JSP文件中关于JNDI使用的代码(文件名记为UserHandleDB.jsp) 需要注意的是JNDI NAME要在前面加上"java:comp/env/"
<%@ page language="java"%> <%@ page import="java.util.*" %> <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %>
<% String jndi_name="java:comp/env/jdbc/TestDB"; String select_user_sql="select userid,name,birthday, email from emp"; String colnames[][]={
{"User ID","Name","Birth day","EMail"}, {"userid","name","birthday","email"}}; Vector userSet=new Vector(); Vector columnSet=new Vector();
for(int i=0;i
Context ctx = new InitialContext(); if(ctx == null ) throw new Exception("No Context");
DataSource ds = (DataSource)ctx.lookup(jndi_name);
Connection conn = ds.getConnection();
try { PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql); ResultSet resultSet = psPreparedStatement.executeQuery(); while(resultSet.next()){ columnSet=new Vector(); for(int i=0;i
E. 引用UserHandleDB.jsp(记为ViewTable.jsp)   Test Database   <%@ include file="UserHandleDB.jsp" %> 
"); for(int j=0;j
"+col+""); } out.print(""); } %>
<% for(int i=0;i
F. 在web.xml中加入 
DB Connection
jdbc/TestDB
javax.sql.DataSource
Container
这里的jdbc/TestDb要和C中Resource段的name匹配
G. 观察结果 首先确定数据库已经启动,接着启动Tomcat,如果Tomcat启动异常,可能的原因是数据库的JDBC库没有加载 最后打开浏览器,访问 就可以看到结果

三,使用框架自带连接数据库

  下面是一段Struts-config.xml配置文件中的数据源配置(使用GenericDataSource数据源实现),你可以更改相应的设置以适合你自己的系统。 
        
          
          
          
          
          
          
          
          
        
使用BasicDataSource数据源实现的配置方案如下:
        
        
                
                
                
                
                
                
                
                
                
        
  注意,你可以在你的应用系统中定义不止一个数据源,你可以根据需要定义多个数据源,并为它们分别起一个逻辑名(logical name)。这样做可以给你的应用系统提供更好的安全性和可测量性(scalability),你还可以定义一个专用于测试的数据源。   配置好DataSource以后,你就可以在你的应用系统中使用这些数据源了。下面这段代码演示了怎样在Action类的execute方法中通过这些数据源来生成数据库连接。 public ActionForward execute(         ActionMapping mapping,         ActionForm form,         HttpServletRequest request,         HttpServletResponse response)         throws Exception {
        DataSource dataSource;         Connection cnn;         try         {
                dataSource = getDataSource(request);                 cnn = dataSource.getConnection();                 // 数据连接已经建立了,你可以做你想做的事情了         }         catch (SQLException e)         {
                getServlet().log("处理数据库连接", e);         }         finally         {
                // 在finally块里包含这些代码                 // 用以保证连接最后会被关闭                 try                 {
                        cnn.close();                 }                 catch (SQLException e)                 {
                        getServlet().log("关闭数据库连接", e);                 }         } }   注意:如果你使用公共的BasicDataSource,你提供给pingQuery属性的查询语句(如果你设置了话)必须至少要能返回一行记录。 例子:SELECT COUNT(*) FROM VALIDTABLE 你可以把VALIDTABLE替换成你的数据库中包含的任何有效的表。 [使用多个数据源] 如果你需要在模块(Module)中使用多于一个的数据源,你可以在配置文件的
元素里包含一个key属性。
        
                …属性配置略, 同上…         
        
                …属性配置略, 同上…         
你代码里,你可以通过这些key获得不同的数据源。代码如下: … try {
        dataSourceA = getDataSource(request, "A");         dataSourceB = getDataSource(request, "B"); …
 
1Oracle8/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); 

 2DB2数据库

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); 

//com.mysql.jdbc.Driver
//jdbc:mysql://localhost:3306/test


 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() ;

转载地址:http://kbmax.baihongyu.com/

你可能感兴趣的文章
ajax上传图片的本质
查看>>
转]最长递增子序列问题的求解
查看>>
SilverLight:基础控件使用(6)-Slider控件
查看>>
Android写的一个设置图片查看器,可以调整透明度
查看>>
第 5 章 File Share
查看>>
判断字符串解析是JsonObject或者JsonArray
查看>>
[LeetCode] Implement strStr()
查看>>
多模块Struts应用程序的几个问题(及部分解决方法)
查看>>
1.2. MariaDB
查看>>
SpringSide示例之HelloWorld
查看>>
LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对
查看>>
日志不说谎--Asp.net的生命周期
查看>>
C#~异步编程续~.net4.5主推的await&async应用
查看>>
C#进行MapX二次开发之图层操作
查看>>
ASP.NET 运行机制详解
查看>>
C++ little errors , Big problem
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
Selenium2+python自动化34-获取百度输入联想词
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
如何解决/home/oracle: is a directory报警
查看>>