//在源程序中直接硬编码连接的参数信息 //代码片段 Connection conn; String dirver = “oracle.jdbc.driver.OracleDriver”; String url = “jdbc:oracle:thin:@127.0.0.1:1521:aptech”; String userName = “scott”; String password = “tiger”; try { Class.forName(dirver); conn = DriverManager.getConnection(url,userName, password); } catch (ClassNotFoundException e) {//找不到驱动程序类} catch (SQLException e) {//数据库连接失败} finally{ try { if (con != null) con.close(); } catch (SQLException e) {e.printStackTrace();} }
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=shopping"; // 连接服务器和数据库sample String userName = "sa"; // 默认用户名 String userPwd = ""; // 密码 try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); con = true; // System.out.println("Connection Successful!"); //如果连接成功 // 控制台输出Connection Successful! } catch (Exception e) { e.printStackTrace(); } return con; }
//通过属性文件加载数据库连接的参数信息 //代码片段 Properties props = new Properties(); props.load( new FileInputStream("src/com/jdbc/connection/database.properties") ); String drivers = props.getProperty("jdbc.drivers"); String url = props.getProperty("jdbc.url"); String username = props.getProperty("jdbc.username"); String password = props.getProperty("jdbc.password"); Class.forName(drivers); con = DriverManager.getConnection(url, username, password); //属性文件 jdbc.drivers=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:aptech jdbc.username=scott jdbc.password=tiger
Tomcat自带的数据库连接池管理 从数据源获得连接
在tomcat中通过JNDI服务获得DataSource引用,通过DataSource获得数据库连接
1.配置数据源JNDI服务
2.在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用
3. DataSource的getConnection方法获得连接
第一种 方法
/* Tomcat自带的数据库连接池管理工具 DBCP 使用 Jakarta-Commons Database Connection Pool. 它依赖于以下Jakarta-Commons 组件: Jakarta-Commons DBCP Jakarta-Commons Collections Jakarta-Commons Pool 以上程序库被包含在$CATALINA_HOME/lib/tomcat-dbcp.jar 一个单独的jar包中。也可以分别到apache组织的网站上下载3个独 立的jar包 */ BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ds.setUsername("sa"); ds.setPassword("shenlin"); ds.setUrl(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CRM”); ds.getConnection();
第一种 方法
/* 在tomcat中配置数据源JNDI服务 在TOMCAT_HOME\conf\context.xml中添加Resource元素 将JDBC驱动程序(如class12.jar)添加到TOMCAT_HOME\lib目录中 如果tomcat已经启动需要重新启动才能生效 */ <Resource name="jdbc/scott" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ntcsoft" />
在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用,由DataSource获得数据库连接
Context context = new InitialContext(); DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/scott"); Connection conn = ds.getConnection(); /* 必须一致 <Resource name="jdbc/scott" …….. /> */
C3p0数据库连接池
import com.mchange.v2.c3p0.*; ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" ); cpds.setUser("dbuser"); cpds.setPassword("dbpassword"); /* 如果你想打开PreparedStatement 池, 你必须 设置 maxStatements 和/或 maxStatementsPerConnection (both default to 0): */ cpds.setMaxStatements( 180 ); //销毁数据源 DataSources.destroy( cpds );
/* 在tomcat中配置c3p0数据源JNDI服务 在TOMCAT_HOME\conf\context.xml中添加Resource元素 将JDBC驱动程序(如class12.jar)和c3p0的jar包添加到TOMCAT_HOME\lib目录中 如果tomcat已经启动需要重新启动才能生效 */ <Resource name="jdbc/exam" auth="Container" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" description="DB Connection" driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxPoolSize="4" minPoolSize="2" acquireIncrement="1" user="sa" password="" jdbcUrl="jdbc:sqlserver://localhost:1433;DatabaseName=exam" />