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

网站建设流程讯息附近电脑培训速成班一个月

网站建设流程讯息,附近电脑培训速成班一个月,源码网站跟自己做的网站区别,建立保密工作风险评估监测预警文章目录 前言一、PrepareStatement类是什么?二、实操展示 1.增2.删3.改4.查总结 前言 既然连接数据库都可以通过java语言实现,那么通过java语言对数据库进行增删改查的操作自然是顺理成章的事情了。 一、PrepareStatement类是什么? PrepareS…

文章目录

  • 前言
  • 一、PrepareStatement类是什么?
  • 二、实操展示
    • 1.增
    • 2.删
    • 3.改
    • 4.查
  • 总结

前言

        既然连接数据库都可以通过java语言实现,那么通过java语言对数据库进行增删改查的操作自然是顺理成章的事情了。


一、PrepareStatement类是什么?

         PrepareStatement类是Java JDBC API中的一个类,用于执行预编译的SQL语句。这个类实现java语言增删改查数据库的功能。它是Statement的子接口,提供了更高级别和更灵活的功能。(所以在编译SQL语句的时候,不要使用Statement类,直接使用它的子接口吧!)

        通过使用PrepareStatement类,可以先将SQL语句发送到数据库进行编译,然后可以重复执行该语句,并且可以使用参数化查询和批处理等高级功能。

        PrepareStatement类可以防止SQL注入攻击,提高性能,并且可以方便地处理不同类型的数据。

        SQL注入攻击,以statement类为例,当使用Statement对象执行动态拼接SQL语句时,如果不对用户输入进行正确的过滤和转义,攻击者可以通过构造恶意的“密码"进行输入来修改或执行未经授权的SQL语句。(利用转义漏洞,绕过了账号密码,直接访问并可以攻击数据)

        PrepareStatement的构造方法:

connection.PrepareStatement(String sql);
//创建一个新的PrepareStatement对象,以指定的SQL语句初始化。connection.PrepareStatement(String sql, int autoGeneratedKeys);
//创建一个新的PrepareStatement对象,以指定的SQL语句和生成的键标志初始化。connection.PrepareStatement(String sql, int[] columnIndexes);
//创建一个新的PrepareStatement对象,以指定的SQL语句和列索引标志初始化。connection.PrepareStatement(String sql, String[] columnNames);
//创建一个新的PrepareStatement对象,以指定的SQL语句和列名标志初始化。

        PrepareStatement类是没有直接的构造方法的,但是可以通过Connection对象调用PrepareStatement()方法来创建自己的对象。第一个方法是最经常使用的,其他的想忽略也行。

PrepareStatement类的常用方法
方法功能描述返回值
setNull(int parameterIndex, int sqlType)将指定的参数设置为SQL NULLvoid
setBoolean(int parameterIndex, boolean x)将指定参数设置为给定的Java布尔值void
setByte(int parameterIndex, byte x)将指定参数设置为给定的Java字节值void
setShort(int parameterIndex, short x)将指定参数设置为给定的Java short值void
setInt(int parameterIndex, int x)将指定参数设置为给定的Java int值void
setLong(int parameterIndex, long x)将指定参数设置为给定的Java long值void
setFloat(int parameterIndex, float x)将指定参数设置为给定的Java float值void
setDouble(int parameterIndex, double x)将指定参数设置为给定的Java double值void
setBigDecimal(int parameterIndex, BigDecimal x)将指定参数设置为给定的Java BigDecimal值void
setString(int parameterIndex, String x)将指定参数设置为给定的Java String值void
setBytes(int parameterIndex, byte[] x)将指定参数设置为给定的Java 字节数组void
setDate(int parameterIndex, Date x)将指定参数设置为给定的SQL date值void
setTime(int parameterIndex, Time x)将指定的参数设置为给定的SQL时间戳值
 
void
setObject(int parameterIndex, Object x)将指定参数设置为给定的Java Object对象void
executeQuery()执行这个PreparedStatement对象中的SQL查询,并返回查询生成的ResultSet对象ResultSet
executeUpdate()执行这个PreparedStatement对象中的SQL语句(可能是INSERT、UPDATE或DELETE语句),并返回受影响行的计数int
execute()执行这个PreparedStatement对象中的SQL语句,它可能返回多个结果boolean
clearParameters()清除PreparedStatement对象中的当前参数值void
setArray(int parameterIndex, Array x)将指定参数设置为给定的SQL Array对象void
setBlob(int parameterIndex, Blob x)将指定参数设置为给定的SQL Blob对象void
setClob(int parameterIndex, Clob x)将指定参数设置为给定的SQL Clob对象void

         使用以上PrepareStatement的方法就可以实现对数据库的增删改查的功能了。

        PrepareStatement类比Statement类多一个预处理的功能,需要使用到通配符" ? "(也正是该功能减轻了SQL注入攻击)

        所以,PrepareStatement实例化时的String数据的SQL语句时不完整的,需要将通配符替换掉,才能进行使用,这和格式化输出语句的道理一样。

        在上面常用方法的表格中,最常见的是set()方法,尽管数据类型不同,但第一个参数:int parameterIndex 该参数都是指在String字符串中编写SQL语句的第几个通配符,然后这个在SQL语句中的问号( ? )可以被你设置的第二个数据类型替代,SQL语句被补全了,可以进行下一步执行运行的操作了。

二、实操展示

        以下的所有操作都建立在连接好数据库之后,对连接框架的代码进行了省略。

        增删改查的操作步骤大致都是("查"需要循环输出语句反馈到控制台):

        第一步,创建String对象,编写SQL语句。

        第二步,利用connection对象调用方法创建PrepareStatement对象。

        第三步,使用PrepareStatement类的set()方法,补全SQL语句中的通配符。

        最后一步,调用PrepareStatement类的executeUpdate()方法执行该SQL语句。

        executeUpdate()方法执行后,Java代码会将SQL语句发送给MySQL数据库,并执行相应的操作,如插入、更新或删除数据。执行完毕后,MySQL数据库会返回操作的结果,Java代码可以通过executeUpdate()方法获取到受影响的行数。

1.增

实操展示:

         这是数据库表单原本的样子:

        这个table只有三行,需求:添加一个id是104,name是小浩的数据。

        主要代码: 

String sql = "INSERT INTO table_name (id, name) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, 104);
statement.setString(2, "小浩");
statement.executeUpdate();

         运行结果:

    

        如上图所示,刷新Workbench,实时显示出了数据库内容的更新。

2.删        

实操展示:

          这是数据库表单原本的样子:

         需求:删除一个id是103,name是小张的数据。

        主要代码:

String sql = "DELETE FROM test_table WHERE id = ? AND name = ?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, 103);
statement.setString(2, "小张");
statement.executeUpdate();

         运行结果:

        如上图所示,数据库表单的id=103,name=小张的这一串数据已被删除。 

3.改

实操展示:

         这是数据库表单原本的样子:

        需求:将id=104 name=小王的这一串数据里,id值修改为103。 

        主要代码:

String sql = "UPDATE test_table SET id= ? WHERE id = ? ";
PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, 103);
statement.setInt(2, 104);
statement.executeUpdate();

         运行结果:

         如上图所示,数据库中小浩的id由104更改为了103。

4.查

        这是数据库表单原本的样子:

         需求:查询id为101的用户的name值是什么。

        主要代码:

String sql = "SELECT name FROM test_table WHERE id = ? ";
PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, 101);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {// 处理查询结果String value1 = resultSet.getString("name");System.out.println("查询结果:id值为101的用户名称是 "+value1);
}

        运行结果:

 

        对比数据库的信息:

        如上面两张图显示,通过PrepareStatement类可以轻松实现java后端与数据库之间的互通。 


总结

        以上就是使用java的PrepareStatement类对数据库进行增删改查的操作,本文初步介绍了java的使用,没有写关于SQL语句之类的数据库知识,有补充或指正的地方,欢迎在评论区中留言。

http://www.hkea.cn/news/143538/

相关文章:

  • wordpress网站样式网站排名查询
  • 郑州网站建设推销外贸网站推广与优化
  • 当当网站开发系统说明搜索引擎排名google
  • 国外男女直接做的视频网站企业邮箱登录入口
  • 成都可以做网站的公司百度手机助手最新版下载
  • 赤峰网站建设招聘市场营销互联网营销
  • 网站开发后端需要哪些技术友情链接检索数据分析
  • 金华竞价排名 金华企业网站建设常见的网络营销平台有哪些
  • p2p网站开发关键词seo是什么意思
  • 自己免费怎么制作网站合肥今天的最新消息
  • 今日头条新闻10条简短seo网络优化招聘信息
  • 赣州人才网官方网站关键词seo优化软件
  • cad做兼职区哪个网站郑州网络营销公司排名
  • 宁夏银川做网站的公司有哪些网络营销分类
  • 换物网站为什么做不起来中国免费广告网
  • 可以显示一张图片的网站怎么搭建搜索引擎优化策略
  • 精品课程网站建设论文今天的新闻最新消息
  • 检查网站收录问题蚌埠seo外包
  • 建站展示网站优化网
  • 秦皇岛网站建设价格深圳seo公司
  • 广告型网站建设广州营销网站建设靠谱
  • 包头学做网站平台开发
  • 个人如何做微商城网站指数分布的分布函数
  • 北京网站设计哪家公司好建站工具
  • 深圳外贸网络推广seo诊断书案例
  • Java做网站的基本框架优化关键词规则
  • 网上手机商城网站建设直通车推广计划方案
  • 网站框架是谁做做个电商平台要多少钱
  • 网站开发建设书籍推荐b2b外贸平台
  • 网站首页的布局设计进行优化