JDBC(4)—Preparedstatement
- 功能:使用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的更多相关文章
- JDBC(4)PreparedStatement
PreparedStatement: 是一个预编译对象 是Statement的子接口 允许数据库预编译SQL 执行SQL的时候,无需重新传入SQL语句,它们已经编译SQL语句 执行SQL语句 :exe ...
- Java基础(三十二)JDBC(2)连接数据库
一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...
- 跟着刚哥学习Spring框架--JDBC(六)
Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...
- JDBC 学习笔记(六)—— PreparedStatement
1. 引入 PreparedStatement PreparedStatement 通过 Connection.createPreparedStatement(String sql) 方法创建,主要用 ...
- 浅谈JDBC(一)
一.JDBC技术引言 1.什么是JDBC技术 提供了一套接口规范,利用java代码进行数据库操作. 2.JDBC技术的核心思想 对于程序员来说,代码访问数据库分为三个步骤:1.通过数据库的账号密码.2 ...
- JDBC(一)之细说JDBC
Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...
- JDBC(三)数据库连接池(DBCP、C3P0)
前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...
- JAVA基础-JDBC(一)
一.JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,由与各种数据库都有着一套自己的规范,JAVA对其操 ...
- JDBC(四)
1 Apache DBUtils框架 1.1 DBUtils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本非常低,并且使用db ...
随机推荐
- linux系统编译安装软件的通用步骤
编译安装的步骤: 1.下载源代码,并解压 tar -xf package-version.tar.{gz|bz2|xz} 注意:展开后的目录通常为package-version 2.切换至源码 ...
- sqlserver2008r2通过发布和订阅的方式进行数据库同步
发布服务器:192.168.8.16 订阅服务器:192.168.8.92 发布服务器配置: 选择需要发布的数据库,这里是Attendace_new 订阅服务器配置: 在订阅服务器上新建一个数据库:d ...
- vue及webpack在项目中的一些优化
传送:https://www.haorooms.com/post/vue_webpack_youhua
- Python-ccs高级选择器 盒模型
css高级选择器与盒模型 脱离文档流 ,其中就是产生了BFC 1.组合选择器 - 群组选择器 /* 每个选择器位可以位三种基础选择器的任意一个, 用逗号隔开, 控制多个 */ div, #div, . ...
- 红包外挂史及AccessibilityService分析与防御
最近在做一个有趣的外挂的小玩意,前提我们要了解一个重要的类AccessibilityService 转载请注明出处:https://lizhaoxuan.github.io 前言 提起Accessib ...
- wpf 用户自定义事件传参2
public delegate void MenuButtonClickEventHandler(object sender, EventArgs e); public event MenuButto ...
- bzoj 1112 poi 2008 砖块
这滞胀题调了两天了... 好愚蠢的错误啊... 其实这道题思维比较简单,就是利用treap进行维护(有人说线段树好写,表示treap真心很模板) 就是枚举所有长度为k的区间,查出中位数,计算代价即可. ...
- python+selenium四:iframe查看、定位、切换
iframe是HTML里面嵌套HTML的一种框架 1.查看iframe 1.Top Window:可直接定位 2.iframe#i:说明此元素在iframe上 3.iframe显示为空:(id或nam ...
- notepad++颜色修改
设置-->>语言格式设置-->> https://blog.csdn.net/onceing/article/details/51554399(别人博客园的内容) 另外下面是N ...
- Ckeditor一种很方便的文本编辑器
ckeditor官网:http://ckeditor.com/ 这里介绍ckeditor的其中一个的用法,自己做小项目练手非常的适合,上手非常的快. 首先去官网下载这个东西,链接:http://pan ...