连接数据库

Posted yingyigongzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接数据库相关的知识,希望对你有一定的参考价值。

首先设置下配置文件:取名db.properties
#mysql注释
mysql_driver=com.mysql.jdbc.Driver
mysql_url=jdbc:mysql://127.0.0.1:3306/test
mysql_user=root
mysql_pwd=123456

#连接池相关参数
#初始化连接数
dataSource.initialSize=10
#最大空闲数
dataSource.maxIdle=5
#最小空闲数
dataSource.minIdle=2
#最大连接数
dataSource.maxActive=8
#最小连接数
dataSource.minActive=3
#超时时间1分钟
#单位是毫秒
dataSource.maxWait=60000
这是调用以上配置文件的连接数据库的代码:取名X_DBUtil
package net.picp.mywebsite.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class X_DBUtil {
	private static String driver=null;
	private static String url=null;
	private static String user=null;
	private static String password=null;
	//读取文件的对象
	private static Properties ps=new Properties();
	//静态代码块,类加载的时候,只需要执行一次
	static{
		try {
			ps.load(X_DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
			driver=ps.getProperty("mysql_driver");
			url=ps.getProperty("mysql_url");
			user=ps.getProperty("mysql_user");
			password=ps.getProperty("mysql_pwd");
			//加载驱动
			Class.forName(driver);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
//创建连接方法
	public static Connection getConnection() throws SQLException{
		return DriverManager.getConnection(url, user, password);
	}
//关闭连接方法
	public static void closeConnection(Connection con,Statement st,ResultSet rs){
		try {
				if(rs!=null){
				rs.close();
				}
				if(st!=null){
					st.close();
				}
				if(con!=null){
					con.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		
	}
	

}
这是调用以上配置文件连接池的连接数据库的代码:取名X_DBCPUtil
package net.picp.mywebsite.util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

/**
 * 工具类:读取.properties文件数据,加载驱动创建连接,关闭
 * 连接池实现连接,关闭,提高性能
 * @author Administrator
 *
 */
public class X_DBCPUtil {
	private static String driver=null;
	private static String url=null;
	private static String user=null;
	private static String password=null;
	//读取文件的对象
	private static Properties ps=new Properties();
	private static BasicDataSource ds=null;
	//静态代码块,类加载的时候,只需要执行一次
	static{
		try {
			ps.load(X_DBCPUtil.class.getClassLoader().getResourceAsStream("db.properties"));
			driver=ps.getProperty("mysql_driver");
			url=ps.getProperty("mysql_url");
			user=ps.getProperty("mysql_user");
			password=ps.getProperty("mysql_pwd");
			
			//获取连接池相关参数
			String initialSize=ps.getProperty("dataSource.initialSize");
			String maxIdle=ps.getProperty("dataSource.maxIdle");
			String minIdle=ps.getProperty("dataSource.minIdle");
			String maxActive=ps.getProperty("dataSource.maxActive");
			String minActive=ps.getProperty("dataSource.minActive");
			String maxWait=ps.getProperty("dataSource.maxWait");
			
			ds=new BasicDataSource();
			ds.setDriverClassName(driver);
			ds.setUrl(url);
			ds.setUsername(user);
			ds.setPassword(password);
			if(initialSize!=null){
				ds.setInitialSize(Integer.parseInt(initialSize));			
			}
			if(maxIdle!=null){
				ds.setMaxIdle(Integer.parseInt(maxIdle));
			}
			if(minIdle!=null){
				ds.setMinIdle(Integer.parseInt(minIdle));
			}
			if(maxActive!=null){
				ds.setMaxActive(Integer.parseInt(maxActive));
			}
			if(minActive!=null){
				//DBCP没有提供最小连接数的方法
			}
			if(maxWait!=null){
				ds.setMaxWait(Long.parseLong(maxWait));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
//创建连接方法
	public static Connection getConnection() throws SQLException{
		Connection con=null;
		if(ds!=null){
			con=ds.getConnection();
		}
		return con;
	}
//归还连接方法
	public static void releaseConnection(Connection con,Statement st,ResultSet rs){
		try {
				if(rs!=null){
				rs.close();
				}
				if(st!=null){
					st.close();
				}
				if(con!=null){
					//归还
					con.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		
	}
	
/*	public static void main(String[] args){
		try {
			System.out.println(getConnection());
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}*/
	
}

  注意:需要用到的jar包

commons-dbcp.jar
commons-pool.jar
dom4j-1.6.1.jar
mysql-connector-java-5.1.8-bin.jar
ojdbc6.jar

  

  

以上是关于连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

部分代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

用于数据加载的 Android 活动/片段职责

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

谷歌地图片段显示,但没有地图

片段中的 Asynctask 未到达 onPostExecute