当前位置: 首页 > news >正文

BaseDao封装增删改查

文章目录

  • 什么是BaseDao
  • 操作代码
    • 增删改
    • 查询单个数据
    • 查询多个数据
  • 总结

什么是BaseDao

BaseDao是:

数据库里负责增加,删除,修改,查询
具体来说是一种接口代码,公共方法的接口类。
在dao层新建basedao,其他dao层接口继承basedao
相当于父类继承子类
用来创建其他dao包

操作代码

增删改

import java.sql.*;public class BaseDao {private String driver = "com.mysql.cj.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/20240326zy";//mysql的数据库private String user = "root";//用户名private String password = "sasa";//密码/*** 获取数据库连接* @return 返回连接*/public Connection getConnection(){Connection conn = null;try {Class.forName(driver);conn = DriverManager.getConnection(url,user,password);} catch (Exception e) {e.printStackTrace();}return conn;}/*** 释放资源* @param rs* @param prs* @param conn*/public void closeAll(ResultSet rs,PreparedStatement prs,Connection conn){try {if (rs!=null){rs.close();}if (prs!=null){prs.close();}if (conn!=null){conn.close();}}catch (Exception e){e.printStackTrace();}}/*** 增删改* @param sql sql语句* @param objs 参数* @return*/public int exceuteUpdate(String sql,Object... objs){int num = 0;try {Connection conn = getConnection();PreparedStatement prs = conn.prepareStatement(sql);for (int i = 0; i < objs.length; i++) {prs.setObject(i+1,objs[i]);}num = prs.executeUpdate();closeAll(null,prs,conn);}catch (Exception e){e.printStackTrace();}return num;}
}

查询单个数据

/*** 查询一个字段 (只会返回一条记录且只有一个字段;常用场景:查询总数量)* @param sql* @param params* @return*/public static Object findSingleValue(String sql, List<Object> params) {Object object = null;Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {// 获取数据库连接connection = getConnection();// 预编译preparedStatement = connection.prepareStatement(sql);// 如果有参数,则设置参数,下标从1开始if (params != null && params.size() > 0) {// 循环设置参数,设置参数类型为Objectfor (int i = 0; i < params.size(); i++){preparedStatement.setObject(i+1, params.get(i));}}// 执行查询,返回结果集resultSet = preparedStatement.executeQuery();// 判断并分析结果集if (resultSet.next()) {object = resultSet.getObject(1);}} catch (Exception e) {e.printStackTrace();}return object;}

查询多个数据

首先我们要有个实类,必须和连接的那个数据库中的列一致
在这里插入图片描述
然后创建一个实类的Dao,以下就是查询代码


import zy20240326.entity.brand;//这个就是实类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class brandDao {BaseDao bd = new BaseDao();//创建对象PreparedStatement prs = null;ResultSet rs = null;public List<brand> getAll(){List<brand> list = new ArrayList<>();//创建一个对象Connection conn =bd.getConnection();//获取连接String sql = "select * from brand";try {prs = conn.prepareStatement(sql);rs = prs.executeQuery();while (rs.next()){brand brand = new brand();brand.setBrandid(rs.getInt("Brandid"));brand.setBrandName(rs.getString("BrandName"));list.add(brand);//获取查询到的值并且增到对象中}bd.closeAll(rs,prs,conn);//关闭连接} catch (Exception e) {e.printStackTrace();}return list;}
}

运行代码

public class daoTest {public static void main(String[] args) {brandDao dao = new brandDao();List<brand> list = dao.getAll();for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i).getBrandid() +"---"+list.get(i).getBrandName());}}
}

运行结果
在这里插入图片描述

总结

以上操作就是一些简单的BaseDao的增删改查

http://www.lryc.cn/news/328144.html

相关文章:

  • Redis入门到实战-第十三弹
  • 深度学习InputStreamReader类
  • 2023年后端面试总结
  • axios实现前后端通信报错Unsupported Media
  • 网络套接字补充——TCP网络编程
  • Nginx-记
  • JS面试题:call,apply,bind区别
  • Charles抓包配置代理手机连接
  • NA555、NE555、SA555和SE555系列精密定时器
  • 黑马鸿蒙笔记2
  • 微信小程序uniapp+vue3+ts+pinia的环境搭建
  • MongoDB聚合运算符:$let
  • HarmonyOS像素转换-如何使用像素单位设置组件的尺寸。
  • 【前端面试3+1】05v-if和v-show的区别、v-if和v-for能同时使用吗、Vuex是什么?【合并两个有序链表】
  • Unity WebRequest 变得简单
  • vue 窗口内容滚动到底部
  • 代码随想录算法训练营Day38|LC509 斐波那契数列LC70 爬楼梯LC746 使用最小花费爬楼梯
  • Qt5.14.2 大神的拖放艺术,优雅而强大的交互体验
  • python3将exe 转支持库错误 AssertionError: None does not smell like code
  • [EFI]Dell Inspiron 15 5567 电脑 Hackintosh 黑苹果efi引导文件
  • 大学 Python 程序设计实验报告:判断密码是否符合要求
  • 基于SpringBoot的农产品直卖平台
  • DevSecOps平台架构系列-微软云Azure DevSecOps平台架构
  • 操作系统:管程与进程通信机制解析
  • inno setup 卸载程序 删除整个安装目录
  • 【Vue3源码学习】— CH2.5 reactiveEffect.ts:Vue 3响应式系统的核心
  • K8S的mountPath和subPath
  • notepad++里安装32位和64位的16进制编辑器Hex-Editor
  • Python类的基本结构
  • 利用HIVE的窗口函数进行SQL查询中出现的问题记录