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

 在封装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;
}

 
  1. public void setMangerNo(Integer mangerNo) {

  2. this.managerNo = mangerNo;

  3. }

  4. public String getManagerName() {

  5. return managerName;

  6. }

  7. public void setManagerName(String managerName) {

  8. this.managerName = managerName;

  9. }

  10. public String getManagerPw() {

  11. return managerPw;

  12. }

  13. public void setManagerPw(String managerPw) {

  14. this.managerPw = managerPw;

  15. }

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 {

 
  1. JDBCUtil util = new JDBCUtil();

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

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

  4. int result = 0;

  5. try{

  6. PreparedStatement ps = util.creatStatement();

  7. ps.setString(1,managerName);

  8. ps.setString(2,managerPw);

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

  10. result = ps.executeUpdate();

  11. }atch (SQLException e) {

  12. e.printStackTrace();

  13. } finally {

  14. util.close();

  15. }

  16. return result;

  17. }

4)查询数据行

public class ManagerDao {

 
  1. JDBCUtil util = new JDBCUtil();

  2. public List findAll(){

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

  4. ResultSet rs = null;

  5. //创建List集合

  6. List list = new ArrayList();

  7. try{

  8. PrepatedStatement ps = util.creatStatement();

  9. rs = ps.executeQuery();

  10. while(rs.next()){

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

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

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

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

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

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

  17. list.add(manager);

  18. }

  19. } catch (SQLException e) {

  20. e.printStackTrace();

  21. } finally {

  22. util.close(rs);

  23. }

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

  25. return list;

  26. }

4、测试
1)查询语句

在这里插入图片描述

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

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

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

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

在这里插入图片描述

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值