数据库接口类和接口实现类

2023-05-16

数据库接口类(BasicDAO.java):实现对数据库的直接增删查改的interface接口

import java.sql.ResultSet;

/**
 * 数据库接口类
 */
public interface BasicDAO {

    /**
     * 添加
     * @param sql 要执行的SQL语句
     * @return 返回结果,整型,大于0插入成功,否则插入失败
     */
    public int insert(String sql);

    /**
     * 添加
     * @param sql 要执行的SQL语句
     * @param obj 参数数组
     * @return 返回结果,整型,大于0插入成功,否则插入失败
     */
    public int insert(String sql,Object[] obj);

    /**
     * 修改
     * @param sql 要执行的SQL语句
     * @return 返回结果,布尔类型,true成功,false失败
     */
    public boolean update(String sql);

    /**
     * 修改
     * @param sql 要执行的SQL语句
     * @param obj 参数数组
     * @return 返回结果,布尔类型,true成功,false失败
     */
    public boolean update(String sql,Object[] obj);

    /**
     * 删除
     * @param sql 要执行的SQL语句
     * @return 返回结果,布尔类型,true成功,false失败
     */
    public boolean delete(String sql);

    /**
     * 删除
     * @param sql 要执行的SQL语句
     * @param obj 参数数组
     * @return 返回结果,布尔类型,true成功,false失败
     */
    public boolean delete(String sql,Object[] obj);

    /**
     * 查询
     * @param sql 要执行的SQL语句
     * @return ResultSet结果集
     */
    public ResultSet select(String sql);

    /**
     * 查询
     * @param sql 要执行的SQL语句
     * @param obj 参数数组
     * @return ResultSet结果集
     */
    public ResultSet select(String sql,Object[] obj);
}

接口实现类(BasicDAOImpl.java):对BasicDAO接口的实现
DBHelper是数据库帮助类,具体请参考我的另一篇文章 Java连接MySQL数据库

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class BasicDAOImpl extends DBHelper implements BasicDAO {

    Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    public void close(){
        DBHelper.closeConnection(conn,pst,rs);
    }

    @Override
    public int insert(String sql) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            return pst.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int insert(String sql, Object[] obj) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            for (int i=0; i<obj.length; i++){
                pst.setObject(i+1,obj[i]);
            }
            return pst.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public boolean update(String sql) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            if(pst.executeUpdate()>0) return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean update(String sql, Object[] obj) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            for (int i=0; i<obj.length; i++){
                pst.setObject(i+1,obj[i]);
            }
            if(pst.executeUpdate()>0) return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean delete(String sql) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            if(pst.executeUpdate()>0) return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean delete(String sql, Object[] obj) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            for (int i=0; i<obj.length; i++){
                pst.setObject(i+1,obj[i]);
            }
            if(pst.executeUpdate()>0) return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public ResultSet select(String sql) {
        try{
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
            return pst.executeQuery();
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public ResultSet select(String sql, Object[] obj) {
        try{
            conn = DBHelper.getConnection();pst = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
            for (int i=0; i<obj.length; i++){
                pst.setObject(i+1,obj[i]);
            }
            return pst.executeQuery();
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库接口类和接口实现类 的相关文章

  • 【Python】python读取excel超链接

    前言 表格存在两种格式 xls 和 xlsx xff0c 所以python存在两种库分别读取这两种格式表格超链接 openpyl针对 xlsx格式 xff0c xlrd针对 xls文件 示例如下 xff1a 1 openpyl coding
  • 基于51单片机的12864液晶演示器驱动

    span class token macro property span class token directive keyword include span span class token string lt reg52 h gt sp
  • Ubuntu安装VNC4Server遇到的问题与解决方法

    在Ubuntu安装VNC4Server时 xff0c 报错 xff1a Package 39 vnc4server 39 has no installation candidate 这是由于没有找到apt get的source 可以按照以下
  • sumo中随机产生车流

    在sumo中绘制地图 xff0c 然后利用sumo中的randomTrips py工具产生随机的车流量 一 首先绘制路网 xff0c 本文绘制了一个九宫格路网 xff08 myroad net xml xff09 xff0c 如下图 xff
  • 计算机网络第一章概述总结知识点

    第1章 概述 本章最重要的内容 xff1a 互联网边缘部分和核心部分的作用 xff0c 什么是分组交换 xff1f 计算机网络的性能指标有哪些计算机网络分层次的体系结构是怎样的 xff1f 什么是协议和服务 xff1f 本章的重要概念 互联
  • pip安装git

    解决 xff1a Cannot find command git do you have git installed and in your PATH 和系统找不到指定的文件 while executing command git http
  • 卷积神经网络的特征图可视化秘籍——PyTorch实现

    卷积神经网络的特征图可视化秘籍 PyTorch实现 可视化的定义及步骤PyTorch实现以预训练好的VGG16为例进行可视化关键代码剖析如果是自行搭建的网络 xff0c 如何索引网络层 xff1f 继续使用序号索引不使用序号 xff0c 直
  • pip出现的问题

    正常使用示例 xff1a 安装numpy pip install numpy 临时加镜像源 pip install numpy i https pypi tuna tsinghua edu cn simple 镜像源 xff1a 清华 xf
  • 词权重 (term weight)方案总结

    目录 1 无监督 unsupervised 方法1 1 统计方法 xff08 TF TF IDF YAKE 1 2 图方法 TextRank SingleRank TopicRank PositionRank 2 有监督 supervise
  • Windows上安装Curl工具

    一 介绍 curl是利用URL语法在命令行方式下工作的开源文件传输工具 它被广泛应用在Unix 多种Linux发行版中 xff0c 并且有DOS和Win32 Win64下的移植版本 二 安装步骤 2 1 下载资源包 官网 xff1a htt
  • ESP8266 Arduino开发环境从零开始配置

    目录 1 安装Arduino IDE2 添加 ESP8266 支持3 添加依赖库4 完毕 1 安装Arduino IDE Arduino IDE 是由 Arduino 官方提供的支持 C 语言的集成开发环境 xff0c 主要是针对 Ardu
  • 使用HDFS的Java接口对文件基本操作

    使用HDFS的Java接口进行文件的读写 FileSystem对象 要从Hadoop文件系统中读取文件 xff0c 最简单的办法是使用java net URL对象打开数据流 xff0c 从中获取数据 不过这种方法一般要使用FsUrlStre
  • elastic学习笔记(一)

    elasticsearch安装 xff08 V7 10 0 xff09 踩坑笔记 一 elasticsearch在6 X版本后不允许使用root账户启动 创建其他账户 adduser es 创建密码 passwd es 二 生产环境安装完毕
  • 主机可以ping通虚拟机但无法访问虚拟机某一端口

    问题描述 主机可以ping通虚拟机 xff0c 但是服务器启动状态下访问 192 168 200 152 8888失败 背景 UFW防火墙已经开放 8888 端口 原因和解法 firewall这个防火墙的8888端口没有开放 xff0c 使
  • WSL安装ubuntu18.04+2016VCS+Verdi——记录安装过程错误

    前言 xff1a 安装过程花了一个星期 xff0c 最开始是wsl的图形化界面一直没搞出来 xff0c 等图形化界面安装好之后 xff0c 安装vcs和verdi的过程又是一波三折 xff08 这段可不看 xff0c 总结一下自己踩过的坑
  • 【stm32】ST-LINK Connection error解决方法之一

    ST LINK报错原因之一 xff1a 固件丢失 好久没有用开发板和stlink xff0c 今天发现下载报错 xff0c 明明电脑已经装了stlink驱动 猜测可能是stlink固件丢失 span class token number 1
  • 云服务器VNC安装教程

    文章目录 1 VNC Viewer 注册及安装2 云服务器安装配置2 1 ssh安装和配置2 2 Tightvncserver 安装2 2 安装 gnome 桌面2 3 远程连接端口开启2 4 Xstartup文件编辑2 5 云服务器端口配
  • 浅谈STP协议

    1 STP协议解决什么问题 xff1f 解决网络拓扑中冗余链路产生的环路问题 2 STP协议有什么优缺点 xff1f 解决树形接口的可靠性问题 xff0c 有主备线路 xff0c 当主链路出现故障后 xff0c 可以感知网络的变化 xff0
  • Linux下CMake学习笔记和在QT的应用

    一 cmake的介绍 CMak可以让我们通过编写简单的配置文件去生成本地的Makefile xff0c 这个配置文件是独立于运行平台和编译器的 xff0c 这样就不用亲自去编写Makefile了 xff0c 而且配置文件可以直接拿到其它平台

随机推荐