JDBC 工具类
在Java编程过程中 我们需要连接数据库 所以数据库的连接和增删改查操作是非常基本的操作同时又非常的重要。同时在JDBC编程中 ,有很多的方法如更新个查找操作,我们可以对其进行封装,
提高我们编码的效率。
本文将数据的连接方法,数据查找的有参数查找 和无参数查找,更新操作的方法进行具体展现。我们可以在我们项目直接新建DBHelper类,并将代码拷贝到自己的类中导入相应的包便可以直接使用
public class DBHelper {
//dbName 当前项目使用的数据库名称 username 数据库的用户名 password 数据库的密码
private static String url = "jdbc:mysql://localhost:3306/";
private static String dbName = "******";
private static String username = "****";
private static String password = "****";
//该方法用于链接数据库
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url + dbName,
username, password);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return conn;
}
//该方法用于没有参数的查询
public static List<Map<String, Object>> executeQuery(String sql) {
return executeQuery(sql, new String[0]);
}
//该方法用于含有参数的查询 参数个数为可变
public static List<Map<String, Object>> executeQuery(String sql, Object...param) {
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
List<Map<String, Object>> resut = new ArrayList<>();
Map<String, Object> map = null;
try{
conn = getConnection();
pst = conn.prepareStatement(sql); for (int i = 0; i < param.length; i++) {
pst.setObject(i+1, param[i]);
} rs = pst.executeQuery(); ResultSetMetaData rsm = rs.getMetaData();
String[] columns = new String[rsm.getColumnCount()]; for (int i = 0; i < rsm.getColumnCount(); i++) {
columns[i] = rsm.getColumnName(i + 1);
} rs.beforeFirst(); while(rs.next()) {
map = new HashMap<>();
for(String col : columns) {
map.put(col, rs.getObject(col));
}
resut.add(map);
}
rs.close();
pst.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return resut;
}
//该方法用于更新操作
public static int executeUpdate(String sql, Object[] param) {
Connection conn = null;
PreparedStatement pst = null;
int result = 0; try {
conn = getConnection();
pst = conn.prepareStatement(sql); for (int i = 0; i < param.length; i++) {
pst.setObject(i + 1, param[i]);
} result = pst.executeUpdate();
pst.close();
conn.close(); } catch (Exception e) {
e.printStackTrace();
} return result;
}
}
JDBC 工具类的更多相关文章
- MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- java使用注解和反射打造一个简单的jdbc工具类
a simple jdbc tools 如有转载和引用,请注明出处,谢谢 1. 定义我们需要的注解 要想实现对数据库的操作,我们必须知道数据表名以及表中的字段名称以及类型,正如hibernate 使用 ...
- 开源JDBC工具类DbUtils
本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ...
- MySQL JDBC事务处理、封装JDBC工具类
MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...
- DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...
- JDBC第三篇--【事务、元数据、改造JDBC工具类】
这是我JDBC的第一篇 http://blog.csdn.net/hon_3y/article/details/53535798 这是我JDBC的第二篇 http://blog.csdn.net/ho ...
- JDBC【事务、元数据、改造JDBC工具类】
1.事务 一个SESSION所进行的所有更新操作要么一起成功,要么一起失败 举个例子:A向B转账,转账这个流程中如果出现问题,事务可以让数据恢复成原来一样[A账户的钱没变,B账户的钱也没变]. 事例说 ...
- JDBC工具类完整版!
package com.aaa.util; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; impor ...
- jdbc工具类1.0
package cn.zhouzhou; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManag ...
随机推荐
- 初学android之简易的网易页面
WangYiActivity.java: public class WangYiActivity extends Activity implements OnClickListener{ public ...
- @RequestMapping用法详解
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把 ...
- redhat7下配置tomcat7,更改端口8080后无法访问页面
搞了一下午,居然是防火墙的事情,redhat7设置方法如下 sudo firewall-cmd --add-port=8081/tcp
- socket 网络编程
1. 基础socket库 socket.h: /** * 网络套接字库 */ #ifndef Socket_h #define Socket_h #include <stdio.h> #i ...
- 在树莓派2代B型/3代 上安装Fedora23 - Installing Fedora 23 on Raspberry Pi 2 model B or Raspberry Pi 3
本文主要用于记录安装过程,以便日后查阅回顾. 之前在自己的树莓派上运行的一直是通过NOOB安装的Raspbian,但是本人平时更喜欢用Fedora作为开发和使用环境,而且Raspbian上的软件包通常 ...
- windows 下 gvim/vim lua支持问题,neocomplete等插件支持
此文是按照知乎 https://www.zhihu.com/question/29333426 "windows下vim的lua支持问题?" 一文汇总的解决方案. 题主提供了不错的 ...
- Dalvik系列02 - 指令格式
简介 该文档描述了Dalvik 可执行文件和Dalvik 字节码的指令格式. 按照位的描述 格式描述表(见下文)的第一列表示个格式的位结构,它由一个或者多个由空格分开的“指令单元”构成,每个指令单元的 ...
- 手持机(Android)开发应用总结
对于首次接触android的我,刚接到android开发的命令时,自己完全不懂任何android技术,可是由于项目的开发时间周期很短,必须强迫自己即学即用,到了最后才发现,技术其实只是工具,重要的是一 ...
- Android Activity 四种启动模式
task和back stack(任务和回退栈) 任务启动,task被加入到回退栈的栈顶,返回的时候回退栈的栈顶任务会被弹出,并被销毁,栈中的前一任务恢复运行,当activity销毁是,系统不会保留ac ...
- delphi数据类型及占用的字节数 C++ 对应数据类型
delphi byte:1个字节. int/Integer: long: long long:8字节,64位 shortInt:2字节,16位 LongInt:4字节,32位 Int64:8字节,64 ...