《2022年jdbc连接数据库大全 .pdf》由会员分享,可在线阅读,更多相关《2022年jdbc连接数据库大全 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、jdbc 连接数据库大全关键字 : jdbc连接数据库大全jdbc 连接数据库大全Java 数据库连接(JDBC ) 由一组用 Java 编程语言编写的类和接口组成。 JDBC 为工具/ 数据库开发人员提供了一个标准的 API ,使他们能够用纯Java API 来编写数据库应用程序。 然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。一、连接各种数据库方式速查表下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。1、Oracle8/8i/9i数据库( thin模式)Class.forName(oracle.jdbc.dr
2、iver.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:/localho
3、st: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;
4、 /mydb 为数据库String user=sa; String password=; Connection conn= DriverManager.getConnection(url,user,password); 4、Sql Server2005数据库 String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; / 加载 JDBC驱动名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - -
5、 - - - - - - - String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=quickreport; /连接服务器和数据库sample String userName = sa; /默认用户名 String userPwd = sa123; /密码 Connection dbConn; Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 5、Sybase数据库Class.forName(com
6、.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); 6、Informix数据库Class.forName(c
7、om.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); 7、MySQL 数据库Class.forName(org.gjt.mm.mysql.Driver).newInstance(); String url =j
8、dbc:mysql:/localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1 /myDB 为数据库名Connection conn= DriverManager.getConnection(url); 8、PostgreSQL 数据库Class.forName(org.postgresql.Driver).newInstance(); String url =jdbc:postgresql:/localhost/myDB /myDB为数据库名String user=myuser; S
9、tring password=mypassword; Connection conn= DriverManager.getConnection(url,user,password); 9、access 数据库直连用 ODBC 的Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) ; String url=jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=+application.getRealPath(/Data/ReportDemo.mdb); 名师资料总结 - - -精品资料欢迎下载 - - - -
10、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - Connection conn = DriverManager.getConnection(url,); Statement stmtNew=conn.createStatement() ; 二、JDBC连接 MySql 方式下面是使用 JDBC连接 MySql 的一个小的教程1、查找驱动程序 MySQL目前提供的 java 驱动程序为 Connection/J ,可以从 MySQL 官方网站下载,并找到 mysql-connector
11、-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java 驱动程序,不需做其他配置。 2 、动态指定 classpath如果需要执行时动态指定classpath ,就在执行时采用 cp 方式。否则将上面的.jar文件加入到 classpath环境变量中。3、加载驱动程序try Class.forName(com.mysql.jdbc.Driver); System.out.println(Success loading Mysql Driver!); catch(Exception e) System.out.println(Error loading Mysql Drive
12、r!); e.printStackTrace(); 4、设置连接的 url jdbc:mysql:/localhost/databasename?pa=vapa=va 三、JAVA连接 SQL2005 (一)安装 SQL2005后,sa 无法登陆问题 : 1.用 Windows身份验证登陆 (这个应该是不会存在问题的, 在新安装好实例(SQL Server) 的情况下 , Windows 身份验证是不可能被禁用的( 安装过程中没有可以设置禁用 Windows身份验证的地方 ) Manage Studio - 菜单 文件- 连接对象资源管理器 , 身份验证中选择Windows Authentic
13、ation 2.连接成功后 , 右键你的实例 , 选择 属性 。3.在属性 窗口中 , 转到Security(安全性 )项, 在 服务器身份验证 中设置为SQL Server 和 Windows身份验证模式 , 确定, 根据提示 , 你应该重新启动 sql 服务名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4.重新启动 sql 服务后 , 照用 Windows身份验证连接 , 然后执行下面的语句启用 sa 用户, 同时清除 s
14、a 的密码 (能成功登陆后再根据你的需要设置) EXEC sp_password null,null,sa ALTER LOGIN sa ENABLE 5.语句执行完成后 , 再用 sa 连接你的实例 , 应该就没有问题了 . ( 二) 打开 SQL2005的 1433端口配置工具 -Sql Server Configuration Manager-MSSQLSERVER的协议看看 TCP/IP 协议是否启动 , 如果启动 , 右键菜单点 属性 , 在分页菜单中选 IP地址, 把IP1 和IP2 中TCP端口 为 1433, 已启用 改为 是 配置工具 -Sql Server Configur
15、ation Manager-SQL Native Client 配置-客户端协议 -TCP/IP 选择 TCP/IP 右键菜单中 属性, 确认 默认端口 是 1433, 已启用 为 是. 如果打开 1433 端口后 , 服务启动不了 , 可能是与 SQL2000 的端口冲突 , 关闭 2000的服务 , 即可! ( 三)JAVA连接 SQL2005 在环境变量 classpath 后面追加 C:Program FilesMicrosoft SQL Server2005 JDBC Driversqljdbc_1.2enusqljdbc.jar public static void main(St
16、ring args) String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; / 加载 JDBC驱动 String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=quickreport; /连接服务器和数据库sample String userName = sa; /默认用户名 String userPwd = sa123; /密码 Connection dbConn; try Class.forName(driverName); dbConn = Drive
17、rManager.getConnection(dbURL, userName, userPwd); System.out.println(Connection Successful!); /如果连接成功控制台输出 Connection Successful! catch (Exception e) e.printStackTrace(); 注:在 sql server 2000 中加载驱动和 URL路径的语句是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - -
18、 - - - - - - - String driverName = com.microsoft.jdbc.sqlserver.SQLServerDriver; String dbURL = jdbc:microsoft:sqlserver:/localhost:1433; DatabaseName=sample; 而 sql server 2005 中加载驱动和 url 的语句则为String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; String dbURL = jdbc:sqlserver:/localhost:
19、1433; DatabaseName=sample; 四、 以下列出了在使用JDBC来连接 Oracle 数据库时可以使用的一些技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。1、在客户端软件开发中使用Thin 驱动程序在开发 Java 软件方面, Oracle 的数据库提供了四种类型的驱动程序,二种用于应用软件、applets 、 servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。 在客户机端软件的开发中, 我们可以选择 OCI驱动程序或 Thin 驱动程序。 OCI驱动程序利用 Java 本地化接口( JNI),通过 Oracle客户端软件与
20、数据库进行通讯。Thin 驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle 建议在客户端软件的开发中使用OCI驱动程序,这似乎是正确的。但我建议使用Thin 驱动程序,因为通过多次测试发现,在通常情况下,Thin 驱动程序的性能都超过了OCI驱动程序。2、关闭自动提交功能,提高系统性能在第一次建立与数据库的连接时,在缺省情况下, 连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值false 参数的 Connection 类的 setAutoCommit() 方法关闭自动提交功能,如下所示:conn.setAutoCommit(false
21、); 值得注意的是,一旦关闭了自动提交功能, 我们就需要通过调用Connection类的 commit() 和 rollback()方法来人工的方式对事务进行管理。3、在动态 SQL或有时间限制的命令中使用Statement 对象在执行 SQL命令时,我们有二种选择:可以使用PreparedStatement 对象,也可以使用 Statement 对象。无论多少次地使用同一个SQL命令,PreparedStatement 都只对它解析和编译一次。当使用Statement 对象时,每次执行一个 SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement 对象比
22、使用 Statement 对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 除非成批地处理 SQL命令,我们应当考虑使用Statement 对象。此外,使用 Statement 对象也使得编写动态SQL命令更加简单, 因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为, Statement对象可以使动态 SQ
23、L命令的创建和执行变得更加简单。4、利用 helper 函数对动态 SQL命令进行格式化在创建使用 Statement 对象执行的动态SQL命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字OReilly插入表中的 SQL命令,则必须使用二个相连的“ ”号替换 OReilly中的“ ”号。完成这些工作的最好的方法是创建一个完成替换操作的helper 方法,然后在连接字符串心服用公式表达一个 SQL命令时,使用创建的helper 方法。与此类似的是,我们可以让 helper 方法接受一个 Date 型的值, 然后让它输出基于Oracle 的 to_date()函数的字符串表
24、达式。5、利用 PreparedStatement对象提高数据库的总体效率在使用 PreparedStatement 对象执行 SQL命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。 然后,每当执行同一个PreparedStatement 对象时,它就会被再解析一次, 但不会被再次编译。 在缓冲区中可以发现预编译的命令,并且可以重新使用。 在有大量用户的企业级应用软件中,经常会重复执行相同的 SQL命令, 使用 PreparedStatement 对象带来的编译次数的减少能够提高数据库的总体性能。 如果不是在客户端创建、 预备、执行 PreparedStatement 任务需要的时间
25、长于 Statement 任务, 我会建议在除动态SQL命令之外的所有情况下使用 PreparedStatement 对象。6、在成批处理重复的插入或更新操作中使用PreparedStatement对象如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle 提供的 Statement 和 CallableStatement并不真正地支持批处理,只有PreparedStatement 对象才真正地支持批处理。我们可以使用addBatch() 和executeBatch()方法选择标准的 JDBC 批处理, 或者通过利用 PreparedStatement对象的 setExe
26、cuteBatch()方法和标准的 executeUpdate() 方法选择速度更快的Oracle 专有的方法。要使用Oracle 专有的批处理机制,可以以如下所示的方式调用 setExecuteBatch():PreparedStatement pstmt3D null; try (OraclePreparedStatement) pstmt).setExecuteBatch(30); . pstmt.executeUpdate(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
27、 6 页,共 8 页 - - - - - - - - - 调用 setExecuteBatch()时指定的值是一个上限,当达到该值时,就会自动地引发 SQL命令执行, 标准的 executeUpdate() 方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement 类的 sendBatch() 方法随时传输批处理任务。7、使用 Oracle locator方法插入、更新大对象(LOB )Oracle 的 PreparedStatement 类不完全支持 BLOB 和 CLOB 等大对象的处理,尤其是 Thin 驱动程序不支持利用PreparedStatement 对
28、象的 setObject()和setBinaryStream()方法设置 BLOB 的值,也不支持利用setCharacterStream()方法设置 CLOB 的值。只有 locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用 PreparedStatement 对象插入或更新LOB , 但需要使用 locator才能获取 LOB的值。由于存在这二个问题, 因此,我建议使用 locator的方法来插入、更新或获取LOB的值。8、使用 SQL92语法调用存储过程在调用存储过程时,我们可以使用 SQL92或 Oracle PL/SQL , 由于使用 Oracle PL/SQL并没
29、有什么实际的好处,而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程时使用SQL92 。9、使用 Object SQL 将对象模式转移到数据库中既然可以将 Oracle 的数据库作为一种面向对象的数据库来使用,就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象,将它们的属性映射到关系表中,然后在这些bean中添加方法。尽管这样作在Java 中没有什么问题,但由于操作都是在数据库之外进行的,因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle 的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中
30、模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean 类。如果使用这种方式,不但 Java 应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。10、利用 SQL完成数据库内的操作我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java 等过程化的编程语言。如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE 命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set 子句中使用多列子查询而在一个UPDATE命令中完成。 当能够在单一的 SQL命令中完成任务, 何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥SQL的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -