Java 项目采用JDBC连接数据库的常用方式
来源:互联网 发布:xampp linux 编辑:程序博客网 时间:2024/05/17 20:33
一、jdbc连接数据库
常用JDBC连接数据库方法总结如下:
3 proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出。
<span style="font-size:18px;"> try{ //创建连接URL String url ="jdbc:odbc:wombat"; //建立连接 Connection con =DriverManager.getConnection(url,"usre",";password"); //创建语句 Statement stmt =con.createStatement(); //执行查询,返回结果集 ResultSet rs =stmt.executeQuery("SELECT a,b,c,d,key FROM Table1"); stmt.close(); con.close(); } catch(Exception ex){ ex.printStackTrace(); }</span>
常用JDBC连接数据库方法总结如下:
1、DB2
Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
Stringurl="jdbc:db2://dburl:port/DBname"
cn = DriverManager.getConnection( url, userName, password);
2、Microsoft SQLServer(microsoft)
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver");
cn = DriverManager.getConnection("jdbc:microsoft:sqlserver://DBServerIP:1433;databaseName=master",userName, password );
3、Sybase(jconn2.jar)
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection("jdbc:sybase:Tds:DBServerIP:2638",userName, password);
4、MySQL(mm.mysql-3.0.2-bin.jar)
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection("jdbc:mysql://DBServerIP:3306/myDatabaseName",userName, password );
5、PostgreSQL(pgjdbc2.jar)
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection("jdbc:postgresql://DBServerIP/myDatabaseName",userName, password );
6、Oracle(classes12.jar)
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL",userName, password );
7、ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection("jdbc:odbc:" + sDsn, userName,password );
二、采用数据库连接池(JNDI)
现在大多数项目都采用数据库连接池。除了提高网络吞吐量,增加系统性能外;还有一个,封装数据库操作,有效进行封装以后。后面的程序编写就相当简单容易了。
连接池,也出现两种分支,一是直接使用容器提供的连接池,一是自己编写连接池。
常见开源连接池
1 dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控
dbcp连接池配置实例
jdbc.properties配置文件
<span style="font-size:18px;">#jdbc c3p0 configjdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=utf-8jdbc.username = rootjdbc.password = 12345</span>
spring.xml配置文件
<span style="font-size:18px;"><strong><span style="font-family:FangSong_GB2312;font-size:14px;"><!-- 载入属性文件 --> <context:property-placeholder location="classpath:jdbc.properties"/><!-- 以下为开源数据库连接池配置 username和password一般要注释掉,使用密码加密--><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="referredDriver" /> <!---mysql:com.mysql.jdbc.Driver; SQLServerV2005+:com.microsoft.sqlserver.jdbc.SQLServerDriver-> <property name="url" value="referredDBURL" /> <!-- mysqlURL:jdbc:mysql://localhost:3306/myuser","root" ,"root"; SQLServerV2005+URL:jdbc:sqlserver://localhost:1433;databaseName=数据库名称 --> <property name="username" value="DBLoginUser" /> <property name="password" value="DBLoginUserPassword" /> <property name="initialSize" value="5" /> <property name="maxIdle" value="30" /> <property name="minIdle" value="5" /> <property name="maxActive" value="15" /> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="300" /><!-- 自动回收超时时间(以秒数为单位) --> <property name="maxWait" value="3000" /><!--超时等待时间以毫秒为单位--> <property name="defaultAutoCommit" value="false" /> <property name="validationQuery"> <value>SELECT 1</value> </property> <property name="testOnBorrow"> <value>true</value> </property> <property name="testOnReturn"> <value>false</value> </property></bean>
2 c3p0
c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,此外不提供连接池监控。
c3p0连接池配置实例
jdbc.properties
<span style="font-size:18px;">#jdbc c3p0 configjdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=utf-8jdbc.username = rootjdbc.password = 12345</span>
spring.xml
<span style="font-size:18px;"><!-- 加载配置文件 --> <context:property-placeholder location="classpath:jdbc.properties"/><!-- 配置数据源 c3p0 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="${jdbc.driver}" /><property name="jdbcUrl" value="${jdbc.url}" /><property name="user" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- 请求超时时间 --><property name="checkoutTimeout" value="30000" /><!-- 每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 --><property name="idleConnectionTestPeriod" value="30" /><!-- 连接数据库连接池最大空闲时间 --><property name="maxIdleTime" value="30" /><!-- 连接池初始化连接数 --><property name="initialPoolSize" value="5" /><property name="minPoolSize" value="5" /><property name="maxPoolSize" value="20" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 --><property name="acquireIncrement" value="5" /></bean></span>
3 proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出。
0 1
- Java 项目采用JDBC连接数据库的常用方式
- Spring Boot采用JDBC方式连接数据库
- 常用JDBC连接数据库方式
- 常用JDBC连接数据库方式
- java采用jdbc连接SQL数据库实例
- java采用jdbc连接操作数据库
- JAVA采用JDBC连接操作数据库详解
- iReport采用JDBC的方式连接Oracle
- iReport采用JDBC的方式连接Oracle
- 各种常用数据库使用JDBC连接的方式
- Java连接各种数据库的jdbc连接方式
- jdbc连接数据库的方式
- JDBC连接数据库的方式
- JDBC连接数据库的方式
- JDBC连接数据库的方式
- JDBC连接数据库的方式
- JavaWeb之JDBC(二)采用读取配置文件方式编写JDBC的工具类,获取数据库的连接
- Java连接oracle数据库-------jdbc的thin方式
- [LeetCode]Remove Duplicates from Sorted List II Java
- 【每日一课】 Python 官方文档 4 --- 流程控制
- linux 入门笔记_实验楼_未完结... ...
- WEB站点性能优化实践(加载速度提升2s)
- 包含min函数的栈---重写栈实现特定的功能
- Java 项目采用JDBC连接数据库的常用方式
- H264的句法和语义(一)
- Java反射机制学习
- iOS -- NSURLSession网络请求,上传,下载
- Java NIO(New I/O)的三个属性position、limit、capacity
- 如何通过Docker-Compose一键部署SuperMap iCloudManager
- win10 更新会带来的问题
- java实现FTP上传下载:FTPClient类进行FTP上传下载大文件(包含导致假死现象)
- 用Quartz处理定时执行的任务-步骤