java连接数据库大全_第1页
java连接数据库大全_第2页
java连接数据库大全_第3页
java连接数据库大全_第4页
java连接数据库大全_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、javajava 连接数据库大全连接数据库大全 Java 数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯 Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。 一、连接各种数据库方式速查表 下面罗列了各种数据库使用 JDBC 连接的方式,可以作为一个手册使用。 . W( |& . Y 1 ; : r 1、Oracle8/8i/9i 数据库(thin 模式) ) l5 I % J 8 p. ? 2

2、 p$ D8 G+ d String url=jdbcracle:thinlocalhost:1521rcl; /orcl 为数据库的 SID String user=test; + o! 6 0 N1 + 0 - b1 D String password=test; Connection conn= DriverManager.getConnection(url,user,password); , v$ o4 t X+ l4 K J9 S 2、DB2 数据库 % - g) l - N- m $ j$ R String url=jdbc:db2:/localhost:5000/sample;

3、/sample 为你的数据库名 String user=admin; * h6 o+ V: G) r 5 b3 # U M 5 G 1 String password=; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000 数据库 + K 4 Q 2 F) n8 h9 Y $ R 7 W String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=mydb; /mydb 为数据库 - w 7 n, p4 A

4、: Q/ o6 j 2 P 6 R String user=sa; 0 N 2 i 0 B& B 1 String password=; 0 l. T 0 9 L) U Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase 数据库 8 x- E , ) k4 g$ Q: | String url = jdbc:sybase:Tds:localhost:5007/myDB;/myDB 为你的数据库名 + * b4 _; A- $ d Properties sysProps = System.ge

5、tProperties(); SysProps.put(user,userid); SysProps.put(password,user_password); Connection conn= DriverManager.getConnection(url, SysProps); 1 n8 h3 h: E: A: 5、Informix 数据库 % r/ Q A# V 2 u8 z% y0 _1 T! - * X $ C7 K. e ; q6 S f* | s String url = user=testuser;password=testpassword; /myDB 为数据库名 / j I,

6、 f. C 3 g Connection conn= DriverManager.getConnection(url); 6、MySQL 数据库 ; E * T 5 7 Q- y J L V w $ L 7 e + + b K! G: U3 B 4 N ! String url =jdbc:mysql:/localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1 /myDB 为数据库名 , : Q 2 M4 x3 Z2 Z 2 s; g Connection co

7、nn= DriverManager.getConnection(url); * a0 % F Z) 6 L2 I 7、PostgreSQL 数据库 0 n( C& v( R , r 1 / A& 6 7 Z 8 s 5 J String url =jdbc:postgresql:/localhost/myDB /myDB 为数据库名 I( N8 _: Q s) R z String user=myuser; String password=mypassword; Connection conn= DriverManager.getConnection(url,user,pass

8、word); / i 0 E- C $ W 2 % f3 w+ l( a % / . _# J X9 w q8 R& Z 8、access 数据库直连用 ODBC 的 5 X # 7 v7 k, | 3 X 9 U z; r5 E String url=jdbcdbcriver=MicroSoft Access Driver (*.mdb);DBQ=+application.getRealPath(/Data/ReportDemo.mdb);* H) m 4 D/ |* H) _ Connection conn = DriverManager.getConnection(url,);)

9、 S Z; D 1 ? 2 | Statement stmtNew=conn.createStatement() ; $ Z a8 e l+ M 0 D 1 C8 B 二、JDBC 连接 MySql 方式 下面是使用 JDBC 连接 MySql 的一个小的教程 / r2 z8 g) U9 K6 b7 u Z 8 1、查找驱动程序 / T 9 K& h E 7 w 0 / w9 Y 1 N 0 F * R 2、动态指定 classpath3 R 5 Z $ M % s L $ f # P: I 如果需要执行时动态指定 classpath,就在执行时采用cp 方式。否则将上面的.jar文件

10、加入到 classpath 环境变量中。$ I, i 0 c $ S . A 2 h, e2 m 6 v , F 3 T& R. f. |- U 6 R 3、加载驱动程序 # E/ : v# z 1 U 4 K try0 a 7 T- p1 K 4 U+ J1 A 2 q , + T 4 L * O + o1 | i 3 Ocatch(Exception e) e.printStackTrace(); A 0 D + L 7 C- H 5 A 7 I+ 7 g1 M $ S * U! | 9 g; G, A o! G W 8 G 2 l6 d5 b 4、设置连接的 url jdbc:m

11、ysql:/localhost/databasename?pa=vapa=va 三、以下列出了在使用 JDBC 来连接 Oracle 数据库时可以使用的一些技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能(系转载) 。% D4 C 2 h# k# K + , Z # P 4 F4 | 4 H. X. f/ i 4 w 1、在客户端软件开发中使用 Thin 驱动程序 I- w: S + W8 f/ L9 | # * l; g 在开发 Java 软件方面,Oracle 的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets 等客户端软件,另外二种用于数据库

12、中的 Java 存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择 OCI 驱动程序或 Thin驱动程序。OCI 驱动程序利用 Java 本地化接口(JNI) ,通过 Oracle 客户端软件与数据库进行通讯。Thin 驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle 建议在客户端软件的开发中使用 OCI 驱动程序,这似乎是正确的。 但我建议使用 Thin 驱动程序, 因为通过多次测试发现, 在通常情况下, Thin驱动程序的性能都超过了 OCI 驱动程序。 U 4 / W: h- M % J 2、关闭自动提交功能,提高系统性能( z/ q0

13、 X 3 r9 Z: 7 L. p # 4 o Z& u 7 y 在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值 false 参数的 Connection 类的setAutoCommit()方法关闭自动提交功能,如下所示: * _8 r: x9 M6 a, v conn.setAutoCommit(false);! Z9 X( R , B 6 B b - $ | $ S! P 9 & z 5 l 值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用 Connection 类的 commit()和 rollbac

14、k()方法来人工的方式对事务进行管理。 3、在动态 SQL 或有时间限制的命令中使用 Statement 对象* s M 6 k& ? U, J 9 C# N 5 H 9 ) ?& 1 ?6 v8 D 7 N 0 G 5 W 在执行 SQL 命令时,我们有二种选择:可以使用 PreparedStatement 对象,也可以使用 Statement 对象。无论多少次地使用同一个 SQL 命令,PreparedStatement 都只对它解析和编译一次。当使用 Statement 对象时,每次执行一个 SQL 命令时,都会对它进行解析和编译。这可能会使你认为,使用 Prepared

15、Statement 对象比使用Statement 对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的 SQL 操作中,除非成批地处理 SQL 命令,我们应当考虑使用 Statement 对象。* j 2 # V V k7 | q0 J ) a% F * a( M % b, H . n4 m ? 1 e: U 此外,使用 Statement 对象也使得编写动态 SQL 命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的 SQL 命令。因此,我认为,Statement 对象可以使动态 SQL 命令的创建和执行变得更加简单。 $ _8 _ D0 Z

16、N 5 5 v9 U w) I 4、利用 helper 函数对动态 SQL 命令进行格式化( X/ W . 3 H u g2 R5 L 5 2 O+ + d# c 在创建使用 Statement 对象执行的动态 SQL 命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字 OReilly 插入表中的 SQL 命令,则必须使用二个相连的“”号替换 OReilly 中的“”号。完成这些工作的最好的方法是创建一个完成替换操作的 helper 方法, 然后在连接字符串心服用公式表达一个 SQL 命令时, 使用创建的 helper 方法。 与此类似的是, 我们可以让 helper 方

17、法接受一个 Date型的值,然后让它输出基于 Oracle 的 to_date()函数的字符串表达式。( j 8 x* c& g! r G * N 7 I: ? Y 9 a q 5、利用 PreparedStatement 对象提高数据库的总体效率 在使用PreparedStatement对象执行SQL命令时, 命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个 PreparedStatement 对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的 SQL 命令,使用

18、PreparedStatement 对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行 PreparedStatement 任务需要的时间长于 Statement任务,我会建议在除动态 SQL 命令之外的所有情况下使用 PreparedStatement 对象。 7 V , e! f4 Y F % l- R 6、在成批处理重复的插入或更新操作中使用 PreparedStatement 对象9 & n- Y 9 |. o f 4 A 如果成批地处理插入和更新操作, 就能够显著地减少它们所需要的时间。 Oracle提供的 Statement 和 Callab

19、leStatement 并不真正地支持批处理,只有PreparedStatement 对象才真正地支持批处理。我们可以使用 addBatch()和executeBatch()方法选择标准的 JDBC 批处理,或者通过利用 PreparedStatement 对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用 Oracle 专有的批处理机制,可以以如下所示的方式调用setExecuteBatch():0 S $ g5 N& T! Y( l& P PreparedStatement pstmt3D nu

20、ll; try - q( g* Z $ F h3 & Z , g% F (OraclePreparedStatement) pstmt).setExecuteBatch(30);8 U 2 D 8 + |) J ; l / ?+ w3 T: q .: H! P3 D! N- x pstmt.executeUpdate();! L 8 s 7 c; y( y! T 6 t % j% w 7 Y 4 z: K! a& a 1 j 调用 setExecuteBatch()时指定的值是一个上限, 当达到该值时, 就会自动地引发SQL 命令执行,标准的 executeUpdate()方法

21、就会被作为批处理送到数据库中。我们可以通过调用 PreparedStatement 类的 sendBatch()方法随时传输批处理任务。+ E+ | 2 j7 Z * j , 2 ? 7、使用 Oracle locator 方法插入、更新大对象(LOB)& r- Q) H( z $ w o6 U8 H; s 5 z 4 U( y/ # % T 5 o$ e1 h Oracle 的 PreparedStatement 类不完全支持 BLOB 和 CLOB 等大对象的处理,尤其是 Thin 驱动程序不支持利用 PreparedStatement 对象的 setObject()和setBin

22、aryStream()方法设置 BLOB 的值,也不支持利用 setCharacterStream()方法设置CLOB 的值。只有 locator 本身中的方法才能够从数据库中获取 LOB 类型的值。可以使用 PreparedStatement 对象插入或更新 LOB,但需要使用 locator 才能获取 LOB的值。由于存在这二个问题,因此,我建议使用 locator 的方法来插入、更新或获取LOB 的值。. W $ e/ v3 c % W& n3 ; u6 T0 c) G i 9 e) N 6 - G 8、使用 SQL92 语法调用存储过程. O 3 T 2 K e + + o, i 在调用存储过程时,我们可以使用 SQL92 或 Oracle PL/SQL,由于使用 Oracle PL/SQL 并没有什么实际的好处, 而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论