• Java 使用JDBC、DBCP、C3P0访问数据库


    JDBC:

    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    
    // 1.加载驱动
    try {
    	Class.forName("com.ibm.db2.jcc.DB2Driver");
    	
    	/*Driver driver = new com.ibm.db2.jcc.DB2Driver();
    	DriverManager.registerDriver(driver);
    	//这样做,意义不大,因为类在加载的时候就已经创建了DB2Driver对象,并向DriverManager注册*/
    } catch (Exception e) {
    	e.printStackTrace();
    }
    
    String url = "jdbc:db2://10.10.38.138:50000/malltest";
    String username = "db2inst1";
    String password = "db2inst1";
    try {
    	// 2.创建数据库连接
    	conn = DriverManager.getConnection(url, username, password);
    	
    	// 3.获取数据库操作对象
    	stmt = conn.createStatement();
    
    	// 4.操作数据库获取结果集
    	rs = stmt.executeQuery("select * from ly.t_merinf where merid='M0000178'");
    	
    	// 5.处理结果集
    	while(rs.next()){
    		System.out.println(rs.getString("mername"));
    	}
    } catch (SQLException e) {
    	e.printStackTrace();
    } finally {
    	// 关闭结果集
    	if(rs != null) {
    		try { rs.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库操作对象
    	if(stmt != null) {
    		try { stmt.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库连接
    	if(conn != null) {
    		try { conn.close(); } catch (SQLException e) { }
    	}
    }


    DBCP:

    // 1.创建连接池
    DataSource ds = null;
    try {
    	Properties prop = new Properties();
    	// 通过类路径来加载属性文件
    	prop.load(DbcpTest.class.getClassLoader().getResourceAsStream("database/dbcp/dbcp.properties"));
    	// 获取数据源
    	ds = BasicDataSourceFactory.createDataSource(prop);
    } catch (IOException e) {
    	e.printStackTrace();
    } catch (Exception e) {
    	e.printStackTrace();
    }
    
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
    	// 2.获取数据库连接
    	conn = ds.getConnection();
    	
    	// 3.创建数据库操作对象
    	stmt = conn.createStatement();
    	
    	// 4.操作数据库获取结果集
    	rs = stmt.executeQuery("select * from ly.t_merinf where merid='M0000178'");
    
    	// 5.处理结果集
    	while (rs.next()) {
    		System.out.println(rs.getString("mername"));
    	}
    } catch (SQLException e) {
    	e.printStackTrace();
    } finally {
    	// 关闭结果集
    	if(rs != null) {
    		try { rs.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库操作对象
    	if(stmt != null) {
    		try { stmt.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库连接
    	if(conn != null) {
    		try { conn.close(); } catch (SQLException e) { }
    	}
    }


    配置文件:

    driverClassName=com.ibm.db2.jcc.DB2Driver
    url=jdbc:db2://10.10.38.138:50000/malltest
    username=db2inst1
    password=db2inst1
    initialSize=3
    maxActive=5
    maxIdle=3
    minIdle=1
    maxWait=30000


    C3P0:

    ComboPooledDataSource cpds = new ComboPooledDataSource();
    
    // 加载数据库驱动
    try {
    	cpds.setDriverClass("com.ibm.db2.jcc.DB2Driver");
    } catch (PropertyVetoException e1) {
    	e1.printStackTrace();
    }
    
    // 设置访问数据库的地址、用户名和密码
    cpds.setJdbcUrl("jdbc:db2://10.10.38.138:50000/malltest");
    cpds.setUser("db2inst1");
    cpds.setPassword("db2inst1");
    
    // 设置C3P0的一些配置,不设置则使用默认值
    cpds.setMinPoolSize(5);
    cpds.setAcquireIncrement(5);
    cpds.setMaxPoolSize(20);
    cpds.setMaxStatements(180);
    
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
    	// 创建数据库连接
    	conn = cpds.getConnection();
    	
    	// 获取数据库操作对象
    	stmt = conn.createStatement();
    	
    	// 操作数据库获取结果集
    	rs = stmt.executeQuery("select * from ly.t_merinf where merid='M0000178'");
    	
    	// 处理结果集
    	while (rs.next()) {
    		System.out.println(rs.getString("mername"));
    	}
    } catch (SQLException e) {
    	e.printStackTrace();
    } finally {
    	// 关闭结果集
    	if(rs != null) {
    		try { rs.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库操作对象
    	if(stmt != null) {
    		try { stmt.close(); } catch (SQLException e) { }
    	}
    	// 关闭数据库连接
    	if(conn != null) {
    		try { conn.close(); } catch (SQLException e) { }
    	}
    	try {
    		DataSources.destroy(cpds);
    	} catch (SQLException e) {
    		e.printStackTrace();
    	}
    }



  • 相关阅读:
    共创力董事长杨学明先生受邀参加CED智慧大会!
    杨学明老师为华宇金信(北京)软件有限公司提供为期两天的内训服务!
    《互联网敏捷测试管理实践》课程大纲 2018.12.15~16 (上海)
    共创力咨询杨学明老师为国电南瑞提供两天的内训服务!
    《软件测试管理》深圳公开课预告 2018.11.23~24 中南海滨大酒店
    软件测试管理的十大挑战
    对于开发人员修改代码引发新问题的处理措施
    热烈庆祝杨学明老师为上海某著名金融互联网公司提供两天的内训服务!
    《高效的互联网研发项目管理》课程大纲
    《软件测试管理》北京公开课预告 2018.9.28~29
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3318172.html
Copyright © 2020-2023  润新知