必备 | SQL语句的封装操作大全

news2024/11/27 16:33:05

 在封装SQL语句之前,我们得知道什么是DAO封装与实体类以及JDBC工具类的封装与连接数据库的具体流程。

封装SQL语句的好处:

封装SQL语句后就可以导包,给其他的工程使用,大大降低开发的强度,减少代码的冗余。如何导包给其他工程使用请看 IDEA的JAR包生成

一、DAO封装

1、介绍
1)DAO( DataBase Access Object ):数据库访问对象
2)作用:数据库访问对象在开发时提供针对某张表的操作细节【增删改查】
3)优点:

优点1,在管理系统开发时,通过数据库访问对象可以避免反复的 SQL 命令书写

优点2,在管理系统开发时,通过数据库访问对象可以避免反复的 JDBC 开发步骤书写

(4)DAO类:提供数据库访问对象的类

2、DAO类开发规则

1)一个DAO类封装的是一张表操作细节

2)DAO类命名规则:表名 + Dao。比如封装 emp 表操作细节:EmpDao;封装Dept表操作细

3.DAO类所在包命名规则:公司网站域名.dao , 比如 com.bjpowernode.dao在这里插入图片描述

二、实体类

1、一个实体类用于描述一张表结构
2、实体类的类名应该与关联的表名保持一致,但是可以忽略大小写
DEPT -----------> public class Dept{ }
3、实体类的属性应该与关联的表文件字段保持一致在这里插入图片描述

在这里插入图片描述
4、实体类的一个实例对象用于在内存中存储对应的表文件中一个数据行
Dept:

在这里插入图片描述

JVM内存:

在这里插入图片描述
三、封装SQL语句

1、在数据库中建表

1)对表内容的设计在这里插入图片描述
2)命名为 “ 管理员信息表 ”,表中内容如下表所示:在这里插入图片描述

2、实体类的封装
public class Manager{
private Integer ManagerNo;
private String ManagerName;
private String managerPw;
//带参构造
public Manager(Integer mangerNo, String managerName, String managerPw) {
this.managerNo = mangerNo;
this.managerName = managerName;
this.managerPw = managerPw;
}
//无参构造
public Manager() {
}
//setter and getter方法
public Integer getMangerNo() {
return managerNo;
}

public void setMangerNo(Integer mangerNo) {
    this.managerNo = mangerNo;
}

public String getManagerName() {
    return managerName;
}

public void setManagerName(String managerName) {
    this.managerName = managerName;
}

public String getManagerPw() {
    return managerPw;
}

public void setManagerPw(String managerPw) {
    this.managerPw = managerPw;
}

3、DAO的封装

以下代码都是写在一个程序中,这里为了方便阅读理解分别都一个一个拆开来写。

1)添加数据行
public class ManagerDao {
JDBCUtil util = new JDBCUtil();
public int add(String managerNo,String managerName,String managerPw){
String sql = “insert into 管理员信息表(管理员编号,管理员姓名,管理员密码) values(?,?,?)”;
int result = 0;
try{
PreparedStatrment ps = util.creatStatement();
ps.setInt(1,Integer.valueOf(managerNo));
ps.setString(2,managerName);
ps.setString(3,managerPw);
result = ps.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
} finally {
util.close();
}
return result;
}

2)删除数据行

public class ManagerDao {
JDBCUtil util = new JDBCUtil();
public int delete(String managerNo){
String sql = “delete from 管理员信息表 where 管理员编号 = ?”;
int result = 0;
try{
PreparedStatement ps = util.creatStatement();
ps.setInt(1,Integer.valueOf(managerNo));
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
util.close;
}
return result;
}
}

3)更新数据行

public class ManagerDao {

JDBCUtil util = new JDBCUtil();

public int update(String managerNo,String managerName,String managerPw){

    String sql = "update 管理员信息表 set 管理员姓名=?,管理员密码=? where 管理员编号=?";

    int result = 0;

    try{

        PreparedStatement ps = util.creatStatement();

        ps.setString(1,managerName);

        ps.setString(2,managerPw);

        ps.setInt(3,Integer.valueOf(mangagerNo));

        result = ps.executeUpdate();

    }atch (SQLException e) {

        e.printStackTrace();

    } finally {

        util.close();

    }

    return result;

}

4)查询数据行

public class ManagerDao {

JDBCUtil util = new JDBCUtil();

public List findAll(){

    String sql = "select * from 管理员信息表";

    ResultSet rs = null;

    //创建List集合

    List list = new ArrayList();

    try{

        PrepatedStatement ps = util.creatStatement();

        rs = ps.executeQuery();

        while(rs.next()){

            int managerNo = rs.getInt("管理员编号");

            String managerName = rs.getString("管理员姓名");

            String managerPw = rs.getString("管理员密码");

            //创建manager实体类对象,并把以上参数传入到实体类中

            Manager manager = new Manager(managerNo,managerName,managerPw);

            //每获得一行数据,就把这一行内容放进list集合

            list.add(manager);

        }

    } catch (SQLException e) {

        e.printStackTrace();

    } finally {

        util.close(rs);

    }

    //list放入的是表中所有数据,因此返回list集合

    return list;

}

4、测试
1)查询语句

在这里插入图片描述

在这里插入图片描述
2)添加语句

在这里插入图片描述在这里插入图片描述
3)更新语句

在这里插入图片描述在这里插入图片描述
4)删除语句

在这里插入图片描述在这里插入图片描述5)附带模块创建目录

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MFC第二十九天 CView类的分支(以及其派生类的功能)、MFC六大关键技术

文章目录 CView类的分支CEditViewCHtmlViewMainFrm.h CMainFrame 类的接口CMainView .h CListCtrl与CListView的创建原理 CTreeViewCTreeCtrl类简介CTreeCtrl类的原理以及常用功能 MFC六大关键技术视图和带分割栏的框架开发与消息路由CLeftView.cppCRightView.hCRightView.cppC…

Linux入门级命令

目录 1、开启终端 2、Linux命令格式 3、扩展:Linux下的命令补全 4、切换用户 5、uname命令 6、ls命令 ☆ 用法一 ☆ 用法二 ☆ 用法三 7、pwd命令 8、cd命令 9、clear命令 10、reboot命令 11、shutdown命令 12、type命令 13、history命令 14、host…

【学习】若依源码(前后端分离版)之 “ 分页以及查询的功能实现”

大型纪录片:学习若依源码(前后端分离版)之 “ 分页以及查询的功能实现” 前端部分后端部分结语 包括代码生成也好,最原始的系统也好,若依里每个页面只要有数据,基本上就有分页的功能,所以理解分…

背上大书包准备run之CSS篇

时隔一年多又要准备面试嘞。唉,人生呐,真是变幻莫测哟~ 社招应该不会问很多css吧,,,但是应该也会问吧,,,应该是从好多好多问题里只抽一两个问问吧😭 哦还有h5&#xff…

zabbix简易入门:基本的网络监控、WEB监控、拓朴图规划

需求背景: 我们越来越发现:网络越来越复杂,网络、应用、云端……故障点随时可能发生,而我们不能人工盯着所有的问题,所以,网管软件是必须的。那么没有预算的情况下,我们只好自己布署简单的…

24届近5年浙江工业大学自动化考研院校分析

今天给大家带来的是浙江工业大学控制考研分析 满满干货~还不快快点赞收藏 一、浙江工业大学 学校简介 浙江工业大学(Zhejiang University of Technology),简称浙工大,主校区位于浙江省杭州市,是教育部与…

Stream API总结

Stream是Java 8提供的新特性,使得可以方便的对集合进行各种操作,本篇主要讲解StreamAPI常用方法。 Java8中有两大最为重要的改变。 第一个是 Lambda 表达式; 另外一个则是 Stream API(java.util.stream.*)。 Stream 是 Java8 中处理集合的关…

Java反射机制详解与使用方法大全!!!

❤ 作者主页:李奕赫揍小邰的博客 ❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~* 🍊 记得点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习!!!🎉🎉 文章目录 Java反射机制…

Node.js学习笔记-03

七、网络编程 1. 构建 TCP 服务 TCP 是面向连接的协议,显著特征 在传输之前需要3次握手形成会话。 客户端 ——请求连接——> 服务器端 ——响应——> 客户端 ——开始传输——> 服务器端。 2. 构建 UDP 服务 3. 构建 HTTP 服务 http模块 在node中HTT…

电脑数据怎么加密?电脑数据加密软件有哪些?

在生活和工作中,我们总离不开电脑,而电脑中那些重要的数据,需要我们加密保护。那么电脑数据该怎么加密呢?电脑数据加密软件又有哪些呢?下面我们就来了解一下吧。 电脑数据加密软件 一般来说,常见的电脑加密…

Drools用户手册翻译——第四章 Drools规则引擎(十四)复杂事件处理(CEP)滑动窗口和内存管理

甩锅声明:本人英语一般,翻译只是为了做个笔记,所以有翻译错误的地方,错就错了,如果你想给我纠正,就给我留言,我会改过来,如果懒得理我,就直接划过即可。 目录 时间或长…

详解配置交换机多生成树MSTP+VRRP 的典型组网

详解配置交换机多生成树MSTPVRRP 的典型组网 组网: 1. 这是一个由三台交换机组成的倒三角型二层交换网络;网络中有4个VLAN:10、20、30、40;接口编号如图所示;SW3为接入层交换机,SW1、SW2为汇聚层交换机&am…

论文阅读 - Neutral bots probe political bias on social media

论文链接:Neutral bots probe political bias on social media | EndNote Click 试图遏制滥用行为和错误信息的社交媒体平台被指责存在政治偏见。我们部署中立的社交机器人,它们开始关注 Twitter 上的不同新闻源,并跟踪它们以探究平台机制与用…

linux自动程序

嵌入式linux下有软件需要自启动,只需要在/etc/init.d/rcS末尾添加所要启动的程序即可,开机就会自动运行 vi /etc/init.d/rcS在文件末尾添加 例:

Unity-Linux部署WebGL项目MIME类型添加

在以往的文章中有提到过使用IIS部署WebGL添加MIME类型使WebGL项目在浏览器中能够正常加载,那么如果咱们做的是商业项目,往往是需要部署在学校或者云服务器上面的,大部分情况下如果项目有接口或者后台管理系统,后台基本都会使用Lin…

对p-n结/AlGaN/GaN HEMTs中n-GaN掺杂浓度对栅极可靠性的影响

目录 第35届功率半导体器件与集成电路国际研讨会论文集2023年5月28日至6月1日,中国香港南方科技大学电气电子工程系,深圳标题:Impacts of n-GaN Doping Concentration on Gate Reliability of p-n Junction/AlGaN/GaN HEMTs摘要信息解释研究了…

MySQL基本语法总结

创建数据库 create database 数据库名; -- 字符集要看mysql 版本, 5.7 Latin, 8.0 utf8 create database 数据库名 character set ‘utf8’;-- 指定数据库的字符集 create database IF NOT EXISTS 数据库名 character se…

k8s-----集群调度

目录 一:调度约束 二:Pod 启动创建过程 三:k8s调度过程 1、Predicate 有一系列的常见的算法 2、常见优先级选项 3、指定调度节点 (1)nodeName指定 (2)nodeSelector指定 四:亲和…

数字工厂管理系统能给企业管理者带来哪些好处

数字工厂管理系统是现代企业管理的神器,它能够以数字化方式管理企业的生产过程,实现生产过程的自动化、智能化和可视化。数字工厂管理系统解决方案不仅提高了生产效率,还给企业管理者带来了很多好处。下面就让我们来详细了解一下。 首先&…

【Android】MVC,MVP,MVVM三种架构模式的区别

MVC 传统的代码架构模式,仅仅是对代码进行了分层,其中的C代表Controller,控制的意思 将代码划分为数据层,视图层,控制层,三层之间可以任意交互 MVP MVP是在MVC基础上改进而来的一种架构,其中的…