当前课程知识点:Web后端开发技术 >  第9章 某高校毕业生信息发布系统开发 >  9.1 技术准备 >  9.1.4_技术准备- JDBC工具类

返回《Web后端开发技术》慕课在线视频课程列表

9.1.4_技术准备- JDBC工具类在线视频

下一节:9.2系统设计:某高校毕业生信息发布系统开发

返回《Web后端开发技术》慕课在线视频列表

9.1.4_技术准备- JDBC工具类课程教案、知识点、字幕

同学你好

今天我们学习这个知识点

因为在我们的项目当中会大量的

与数据库操作与数据库进行交互

因此我们定义了一个DBUtil

这样的一个工具类

来封装一些简单的数据库操作

以使我们的代码更加简洁和复用

那么在这个Util当中

我首先定义几个静态的常量

比如说和数据库的连接

用户名

密码

它的url

当然了实际情况这些常量并不应该

写死在我们的代码当中

应该搁到我们的一个配置文件当中

然后在这个代码当中去读取我们的

配置文件

这样的话我们修改的时候

只需修改我们的配置文件

而不用再修改代码就可以了

但是这里为了逻辑上比较清晰

让大家好理解

我们就暂且放在我们代码里了

那么首先我们就要注册我们的

数据库的驱动

那么这个驱动我是放在一个静态代码块

也就是说一旦我DBUtil

被调用第1次的时候

它就会静态代码块就会被运行

那么这个驱动就会注册了

那么它就会常驻内存

下一个方法是我们的获取连接的方法

那么这个方法通过我们的

driverManager获取一个连接

根据我们的url

用户名以及密码

我们就可以拿到这个连接

然后在其他地方用的时候就可以直接

调用connection方法

这样的话我们可以把它的异常进行

一个try catch的处理

那么在我们主要写代码的地方

直接调用getConn这个

方法就可以了

非常的简洁

那么下一个大家去想

我们的增加操作

删除操作

还有修改操作

最终实际上执行的都是

executeUpdate方法

那么所以说我这里我自定义一个

executeUpdate的方法

它传入的参数是sql

和我们sql它可能会有的一些

参数

这个参数类型我就搁成object

因为它有可能是整型的

有可能是字符串类型的等等

这样的话我都给他搁到我这个

Object数组当中传进来

然后设置进去就可以了

那么它的实现我简单的带大家去

写一下

首先我们要获取一个连接

那么这个连接现在我就可以通过

get

我自己的

getConnection方法就可以了

然后executeUpdate

它实际上是会返回一个数值

这个数值表示它影响的函数

比如说我添加的时候影响一行

我更新的时候有可能影响三行

那么这时候我定一个变量

变量就是我这个操作完了以后会

影响的行数

我初始化给他初始化成负1

那么紧接着我就要定义我的

preparedStatement对象

然后我这个对象可以通过我的

conn.preparedStatement来获取

然后把我的sql传进去

那么我sql里面有可能是

带那种问号参数的

那么下一步我先给他按CTRL+1

处理异常

下一步我就要把这个参数设置到

我sql语句里面

那么这个参数有可能我不传

所以说我要判断一下

如果我的params是空值

或者我params它即使不是空值

但是它的长度是等于0的

也就是我

实际上没传我就可以直接去执行

sql语句就可以了

executeUpdate方法

大家可以看到它返回的是一个整型

表示我影响的数据

我就给他放回到我赋给我

return number这个值

就可以了

那么否则

否则我就要去设置参数

for int i=0

小于我们

params.length

i++

就pstmt.我用set

因为我不知道它的类型

直接用setObject占了就可以了

那么注意我们参数类型是从1开始的

所以说我这里得是i加上1

那么我当前那个参数是ms

第i个参数就可以了

然后我是不是

还需要调用这样的一句话

帮我参数执行完了以后

去执行sql语句就可以了

那么大家去想一想

我这一堆东西能不能稍微

给它简化一点

实际上可以用一个if

比如说这两个参数都没有取到的情况下

我直接就给它设置参数

设置完参数直接执行

execute update也是可以的

那么具体怎么去写

因为这样写比较好理解

但是代码稍微多几行

但是关系并不是特别大

首先先方便大家理解是第一位

然后我把 return number给返回

当然在返回之前

我肯定要关闭prepare statement对象

在下面

我有一个这样的关闭方法

但是我现在还没有实现

我先调用他一下

等待会儿再去实现

把pstmt给传进去就可以了

那么总之我肯定要把

prepare statement给关掉

那么我这里又搁了一个重载的方法

重载的方法是只有sql语句

没有参数的

方便大家去使用

那么大家去想重载的方法

我是不是实际上就是调用的

我上面这个方法

excuteupdate方法

我传一个sql进去

然后我的参数是null就可以了

因为在这里我已经对

null值进行了处理

那么在有些时候我需要在web拿到

pstmt对象

我给他返回

那么这时候我就可以

直接调用我的conn方法

然后设置我的pstmt对象

然后因为我这里同样

也是牵涉到设置参数

所以说我把这一段拷过来

Ctrl C Ctrl V

只不过大家注意

我们这里面不去做任何的执行

也就是说它是没有参数

我就什么都不做了

这就回到这

如果有参数

我就给他设置进去

当然不去执行

然后我把pstmt对象

给他返回就可以了

就这个样子非常简单

那么下面有几个关闭的方法

首先我是传进来三个

因为我可能会关resultSet

pstmt还有conn 那么这时候我可以

判断一下我们的resultset

它不等于空值

然后我们才会进行关rs.

close

要处理异常control加1

surround

with try catch

同样的逻辑我们需要判断

如果我们的pstmt不等于空

我们pstmt.

close

Surround with

try catch

同样的逻辑

我们要判断我们的conn不等于

我们conn.

close

同样try catch ctrl+1

surround with

try catch

好了

这时候我就把这三个对象都关掉了

那么大家想

close prepared statement

我想关他是不是我这样调就行了

直接调close方法

我的rs传null

我的对应的prepare statement

就是我当前这个对象

我的conn

如果大家去传这样的话

大家觉得可能行

但是这样在这里拿不到conn对象

大家说这么去传

这样写实际上有些问题的

因为我这里的conn不等于0

我preparedStatement

它在创建的时候

比如说我在创建的时候

实际上它是有它的conn来创建的

所以说我应该是啥

拿到他的conn进行关闭

所以说我这块怎么去写这块应该是

通过我的pstmt.getConnection

也就是说创建pstmt的connection

然后给他进行关闭才行

当然这里头也会发生try catch

给它surround一下就可以了

那么这个是close conn

我们就可以直接调用close方法

rs没有

pstmt没有

然后把我当前的conn给传进去

就可以了

这是我的工具类

为了验证我这个工具类对不对

我这里写了一个main方法

然后我直接调用我的DBUtil

executeUpdate

然后往我之前给大家讲的

student数据库里

name和age

插入两条值

这两条值我new一个Object数组

分别是jjq3和3

我们来运行一下这个代码

看一下效果

现在代码运行完了

我们来看一下

数据库里有没有这个值

大家可以看到已经有我们jjq3和3

这个值了

那么当然了

大家也可以把这个方法再改成其他的

方法

比如说我们是想update

Update一个

Student

比如说set年龄等于某一个值

Where

我们的name是等于某一个值的

现在我想把年龄给改成

比如说35

对哪个用户开始改

对我们jjq3这个用户进行更改

那么大家可以知道

现在这个值是3

我要改成35

运行一下这个方法

得把之前那条给注释掉

要不就会又插入一条

jjq3

现在应该已经插入了

没关系

又插入一条

然后两个都改成35了

Ok

我们再试一个方法

比如说我们的删除方法实际上都是一样的

delete from student

where name等于多少

设置一个值进去

现在我只想把jjq3删掉 肯定是删了2条

那么我们同时还能返回一个

具体影响条数

你可以打印出来看一眼

这里我们就不进行打印了

我们代码已经执行完了

我们看一下记录有没有被删除

刷新一下

大家可以看到我的这两条记录已经都

被删除了

所以说有了这个工具类

我们在执行对应的sql语句的话

这个代码就会显得非常的简洁了

这个知识点就讲到这里

谢谢

Web后端开发技术课程列表:

第1章 Java Web开发准备

-1.0 导学

--1.0.1 导学

-1.1 Web应用开发概述

--1.1.1 Web应用简介

--1.1.2 Web开发技术

--1.1.3 测试

-1.2 准备Java Web应用开发环境

--1.2.1 准备Java Web应用开发环境

--1.2.2 测试

--1.2.3 谈谈JavaWeb优势和学习方法

-1.3 任务实现:Hello World Web项目

--1.3.1 Hello World Web项目

--1.3.2 测试

-1.4 小结

--1.4.1 小结

-本课程所有代码

--课程参考代码

第2章 Servlet技术基础

-2.0 导学

--2.0.1 导学

-2.1 Servlet概述

--2.1.1 Servlet简介

--2.1.2 Servlet API

--2.1.3 测试

-2.2 创建Servlet

--2.2.1 Hello Servlet

--2.2.2 Servlet配置

--2,2,3 作业

-2.3 Servlet应用

--2.3.1 处理超链接请求

--2.3.2 处理form表单请求

--2.3.3 处理结果

--2.3.4 测试

-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)

--2.4.1 注册代码实现

--2.4.2 登录代码实现

--2.4.3 测试

--2.4.4谈一谈jQuery前端开发框架

-2.5 ServletConfig接口

--2.5.1 ServletConfig接口

-2.6 ServletContext接口

--2.6.1 ServletContext接口

-2.7 HttpServletRequest接口

--2.7.1 获取请求报文信息

--2.7.2 上传照片

--2.7.3 获取网络连接信息

--2.7.4 存取请求域属性

--2.7.5 测验

--2.7.6 在请求转发和重定向过程中传递数据

-2.8 HttpServletResponse接口

--2.8.1 HttpServletResponse接口

--2.8.2 输出服务器端图片

--2.8.3 测试

-2.9 任务实现:某高校毕业生信息发布系统-简历添加

--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加

-2.10 小结

--2.10.1 小结

-动画演示:Java Web应用服务器处理客户端请求的过程

--Java Web应用服务器处理客户端请求的过程

第3章 会话跟踪

-3.0 导学

--3.0.1 导学

-3.1 Cookie技术

--3.1.1 Cookie技术概述

--3.1.2 Cookie技术应用-自动登录

--3.1.3 测试

-3.2 Session技术

--3.2.1 Session技术概述

--3.2.2 Session技术-Session技术应用购物车

--3.2.3 测试

-3.3 URL重写与隐藏表单域

--3.3.1 URL重写技术与隐藏表单域

--3.3.2 测试

-3.4 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.2 讨论会话跟踪技术的应用场景

-3.5 小结

--3.5.1 小结

第4章 JSP基础

-4.0 导学

--4.0.1 JSP导学

-4.1 jsp概述

--4.1.1 JSP概述

--4.1.2 测试

-4.2 脚本元素

--4.2.1 脚本元素

--4.2.2 测试

-4.3 指令元素

--4.3.1 指令元素

--4.3.2 测试

-4.4 动作元素

--4.4.1 动作元素

--4.4.3 测试

-4.5 内置对象

--4.5.1 内置对象(1)

--4.5.2 内置对象(2)

--4.5.3 测试

-4.6 JavaBean

--4.6.1 JavaBean概述

--4.6.2 分步注册

--4.6.3 测试

-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.2 在JSP页面显示内容的都有哪些方法

-4.8 小结

--4.8.1 小结

第5章 表达式语言

-5.0 导学

--5.0.1 表达式语言

--5.0.2 测试

-5.1 el语法

--5.1.1 EL语法

--5.1.2 测试

-5.2 el隐含对象

--5.2.1 EL隐含对象

--5.2.2 测试

-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.2 测试

-5.4 小结

--5.4.1 小结

--5.4.2 讨论el表达式的优势

第6章 标准标签库

-6.0 导学

--6.0.1 标准标签库

--6.0.2 测试

-6.1 核心标签库

--6.1.1 通用标签

--6.1.2 条件标签

--6.1.3 迭代标签

--6.1.4 URL标签

--6.1.5 测试

-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.2 测试

-6.3 小结

--6.3.1 小结

--6.3.2 讨论如何实现自定义标签

第7章 Filter和Listener

-7.0 导学

--7.0_导学

-7.1 过滤器

--7.1.1过滤器(1)

--7.1.2过滤器(2)

--7.1.3 测试

-7.2 监听器

--7.2.1.1与ServletContext相关的监听器

--7.2.1.2示例:访问网站计数功能

--7.2.2.1与Session相关的监听器

--7.2.2.2示例:显示在线用户名称

--7.2.3.1与Request相关的监听器

--7.2.3.2示例:实时显示访问网站用户信息示例

--7.2.4 测试

-7.3 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.2 测试

-7.4 小结

--7.4.1小结

--7.4.2讨论filter和listener使用场景

第8章 JDBC

-8.0 导学

--8.0_导学

-8.1 JDBC API

--8.1.1 JDBC API

--8.1.2 测试

-8.2 JDBC API访问MySQL基本步骤

--8.2.1 JDBC API

--8.2.2 测试

-8.3 任务实现:某高校毕业生信息发布系统-注册与登录

--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)

--8.3.2 测试

-8.4 小结

--8.4.1小结

--8.4.2 讨论JDBC工具类

第9章 某高校毕业生信息发布系统开发

-9.0导学

--9.0导学

-9.1 技术准备

--9.1.1技术准备-MVC模式

--9.1.2技术准备-Ajax技术

--9.1.3技术准备-jQuery对Ajax的实现

--9.1.4_技术准备- JDBC工具类

--9.1.5 测试.

-9.2 系统设计

--9.2系统设计:某高校毕业生信息发布系统开发

-9.3 系统实现

--9.3.1完善登陆和注册功能

--9.3.2完善简历添加功能

--9.3.3完善简历修改功能

--9.3.4.1首页分页显示

--9.3.4.2首页分页显示

-9.4 小结

--9.4.1小结

--9.4.2讨论:分页组件

9.1.4_技术准备- JDBC工具类笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。