`
daochuliudeyu
  • 浏览: 6720 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java连接数据库的几种方式(转)

 
阅读更多

JDBC硬编码连接

  1. importjava.sql.Connection;
  2. importjava.sql.DriverManager;
  3. importjava.sql.SQLException;
  4. publicclassJDBCConn{
  5. publicstaticfinalStringDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  6. publicstaticfinalStringURL="jdbc:sqlserver://localhost:1433;DatabaseName=books";
  7. publicstaticfinalStringUSER="sa";
  8. publicstaticfinalStringPWD="ok";
  9. privateConnectionconn=null;
  10. publicConnectiongetConn(){
  11. try{
  12. Class.forName(DRIVER);
  13. conn=DriverManager.getConnection(URL,USER,PWD);
  14. }catch(ClassNotFoundExceptione){
  15. //TODOAuto-generatedcatchblock
  16. e.printStackTrace();
  17. }catch(SQLExceptione){
  18. //TODOAuto-generatedcatchblock
  19. e.printStackTrace();
  20. }
  21. returnconn;
  22. }
  23. }

读取propperties配置文件连接

1.创建读取配置文件的类

  1. importjava.io.IOException;
  2. importjava.io.InputStream;
  3. importjava.util.Properties;
  4. /**
  5. *单列类:获取属性文件
  6. *@authormacau
  7. */
  8. publicclassEnvextendsProperties{
  9. /**
  10. *构造方法
  11. */
  12. privateEnv(){
  13. InputStreamis=(InputStream)this.getClass().getResourceAsStream(
  14. "/db.properties");//创建输出流
  15. try{
  16. load(is);//读取流
  17. is.close();
  18. }catch(IOExceptione){
  19. e.printStackTrace();
  20. }
  21. }
  22. privatestaticEnvinstance;//当前类实例
  23. /**
  24. *获得当前实例
  25. *@return
  26. */
  27. publicstaticEnvgetInstance(){
  28. if(instance==null){
  29. makeInstance();
  30. }
  31. returninstance;
  32. }
  33. /**
  34. *创建当前类实例
  35. */
  36. privatestaticsynchronizedvoidmakeInstance(){
  37. if(instance==null){
  38. instance=newEnv();
  39. }
  40. }
  41. }

2.通过读取配置文件的类获取数据库连接参数

  1. importjava.sql.Connection;
  2. importjava.sql.DriverManager;
  3. importjava.sql.SQLException;
  4. publicclassPropConn{
  5. privateStringdriver=Env.getInstance().getProperty("driver");
  6. privateStringurl=Env.getInstance().getProperty("url");
  7. privateStringuser=Env.getInstance().getProperty("user");
  8. privateStringpwd=Env.getInstance().getProperty("pwd");
  9. privateConnectionconn=null;
  10. publicConnectiongetConn(){
  11. try{
  12. Class.forName(driver);
  13. conn=DriverManager.getConnection(url,user,pwd);
  14. }catch(ClassNotFoundExceptione){
  15. //TODOAuto-generatedcatchblock
  16. e.printStackTrace();
  17. }catch(SQLExceptione){
  18. //TODOAuto-generatedcatchblock
  19. e.printStackTrace();
  20. }
  21. returnconn;
  22. }
  23. }

配置JNDI获取

使用JNDI,数据库连接,数据池和连接的管理都在J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。

在应用服务器连接池里进行数据库连接以及对应的jndi配置,配置好的JNDI的名称为jdbc/myds

接下来在spring利用JNDI配置数据源

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<property name="jndiName"><value>jdbc/myapp</value></property>
<wbr><wbr><wbr>&lt;/bean&gt;</wbr></wbr></wbr>

1.在Tomcat安装目录的conf目录下的context.xml文件的<Context/>标记中添加配置

  1. <Resourcename="jdbc/books"auth="Container"type="javax.sql.DataSource"
  2. maxActive="1000"maxIdel="30"maxWait="10000"
  3. username="sa"password="ok"
  4. driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  5. url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>

2.编码获取数据库连接

  1. importjava.sql.Connection;
  2. importjava.sql.SQLException;
  3. importjavax.naming.Context;
  4. importjavax.naming.InitialContext;
  5. importjavax.naming.NamingException;
  6. importjavax.sql.DataSource;
  7. publicclassJNDIConn{
  8. privateConnectionconn=null;
  9. publicConnectiongetConn(){
  10. try{
  11. Contextcontext=newInitialContext();
  12. DataSourcesource=(DataSource)context
  13. .lookup("java:comp/env/jdbc/books");
  14. conn=source.getConnection();
  15. }catch(NamingExceptione){
  16. e.printStackTrace();
  17. }catch(SQLExceptione){
  18. e.printStackTrace();
  19. }
  20. returnconn;
  21. }
  22. }

连接池

1. 目前开源的连接池有

Proxool DBCP DBPool 等

1)dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控

2)proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:proxool.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出。
但是proxool有一个优势--连接池监控,这是个很诱人的东西,大概的配置方式就是在web.xml中添加如下定义:
<wbr><wbr><wbr>&lt;servlet&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>&lt;servlet-name&gt;admin&lt;/servlet-name&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>&lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/servlet-class&gt;<wbr><wbr><wbr><wbr><wbr><br><wbr><wbr>&lt;/servlet&gt;<br><wbr><wbr>&lt;servlet-mapping&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;servlet-name&gt;admin&lt;/servlet-name&gt;<br><wbr><wbr><wbr><wbr><wbr>&lt;url-pattern&gt;/admin&lt;/url-pattern&gt;<br><wbr><wbr>&lt;/servlet-mapping&gt;<wbr><wbr><br> 并在应用启动后访问:http://localhost:8080/myapp/admin这个url即可监控<br> 不过proxool本身的包在监测使用中会有编码问题,附件中有一个<br> 解决此问题的包,参见附件压缩包中的:proxool-0.9.0RC3.jar。另外需要jdk1.5以上的环境。<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

2. 商业连接池

weblogic的连接池

websphere的连接池







分享到:
评论

相关推荐

    java连接PI数据库

    java连接PI数据库查询修改的列子

    java连接数据库的几种方式

    ### Java连接数据库的几种方式 在Java开发过程中,经常需要与数据库进行交互,这就涉及到如何用Java语言连接各种类型的数据库。本文将详细介绍八种常见的Java连接数据库的方式,并给出具体的示例代码。 #### 1. ...

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    java连接数据库的几种方法

    本文将详细介绍几种常用的Java连接SQL数据库的方式,并重点解析JDBC-ODBC桥接方式及其具体实现。 #### JDBC-ODBC桥接 JDBC-ODBC桥接是一种早期用于Java程序连接数据库的技术,它通过ODBC(Open Database ...

    java 连接数据库代码大全

    ### Java连接数据库代码大全 #### 一、概述 在Java编程中,经常需要与数据库进行交互,例如查询、更新数据等操作。为了实现这一目的,Java提供了多种方式来连接并操作不同的数据库。本文将详细介绍如何使用Java...

    Java jdbc数据库连接池总结

    Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...

    JAVA与数据库连接

    1. **与SQL Server的连接**:使用Java连接SQL Server,我们需要SQL Server的JDBC驱动,通常称为JDBC-ODBC桥接驱动或Microsoft JDBC Driver。通过`DriverManager.getConnection()`方法,我们可以建立连接。配置包括...

    java 连接各种数据库方式 连接各种数据库方式速查表

    本文将基于给定的“Java连接各种数据库方式连接各种数据库方式速查表”的标题、描述、标签和部分内容,详细阐述如何使用Java通过JDBC(Java Database Connectivity)接口连接Oracle、DB2、SQL Server、Sybase、...

    JAVA三种连接数据库的方法

    总结,Java连接数据库有多种方式,JDBC是最基础的,适用于所有Java环境;JNDI适合Java EE应用服务器环境,便于资源管理和性能优化;ORM框架则提供了更高层次的抽象,简化了数据库操作,尤其适合复杂的业务场景。...

    java连接数据库时所用到的JAR

    总之,Java连接数据库涉及的JAR文件和连接池技术是Java后端开发中的基础组件,理解它们的工作原理和使用方法对提升应用性能和稳定性具有重要意义。开发者应根据实际需求选择合适的数据库驱动和连接池实现,并确保...

    java连接数据库

    java连接数据库,一个ppt介绍了java连接数据库的几种用法。

    java连接数据库驱动的代码.txt

    ### Java连接数据库驱动的代码详解 #### 一、概述 在Java开发中,与数据库进行交互是一项非常重要的任务。为了实现这一目标,开发者通常需要编写特定的代码来加载数据库驱动并建立连接。本文将详细介绍如何使用...

    java连接不同数据库

    本文将详细介绍如何使用Java来连接几种常见的数据库系统。 #### 二、SQL Server数据库连接 对于SQL Server数据库的连接,通常采用Microsoft提供的JDBC驱动。具体步骤如下: 1. **加载驱动:** ```java Class.for...

    连接数据库的几种方法

    根据提供的文件信息,本文将详细探讨连接数据库的几种方法,并结合具体的代码实例进行解析。主要涉及的方法包括:通过 JDBC 直接连接、使用数据源(DataSource)的方式以及配置文件加载方式来连接数据库。 ### 一、...

    java链接数据库大全

    下面将详细介绍如何使用JDBC与常见的几种数据库建立连接。 ##### 1. Oracle Oracle支持多种连接方式,这里介绍的是thin模式,即直接使用TCP/IP协议连接数据库。 ```java Class.forName("oracle.jdbc.driver....

    java 连接各种数据库 总结

    在提到的压缩包文件`java连接access服务.bat`中,可能是提供了一个批处理脚本来启动一个本地的Access数据库服务,这在开发或测试环境中可能会用到。Access是一个桌面数据库系统,其JDBC驱动通常不包含在标准的Java ...

    java各种数据库jar包

    Java提供了一种标准的方式来与各种数据库进行交互,即使用Java Database Connectivity (JDBC) API。JDBC API允许Java程序通过Java代码来执行SQL语句,实现数据的增删查改。本资源包含的几个jar包正是用于连接不同...

    数据库连接四种方式.java

    几种常用的数据库连接方式,很详细很实用。

    java连接数据库JDBC

    在Java中连接数据库主要涉及以下几个步骤: 1. 导入必要的JDBC库:首先,我们需要在Java程序中导入`java.sql`包中的相关类,如`Connection`、`Statement`、`ResultSet`等。 2. 加载数据库驱动:Java通过`Class.for...

Global site tag (gtag.js) - Google Analytics