PreparedStatement和Statment
使用Statment安全性差,存在SQL注入隐患
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
//根据控制台提示输入用户名和密码
Scanner input=new Scanner(System.in);
System.out.println("\t宠物主人登陆");
System.out.println("请输入用户名:");
String name=input.next();
System.out.println("请输入密码:");
String password=input.next();
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql:///day01","root","root");
stmt=conn.createStatement();
String sql="SELECT * FROM master WHERE name='"+name+"' AND password='"+password+"'";
System.out.println(sql);
rs=stmt.executeQuery(sql);
if(rs.next()){
System.out.println("登陆成功!");
}else{
System.out.println("登陆失败");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(null!=rs){
rs.close();
}if(null!=stmt){
stmt.close();
}if(null!=conn){
conn.close();
}
} catch (Exception e2) {
}
使用PreparedStatement对象更新宠物信息
public static void main(String[] args) {
Connection conn=null;
PreparedStatement pstmt=null;
String sql="UPDATE dog SET health=?,love=? WHERE id=?";
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql:///day01","root","root");
//conn.createStatement();
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1234);
pstmt.setInt(2, 78);
pstmt.setInt(3, 2);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(null!=pstmt){
pstmt.close();
}if(null!=conn){
conn.close();
}
} catch (Exception e2) {
}
}
}
PreparedStatement和Statment的更多相关文章
- PreparedStatement 和 Statment区别
PreparedStatement vs Statment 1)语法不同:PreparedStatement可以使用预编译的sql,而Statment只能使用静态的sql 2)效率不同: Prepar ...
- Java的JDBC操作
Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...
- JDBC(上)
1. 课程回顾 mysql加强 1)数据约束(表约束) 默认值: default 默认值 非空: not null 唯一: unique 主键: primary key (非空+唯一) 自增长: ...
- Java jdbc入门
1 jdbc入门 1.1 之前操作数据 1)通过mysql的客户端工具,登录数据库服务器 (mysql -u root -p 密码) 2)编写sql语句 3)发送sql语句到数据库服务器执行 1.2 ...
- jdbc之防sql注入攻击
1.SQL注入攻击: 由于dao中执行的SQL语句是拼接出来的,其中有一部分内容是由用户从客户端传入,所以当用户传入的数据中包含sql关键字时,就有可能通过这些关键字改变sql语句的语义,从而执 ...
- 学习日常笔记<day17>jdbc基础
1.jdbc入门 1.1.jdbc定义 使用java代码发送sql语句的技术就是jdbc技术 1.2.使用jdbc发送sql前提 需要登录数据库服务器(数据库的IP地址,端口,数据库用户名,密码) / ...
- 一个基础又很重要的知识点:JDBC原理(基本案例和面试知识点)
JDBC全称又叫做Java DataBase Connectivity,就是Java数据库连接,说白了就是用Java语言来操作数据库.这篇文章主要是对JDBC的原理进行讲解.不会专注于其使用.主要是理 ...
- 聊聊SQL注入
SQL注入问题 概述: 首先SQL注入是一个非常危险的操作,很可能被一些不怀好意的人钻空导致我们系统出现异常等状况,比如数据库遭到破坏或被入侵. 原因:使用JDBC的Statement语句添加SQL语 ...
- Java Statement和PreparedStatement性能测试(转)
本文转载自http://blog.csdn.net/liubo5005/article/details/7239935 先上代码: import java.sql.Connection; import ...
随机推荐
- ios的runtime为什么可以动态添加方法
一句话概括 每个instance都有一个isa,这个isa,里面含有所有的方法列表,ios提供库函数增加,修改,即实现了动态添加方法
- Env:autojump安装使用
注:这里只介绍我使用的方式,当然不是唯一方式 作用:autojump可以快速进行路径导航,具备记忆历史路径:不仅仅是可以进入当前路径下的某个路径,也可以是其他历史路径 1. 下载 首先,$ git c ...
- 像学历史课本一样学习Perl
第一次接触Perl,还是2008年10月份的时候,当时因为项目重构,需要进行大量的文本操作,于是便拾起了以“文本操作为己任”的Perl语言.当然,带我入门的还是那本赫赫有名的The Llama Bo ...
- 【MySQL】性能优化 之 延迟关联
[背景] 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下.使用工具查看数据库正在执行的sql ,排在前面的大部分是: SELECT id, cu_id, name, in ...
- (C/C++) Interview in English - Threading
Q. What's the process and threads and what's the difference between them? A. A process is an execut ...
- sql异常
表结构 Id int UncheckedTitle nvarchar(50) CheckedValue nvarchar(1000) CheckedRemark nvarchar(1000) Chec ...
- TextView的属性列表
网上收集和自己整理的TextView控件中可选择的属性列表,经常可以用到的: android:autoLink 设置是否当 文本为URL链接/email/电话号码/map时,文本显示为可点 ...
- iOS UIWebView 捕获403 、404错误
#pragma mark -#pragma mark - UIWebView Delegate Methods- (BOOL)webView:(UIWebView *)webView shouldSt ...
- UBUNTU查看软件版本
1.查看已安装软件版本aptitude show softwarename 2.查看软件安装目录dpkg -L softwarename
- 鼎信通达gsm网关和asterisk对接的调试
设备型号:4gsm卡,型号是DWG2000C-4Egsm网关IP地址: 10.3.6.250asteriskIP地址: 10.3.6.251 1)首先在asterisk里面添加到gsm网关的中继,并做 ...