JDB的简单封装

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.List;
import java.util.Map;




public class BaseDB {


static String host = "127.0.0.1";
static String dbname = "test2";
static String url = "jdbc:mysql://"+host+":3306/"+dbname+"?characterEncoding=UTF-8";
static String user = "root";
static String pass = "123456";


static Connection conn;// 数据库的连接对象
static Statement state;// 数据库的声明对象


/**
* 查询数据
*/
public static List findData(String sql) {
loadDatabase();
// 执行语句得到结果集
ResultSet rs;
// 存放结果集合
ArrayList<Map> list = new ArrayList<Map>();


try {
rs = state.executeQuery(sql);


// 循环结果集 得到一条记录 游标默认在第一个
// 当调用next()方法之后就进入了第二个
while (rs.next()) {
// 根据列的序号拿到列结果
// 获取到表名,所有字段的名字
// 元数据(原始数据)
ResultSetMetaData md = rs.getMetaData();
// 获取到列的数量
int cc = md.getColumnCount();


// 创建一个键值对
HashMap<String, Object> map = new HashMap<String, Object>();


for (int i = 1; i <= cc; i++) {
String key = md.getColumnLabel(i);// 列名
Object value = rs.getObject(key);// 值
map.put(key, value);// 添加到键值对
}
list.add(map);
}
} catch (SQLException e) {
System.err.println("查询错误:" + e.getMessage());
} finally {
closeDatabase();
}


return list;
}


/**
* 修改数据(新增、删除、更新)
*/
public static int updateData(String sql) {
// 连接上数据库
loadDatabase();
int res = 0;
try {
res = state.executeUpdate(sql);
} catch (SQLException e) {
System.err.println("执行" + sql + "语句时失败:" + e.getMessage());
} finally {
closeDatabase();
}
return res;
}


/**
* 连接数据库

*/
private static void loadDatabase() {


// 加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加载驱动成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.err.println("加载驱动失败!");
}


// 连接数据库
try {
conn = DriverManager.getConnection(url, user, pass);
// 创建数据库的声明(Statement)对象
state = conn.createStatement();
System.out.println("ok");
} catch (SQLException e) {
System.out.println("连接数据库失败" + e);
}
}


/**
* 关闭数据库
*/
public static void closeDatabase() {


try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值