转载请注明出处:http://coffeehot.iteye.com/admin/blogs/2184881
由于maven无法直接使用sqljdbc4.jar来连接SqlServer,因此使用jtds和c3p0来替代。
具体做法:
1. 加入pom依赖
<dependency> <groupId>net.sourceforge.jtds</groupId> <artifactId>jtds</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency>
2. 在src/main/resources下加入c3p0-config.xml
<c3p0-config> <default-config> <property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property> <property name="jdbcUrl">jdbc:jtds:sqlserver://localhost:1433/mydb </property> <property name="user">sa</property> <property name="password">Admin123</property> <property name="acquireIncrement">50</property> <property name="initialPoolSize">100</property> <property name="minPoolSize">50</property> <property name="maxPoolSize">1000</property> </default-config> <named-config name="mydb"> <property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property> <property name="jdbcUrl">jdbc:jtds:sqlserver://127.0.0.1:1433/mydb </property> <property name="user">sa</property> <property name="password">Admin123</property> <property name="checkoutTimeout">30000</property> <property name="idleConnectionTestPeriod">30</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </named-config> </c3p0-config>
3.测试
public class Test
{
private static HashMap connMap = new HashMap();
public static void main(String[] args) throws Exception
{
testConn();
}
public static void testConn() throws Exception
{
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Connection ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=mydb","sa","Admin123");
Connection ct = getConnection("mydb");
// Connection ct = getDefaultConnection();
PreparedStatement st = ct.prepareStatement("select id, name from dbo.test_conn");
st.execute();
ResultSet rs = st.getResultSet();
while(rs.next())
{
System.out.println("result: " + rs.getString(1));
}
}
public static Connection getConnection(String name){
Connection conn = null;
ComboPooledDataSource ds =null;
if(name==null||name.equals(""))
return null;
if(connMap.keySet().contains(name)){
ds = (ComboPooledDataSource)connMap.get(name);
}else{
ds = new ComboPooledDataSource(name);
}
try {
if(ds==null){
return null;
}
conn = ds.getConnection();
connMap.put(name, ds);
} catch (SQLException e) {
}
return conn;
}
public static Connection getDefaultConnection(){
ComboPooledDataSource ds = new ComboPooledDataSource();
try{
return ds.getConnection();
}catch(SQLException e){
}
return null;
}
}
{
private static HashMap connMap = new HashMap();
public static void main(String[] args) throws Exception
{
testConn();
}
public static void testConn() throws Exception
{
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Connection ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=mydb","sa","Admin123");
Connection ct = getConnection("mydb");
// Connection ct = getDefaultConnection();
PreparedStatement st = ct.prepareStatement("select id, name from dbo.test_conn");
st.execute();
ResultSet rs = st.getResultSet();
while(rs.next())
{
System.out.println("result: " + rs.getString(1));
}
}
public static Connection getConnection(String name){
Connection conn = null;
ComboPooledDataSource ds =null;
if(name==null||name.equals(""))
return null;
if(connMap.keySet().contains(name)){
ds = (ComboPooledDataSource)connMap.get(name);
}else{
ds = new ComboPooledDataSource(name);
}
try {
if(ds==null){
return null;
}
conn = ds.getConnection();
connMap.put(name, ds);
} catch (SQLException e) {
}
return conn;
}
public static Connection getDefaultConnection(){
ComboPooledDataSource ds = new ComboPooledDataSource();
try{
return ds.getConnection();
}catch(SQLException e){
}
return null;
}
}
相关推荐
- 在生产环境中,通常使用连接池如C3P0、HikariCP或Apache DBCP来管理数据库连接,以提高性能和资源利用率。 总结来说,Java连接SQL Server 2000涉及到的主要知识点有:JDBC驱动的引入和配置、数据库连接的建立与...
考虑使用连接池来管理数据库连接,如C3P0、HikariCP或Apache DBCP,这可以提高应用程序的性能并减少资源消耗。 8. **异常处理** 在处理数据库操作时,务必进行异常捕获和处理,以确保程序的健壮性。例如,当无法...
在Java中,有许多库可以实现连接池功能,如C3P0、DBCP、HikariCP以及我们今天要讨论的jTDS。 jTDS是一个开源的Java驱动程序,专门用于连接Microsoft SQL Server和Sybase数据库。它实现了JDBC API,使得Java开发者...
在实际开发中,为了提高代码的可读性和可维护性,通常会使用连接池(如C3P0、HikariCP等)来管理数据库连接。此外,事务管理、异常处理和SQL注入防护也是使用JDBC时需要注意的重要方面。在设计和编写代码时,遵循...
- 连接池管理:为了提高性能和资源利用,应使用连接池(如HikariCP或C3P0)来管理数据库连接。 5. **常见问题与解决方案** - **连接失败**:检查服务器名、端口、数据库名、用户名和密码是否正确,网络是否通畅...
10. 性能优化:为了提高性能,可以考虑使用连接池,如C3P0、HikariCP或Apache DBCP,它们能有效管理和复用数据库连接,减少创建和销毁连接的开销。 总的来说,SQL Server 2000驱动是Java应用程序与SQL Server 2000...
【Java 连接 SQL Server 2000 知识点详解】 在Java应用程序中连接SQL Server 2000数据库通常涉及以下关键步骤和知识点: ...同时,使用连接池(如C3P0、HikariCP等)来优化数据库连接的创建和管理,提高应用性能。
5. **连接池**:在生产环境中,为了提高性能和资源利用率,通常会使用连接池,如Apache的DBCP或C3P0,它们可以管理数据库连接,避免频繁地创建和关闭连接。 6. **JNDI(Java Naming and Directory Interface)**:...
在生产环境中,为提高性能和资源利用率,通常使用连接池(如C3P0、HikariCP、Apache DBCP等)管理数据库连接。连接池预先创建并维护一定数量的连接,避免频繁地打开和关闭连接。 **七、高级特性** Microsoft JDBC...
- **优化连接池**:使用如C3P0、HikariCP等连接池管理工具,有效控制并发和资源回收。 总之,JDBC作为Java与数据库交互的基础,是Java开发者必备的知识点。通过理解并熟练运用`mysql-jdbc`和`sql-jdbc`驱动,可以...
BoneCP以其高性能著称,但在某些场景下,如需要更丰富的特性和社区支持,开发者可能会选择HikariCP、C3P0或DBCP等其他流行的连接池。 总的来说,BoneCP是一个强大的数据库连接池解决方案,尤其适合对性能有较高...
此外,连接池如C3P0、HikariCP或Apache DBCP也能优化数据库资源的使用,提高性能。 7. 配置数据库连接参数: 数据库连接参数可能包括URL、用户名、密码、连接超时、读写超时、自动提交等。开发者需要根据实际需求...
2. 支持高级功能的库:如`c3p0.jar`和`dbcp.jar`等,这些是连接池管理库,帮助开发者更好地管理和复用数据库连接,提高系统性能。 3. ORM框架的JDBC依赖:像Hibernate、MyBatis这样的对象关系映射框架,虽然提供了...
- **SQL工具**:例如jtds.jar(用于连接SQL Server和Sybase),postgresql.jar(PostgreSQL)等,这些工具帮助开发者执行SQL语句,进行数据库操作。 - **ORM框架**:对象关系映射(ORM)框架如Hibernate、MyBatis...