刚刚,改造了下BaseDao……

今天在上课的时候,带着学生们写底层的jdbc连接数据库并且对数据表进行增删改查,写的那就一个痛苦啊……

从创建实体类到写Dao层代码再到表现层的Jsp页面,    写了好久好久……

终于写完了!!!

其实吧,主要还是DaoImpl层的代码写的太多,代码过于臃肿,反而BaseDao这个“工具类”却写的一点点。

于是,这不刚刚就把这个BaseDao改进了一下,将凡是公共可以共用的代码都提到了BaseDao中,DaoImpl层光写所需要实现的sql语句和对应的参数即可,剩下的任务由BaseDao去执行。

下面是BaseDao的代码:

package org.dao;import java.sql.*;
import java.util.List;import com.sun.org.glassfish.external.statistics.annotations.Reset;/*** * @author 24519* 连接数据库的工作类**/
public class BaseDaoNew {private Connection conn = null;private PreparedStatement pre;private ResultSet rs;//连接数据库public Connection getConn(){try{//加载驱动Class.forName("com.mysql.jdbc.Driver");//数据库连接字符串String url= "jdbc:mysql://localhost:3306/schooldb?user=root&password=root";//连接数据库conn = DriverManager.getConnection(url);}catch(Exception ex){ex.printStackTrace();}return conn;}//增删改public int ExecuteUpdate(String sql,List params) throws SQLException{int rel = 0;conn = getConn();pre = conn.prepareStatement(sql);if(params!=null){for(int i = 0;i<params.size();i++){pre.setObject(i+1, params.get(i));}}rel = pre.executeUpdate();return rel;}//查询public ResultSet ExecuteQuerty(String sql,List params) throws SQLException{conn = getConn();pre = conn.prepareStatement(sql);if(params!=null){for(int i = 0;i<params.size();i++){pre.setObject(i+1, params.get(i));}}return pre.executeQuery();}//关闭连接public void closeConn(Connection conn,PreparedStatement pre,ResultSet rs){try {if(rs!=null){rs.close();}if(pre!=null){pre.close();}if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}}

可以看得出来,我们将连接数据库,增删改、查询以及关闭连接都提取成独立的方法,在Impl层直接调用对应的是方法即可。

@Overridepublic Student login(String name, String pass,String info){Student student = new Student();String sql = "select * from student where sname = ? and spass = ?";BaseDaoNew base1 = new BaseDaoNew();List<Object> params = new ArrayList<Object>();params.add(name);params.add(pass);try {rs = base1.ExecuteQuerty(sql, params);while(rs.next()){student.setSid(rs.getInt(1));student.setSname(rs.getString(2));student.setSphone(rs.getString(3));student.setSpass(rs.getString(4));student.setSaddress(rs.getString(5));student.setSage(rs.getInt(6));}} catch (SQLException e) {e.printStackTrace();}finally{base1.closeConn(conn, pre, rs);}return student;

分享几个花拳绣腿的网页布局!

2020-11-10

常用CSS属性整理

2020-11-09

jsp的内置对象

2020-11-08

今天拍了一些照片!

2020-11-09

我的职校新生活

2020-11-07

今天,我们来抽个奖!!!!!

2020-11-06

今天 ,给大家变个魔术!!!

2020-11-05

点分享

点点赞

点在看

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

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

相关文章

ssl2340-格子游戏【并查集】

正题 题目链接 大意 有两个人在玩游戏&#xff0c;在一个n*n的矩阵的点上画线&#xff0c;有如果有线封了圈那么游戏结束&#xff0c;给出一些操作&#xff0c;求在那一轮结束了游戏&#xff0c;或没有结束游戏。 解题思路 用并查集把点相连&#xff0c;直到并查集形成环为…

ASP.NET Core MVC 过滤器介绍

过滤器的作用是在 Action 方法执行前或执行后做一些加工处理。使用过滤器可以避免Action方法的重复代码&#xff0c;例如&#xff0c;您可以使用异常过滤器合并异常处理的代码。 过滤器如何工作&#xff1f; 过滤器在 MVC Action 调用管道中运行&#xff0c;有时称为过滤器管…

dubbo小项目

完整Dubbo项目演示 1 原型 1.1 部门显示&#xff0c;显示全部部门信息 1.2 员工新增 1.3 查看部门员工 2 按照分布式架构进行设计项目 设定员工管理和部门管理不在同一个模块中&#xff0c;需要有一个员工管理项目和一个部门管理项目。 为了方便&#xff0c;不去每个项…

如何构建一套高可用的 APP 消息推送平台

转载自 如何构建一套高可用的 APP 消息推送平台 消息推送作为移动 APP 运营中的一项关键技术&#xff0c;已经被越来越广泛的运用。本文追溯了推送技术的发展历史&#xff0c;剖析了其核心原理&#xff0c;并对推送服务的关键技术进行深入剖析&#xff0c;围绕消息推送时产生…

为什么要有周考?周考是用来干什么的?

周考已经实行一年多的时间了&#xff0c;目前唯一用来检测学生们水平的可能就是周考的成绩了&#xff0c;不过&#xff0c;周考成绩也很能说明一切&#xff0c;每周周考的题目和范围都是本周所学知识&#xff0c;如果周考的成绩很差&#xff0c;那么可以很肯定的说&#xff0c;…

.NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

一、前言 为什么选择VS Code&#xff1f;VS Code 是一款跨平台的代码编辑器&#xff0c;想想他的哥哥VS&#xff0c;并是微软出品的宇宙第一IDE&#xff0c;那作为VS的弟弟&#xff0c;VS Code 也不会差&#xff0c;毕竟微软出品。反正ken是这么认为的本篇开发环境&#xff1f…

晨读,难道只是为了完成任务而读的吗?

前两天&#xff0c;看到一篇“湖北恩施的一名学生早读课上大汗淋漓”的文章&#xff0c;不禁想起了我们班的早读。01早读情况除周一升旗以外&#xff0c;其余的学习日都是有早读的&#xff0c;但是早读的利用率有多少就不得而知了。一般在前一天布置作业的时候&#xff0c;作业…

AOP in dotnet :AspectCore的参数拦截支持

距离上一篇AspectCore的介绍发布已经很长一段时间了&#xff0c;这篇文章也早该和大家见面&#xff0c;最近一直忙于适应新工作&#xff0c;并在业余时间有幸向何镇汐&#xff0c;Savorboard&#xff0c;农夫&#xff0c;AlexLEWIS等几位大牛请教学习&#xff0c;收获颇多。另一…

GitHub 发布了一款重量级产品,可直接运行代码

转载自 GitHub 发布了一款重量级产品&#xff0c;可直接运行代码 【导读】10月16日&#xff0c;GitHub Universe开发者大会如期举行&#xff0c;并重磅推出GitHub Actions&#xff0c;平台主管Sam Lambert称&#xff0c;这将是GitHub历史上最大的改变。此外&#xff0c;GitHu…

“老师,请您多关注一下我吧!!!”

一个班&#xff0c;有学习好的&#xff0c;有学习差的&#xff1b;有喜欢表现的&#xff0c;也有不喜欢表现的。01爱表现的类型&#xff1a;第一种&#xff0c;喜欢表现的学生平时总是让时不时的让老师关注到他&#xff0c;比如上课和老师积极互动的&#xff0c;老师问一个问题…

.NET Core 事件总线,分布式事务解决方案:CAP

背景 相信前面几篇关于微服务的文章也介绍了那么多了&#xff0c;在构建微服务的过程中确实需要这么一个东西&#xff0c;即便不是在构建微服务&#xff0c;那么在构建分布式应用的过程中也会遇到分布式事务的问题&#xff0c;那么 CAP 就是在这样的背景下诞生的。 最初打算做…

dubbo小项目2

1、项目结构搭建 父项目pom.xml <?xml version"1.0" encoding"UTF-8"?>-<project xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi"http://www.w3.org/2001/XM…

Java中的TreeSet集合会自动将元素升序排序

我们都知道&#xff0c;java中的集合可以分为这么两大类&#xff1a;Collection和Map &#xff0c;其中Collection 接口中又可以派生出来两个接口&#xff0c;分别为&#xff1a;List和Set接口。其中&#xff0c;Set下有HashSet&#xff0c;LinkedHashSet&#xff0c;TreeSet&a…

jsp中使用cookie时报错……

今天在看jsp中的cookie时&#xff0c;遇到一个比较麻烦的问题。关键代码如下&#xff1a;登录页面&#xff1a;login.jsp<form action"doLogin.jsp" method"post">用户名&#xff1a;<input type"text" name"sname" /><…

FastDFS(分布式文件系统)

Tracker&#xff1a;标准服务端口22122、HTTP端口8080 Storage&#xff1a;标准服务端口23000、HTTP端口8888 文章目录一、架构二、文件上传、下载、删除1 时序图2 流程说明3 代码实现一、架构 架构图&#xff1a; Client&#xff1a;客户端。使用java语言编写的项目属于客户…

微服务中的异步消息通讯

前言 在上一篇文章中&#xff0c;我们说到了异步消息通讯&#xff0c;下面这篇文章呢&#xff0c;大部分内容是翻译来自于这篇微软的文章&#xff0c;所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候&#xff0c;异步消息和事件驱动至关重要…

CSS3的几个变形案例……

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;那个……辣椒酱很好吃的&#xff0c;哈哈哈哈&#xff01;今天给大家分享的内容是利用CSS制作网页的动画。辣椒酱&#xff1a;自从有了这款辣椒酱&#xff0c;拌饭再也不用老干妈CSS变形CSS的变形包括这么几种效果&#xff…

我眼中的ASP.NET Core之微服务

前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序&#xff0c;想必大家都已经知道了&#xff0c;那就是eShopOnContainers。 我们先不看项目的后缀名称 OnXXX &#xff0c;因为除了 OnContainers 还有 OnAzure&#xff0c;OnWeb&#xff0c;OnKuberne…

形象的解释神经网络激活函数的作用是什么

转载自 形象的解释神经网络激活函数的作用是什么 神经网络中激活函数的作用 查阅资料和学习&#xff0c;大家对神经网络中激活函数的作用主要集中下面这个观点&#xff1a; 激活函数是用来加入非线性因素的&#xff0c;解决性模型所不能解决的问题。 下面我分别从这个方面…

CSS3中的动画示例

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;上一期我们分享了几个CSS变形案例&#xff0c;大家还记得有哪几个吗&#xff1f;原文在这里&#xff1a;CSS3的几个变形案例……今天&#xff0c;我们来看看CSS的过渡&#xff1a;过渡简单的来讲&#xff0c;就是元素由一种…