• 功能:使用PreparedStatement操作数据表,其功能与Statement一致,但为何要使用PreparedStatement呢。

    • 一、原因:
    • 1.使用sql语句进行操作数据表时,需要拼写sql语句,在拼写时容易出错,且不易排查,所以使用PreparedStatement

      *操作数据表时,降低sql语句的拼写难度,简化拼写sql语句的步骤,提高代码的可维护性和可读性。
    • 2.同时还可以有效的防SQL注入。

      *SQL注入:利用某些系统没有对用户输入的数据进行充分的检查,而而在用户中注入非法的SQL语句段或命令从而利用系统的SQL引擎

      *完成恶意操作。

      例如:select from user where username = ‘a’ OR PASSWORD = ’ and password = ’ OR ‘1’ = ‘1’

      *即使不知道账号密码,却可以登录成功。
    • 3.PerparedStatement能够最大可能的提高性能
    • 二、 介绍:PreparedStatement是Statement的子接口,可以传入带占位符的sql语句,也提供了补充占位符变量的方法。
    • 三、操作:向数据表中插入一条Student记录
  • 步骤:

    • 1.sql = “insert into examStudent values (?,?,?,?,?,?)”;其中?表示:占位符
    • 2.获取连接Connection
    • 3.创建PreparedStatement ps = conn.preparedStatement(sql);
    • 4.调用PreparedStatement的setXxx(int index,Object value);设置占位符的值

      *其中索引值index从1开始。
    • 5.执行sql语句,使用executeQuery()方法进行查询和executeUpdate()方法进行更新,执行时也不需要传入sql语句。
    • 6.关闭连接
  • 实例

//插入一条记录
@Test
public void test(){
//1.sql语句
String sql = "insert into customers(name,age,birth,address) values(?,?,?,?)";
Connection conn = null;
PreparedStatement ps = null;
try {
//2.连接
conn = TestTools.getConnection();
//3.获取PerparedStatement对象
ps = conn.prepareStatement(sql);
//4.PreparedStatement对象调用setXxx()方法,设置占位符的值
ps.setString(1, "张强");
ps.setString(2, "32");
ps.setDate(3, new Date(new java.util.Date().getTime()));
ps.setString(4, "河南省");
//5.执行sql语句
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
//6.关闭连接
TestTools.release(ps, conn);
}
}

JDBC(4)—Preparedstatement的更多相关文章

  1. JDBC(4)PreparedStatement

    PreparedStatement: 是一个预编译对象 是Statement的子接口 允许数据库预编译SQL 执行SQL的时候,无需重新传入SQL语句,它们已经编译SQL语句 执行SQL语句 :exe ...

  2. Java基础(三十二)JDBC(2)连接数据库

    一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...

  3. 跟着刚哥学习Spring框架--JDBC(六)

    Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...

  4. JDBC 学习笔记(六)—— PreparedStatement

    1. 引入 PreparedStatement PreparedStatement 通过 Connection.createPreparedStatement(String sql) 方法创建,主要用 ...

  5. 浅谈JDBC(一)

    一.JDBC技术引言 1.什么是JDBC技术 提供了一套接口规范,利用java代码进行数据库操作. 2.JDBC技术的核心思想 对于程序员来说,代码访问数据库分为三个步骤:1.通过数据库的账号密码.2 ...

  6. JDBC(一)之细说JDBC

    Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...

  7. JDBC(三)数据库连接池(DBCP、C3P0)

    前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...

  8. JAVA基础-JDBC(一)

    一.JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,由与各种数据库都有着一套自己的规范,JAVA对其操 ...

  9. JDBC(四)

    1 Apache DBUtils框架 1.1 DBUtils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本非常低,并且使用db ...

随机推荐

  1. linux系统编译安装软件的通用步骤

    编译安装的步骤: 1.下载源代码,并解压     tar -xf package-version.tar.{gz|bz2|xz} 注意:展开后的目录通常为package-version 2.切换至源码 ...

  2. sqlserver2008r2通过发布和订阅的方式进行数据库同步

    发布服务器:192.168.8.16 订阅服务器:192.168.8.92 发布服务器配置: 选择需要发布的数据库,这里是Attendace_new 订阅服务器配置: 在订阅服务器上新建一个数据库:d ...

  3. vue及webpack在项目中的一些优化

    传送:https://www.haorooms.com/post/vue_webpack_youhua

  4. Python-ccs高级选择器 盒模型

    css高级选择器与盒模型 脱离文档流 ,其中就是产生了BFC 1.组合选择器 - 群组选择器 /* 每个选择器位可以位三种基础选择器的任意一个, 用逗号隔开, 控制多个 */ div, #div, . ...

  5. 红包外挂史及AccessibilityService分析与防御

    最近在做一个有趣的外挂的小玩意,前提我们要了解一个重要的类AccessibilityService 转载请注明出处:https://lizhaoxuan.github.io 前言 提起Accessib ...

  6. wpf 用户自定义事件传参2

    public delegate void MenuButtonClickEventHandler(object sender, EventArgs e); public event MenuButto ...

  7. bzoj 1112 poi 2008 砖块

    这滞胀题调了两天了... 好愚蠢的错误啊... 其实这道题思维比较简单,就是利用treap进行维护(有人说线段树好写,表示treap真心很模板) 就是枚举所有长度为k的区间,查出中位数,计算代价即可. ...

  8. python+selenium四:iframe查看、定位、切换

    iframe是HTML里面嵌套HTML的一种框架 1.查看iframe 1.Top Window:可直接定位 2.iframe#i:说明此元素在iframe上 3.iframe显示为空:(id或nam ...

  9. notepad++颜色修改

    设置-->>语言格式设置-->> https://blog.csdn.net/onceing/article/details/51554399(别人博客园的内容) 另外下面是N ...

  10. Ckeditor一种很方便的文本编辑器

    ckeditor官网:http://ckeditor.com/ 这里介绍ckeditor的其中一个的用法,自己做小项目练手非常的适合,上手非常的快. 首先去官网下载这个东西,链接:http://pan ...