13243356 发表于 2013-1-30 01:38:26

数据库连接与数据源配置

//在源程序中直接硬编码连接的参数信息//代码片段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.OracleDriverjdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:aptechjdbc.username=scottjdbc.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"    />  

 
 
 
 
页: [1]
查看完整版本: 数据库连接与数据源配置