`
yxkingtiger
  • 浏览: 25751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA连接mysql数据库工具类

阅读更多
package cn.com.shxt.tools;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
/**
 * @描述:公共数据访问交互工具类(注意:在其他机器使用数据库,请修改数据库连接账号(username)及密码(password),连接地址(url)")
 * @作者:KingTiger
 * @版本:1.0
 * @开发时间:2013-4-20上午11:30:10
 */
public class DbUtils {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
private String username = "root";
private String password = "mysql";
private String url="jdbc:mysql://localhost:3308/librarys";
/**
 * @描述:用来在类中最先执行数据库的驱动加载
 * @作者:KingTiger
 */
static {
	try{
		Class.forName("com.mysql.jdbc.Driver");
	}catch(ClassNotFoundException e){
		System.out.println("找不到类,请检查驱动包是否导入");
		e.printStackTrace();
	}	
	}	
/**
 * @描述:建立数据库连接并返回给开发者连接对象
 * @作者:KingTiger
 * @参数:@return
 * @返回值:Connection
 */
public Connection getConn(){
	try{
		conn = DriverManager.getConnection(url,username,password);
		return conn;
	}catch(Exception e){
		System.out.println("连接不上数据库,请检查连接地址(url),账号(username),密码(password)");
		e.printStackTrace();
		return null;
	}
}
/**
 * @描述:执行更新数据库的sql语句
 * @作者:KingTiger
 * @参数:@param sql
 * @参数:@return
 * @返回值:int  = 影响表中记录行数  更新成功 = >0的整数  更新失败 = 0
 */
public int updata(String sql){
	try{
		stmt = getConn().createStatement();
		return stmt.executeUpdate(sql);
		
	}catch(SQLException e){
		System.out.println("更新失败,请检查sql语法 及格式");
		e.printStackTrace();
		return -1;
	}finally{
			close();
	}
}

/**
 * @描述:执行查询数据库的SQL语句
 * @作者:KingTiger
 * @参数:@param sql
 * @参数:@return
 * @返回值:ArrayList<Map<String,Object>>
 */
public ArrayList<Map<String,Object>> find (String sql){
	ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
	try{
		stmt = this.getConn().createStatement();
		rs = stmt.executeQuery(sql);
		//获得结构化的结果集对象包含表信息
		ResultSetMetaData rsmd =  rs.getMetaData();
		//获取我所查询的表的总列数
		int columnCount = rsmd.getColumnCount();
		while(rs.next()){
			Map<String,Object> map = new HashMap<String,Object>();
			for(int i = 1; i<=columnCount; i++){
				String columnName = rsmd.getColumnName(i);
				Object columnValue = rs.getObject(columnName);
				map.put(columnName, columnValue);
			}
			list.add(map);
		}		
		return list;
		
	} catch (Exception e) {
		System.out.println("查询失败,请检查sql语法 及格式");
		e.printStackTrace();
		return null;
	}finally{
		close();
	}
	
}
/**
 * @描述:释放连接时内存
 * @作者:KingTiger
 * @参数:无
 * @返回值:void
 */
public void close(){
	if(rs != null){
		try {
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	if(stmt != null){
		try {
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	if(conn != null){
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
}

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics