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

网站建设阿里云建网站一般多少钱

网站建设阿里云,建网站一般多少钱,crm系统视频,新化网站建设文章目录 前言一、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/747581/

相关文章:

  • 网站管理员怎么做板块建设艺人百度指数排行榜
  • 如何创建企业网站网络舆情处置的五个步骤
  • 做站长工具网站周口seo公司
  • 泉州自助建站系统地推
  • 美国 做网站免费网站建设哪家好
  • 如何做响应式布局网站seo搜索引擎优化期末及答案
  • 电脑系统优化软件十大排名北京网优化seo公司
  • 宁夏网站建设优化外贸网站优化推广
  • 开发网站开发工程师培训心得简短200字
  • 网站优化工具升上去软文营销代理
  • 北京监理协会培训网站变现流量推广app
  • 邯郸做wap网站最全bt搜索引擎入口
  • 用网站做自我介绍pptsem推广竞价托管
  • 建设网站项目的目的是什么意思营销型网站方案
  • 濮阳网站建设价格南昌seo排名收费
  • jsp做网站案例steam交易链接在哪里看
  • 做网站需要招聘内容范本信息流广告
  • 如何建公众号外贸网站建设优化
  • 怎么把网站横幅做很大东莞营销推广公司
  • 网站运营与管理实训报告松松软文平台
  • 奉化云优化seo手机网站排名优化软件
  • h5响应式集团网站推荐电商平台有哪些?
  • 企业所得税税率三个档次关键词优化快排
  • 长宁区网站建设b2b免费发布平台
  • php 个人网站网站安全检测工具
  • 做的网站很卡是什么原因seochan是什么意思
  • 怎么做盗版视频网站吗百度权重1
  • 政府网站 建设 计划品牌推广策划方案案例
  • 临沂网站建设那家好小米市场营销案例分析
  • 德化网站建设企业中层管理人员培训课程