自己封装数据库工具类
时间:2022-07-28
本文章向大家介绍自己封装数据库工具类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.代码
配置文件
跨平台方案: 创建properties配置文件 创建Properties集合: • public static final Properties prop = new Properties(); 静态代码块中,使用输入流,读取配置文件。
package d04_dbutils;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**
* zt
* 2020/8/20
* 15:53
* 封装数据库工具类
* 1.注册驱动
* 2.获取连接
* 3.关闭资源
* ------------------------------
* 4.执行命令(增、删、改)
* 5.查询
* 6.事务操作
*/
public class DbUtils {
//驱动名称
private static String driver;
private static String url;
private static String user;
private static String password;
//1.注册驱动
static {
try {
//读取配置文件
Properties properties = new Properties();
//类加载器加载配置文件
InputStream is = DbUtils.class.getClassLoader().getResourceAsStream("db.properties");
properties.load(is);
is.close();
//赋值
driver=properties.getProperty("driver");
url=properties.getProperty("url");
user=properties.getProperty("user");
password=properties.getProperty("password");
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
System.out.println("注册驱动失败");
}
}
//2.获取连接
public static Connection getConnection(){
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//3.关闭连接
public static void closeAll(ResultSet rs, Statement stat,Connection conn){
try {
if(rs!=null){
rs.close();
}
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//4.执行增、删、改 preparedStatement
public static int executeUpdate(String sql,Object...params){
Connection conn = null;
PreparedStatement pstat = null;
try {
//给参数赋值
conn = getConnection();
pstat = conn.prepareStatement(sql);
if(params!=null){
for (int i = 0; i < params.length; i++) {
pstat.setObject(i+1, params[i]);
}
}
return pstat.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
closeAll(null, pstat, conn);
}
return -1;
}
}
package d04_dbutils;
/**
* zt
* 2020/8/20
* 16:00
* 工具类测试(查询)
*/
public class JdbcDemo6 {
public static void main(String[] args) throws Exception {
/* Connection conn = DbUtils.getConnection();
PreparedStatement pstat = conn.prepareStatement("select * from user");
ResultSet rs = pstat.executeQuery();
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String password = rs.getString("password");
}
DbUtils.closeAll(rs, pstat, conn);*/
String sql = "insert into user(name,password) values(?,?)";
for (int i = 0; i < 10; i++) {
Object[] params = {"大明"+i,"123456"};
DbUtils.executeUpdate(sql, params);
}
}
}
2.运行结果
- 这或许是对小白最友好的python入门了吧——6,删除列表元素
- 集群开源软件赏:JGroups
- 看到他我一下子就悟了---委托
- 这或许是对小白最友好的python入门了吧——5,修改和添加列表元素
- 这或许是对小白最友好的python入门了吧——4,列表
- 【深度学习】自动驾驶:使用深度学习预测汽车的转向角度
- 这或许是对小白最友好的python入门了吧——3,数字处理
- 数据库恢复方案
- 这或许是对小白最友好的python入门了吧——2,变量和字符串
- Extjs4.2+webAPI+EF实现分页以及webapi的数据传值(续)
- Linux 系统安全与优化配置
- Extjs 项目中常用的小技巧,也许你用得着(2)
- 这或许是对小白最友好的python入门了吧——16,输入文本
- Extjs 项目中常用的小技巧,也许你用得着(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 说说Android的UI刷新机制的实现
- Android仿直播类app赠送礼物功能
- android自定义imageview实现圆角图片
- 基于android实现五子棋开发
- Android Fragment的静态注册和动态注册创建步骤
- Android从Fragment跳转到其他Activity的简单实例
- Android7.0以上Uri转路径的方法实现(已验证)
- Android studio实现简单计算器
- Android 自定义LayoutManager实现花式表格
- android studio编译jar包或者aar包的方法教程详解
- Android实现屏幕录制功能
- Android实现扫描二维码功能
- android实现录屏功能
- android自定义手表效果
- Android 测量文字宽度的实例方法