import java.sql.*;
/**
* 测试执行SQL语句,以及SQL注入问题
*/
public class TestStatement {
public static void main(String[] args) {
Statement stmt = null;
Connection conn = null;
try {
//1:加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//2:建立连接(连接对象内部其实包含Socket对象,是一个远程的连接,比较耗时,这是Connection对象管理的一个要点)
//真正的开发中,都会使用连接池来管理对象
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","123456");
//Statement在开发中很少使用,易产生SQL注入问题
stmt = conn.createStatement();
//user为test库中的表,自己新建即可
String sql = "insert into user (name) values ('张三')";
stmt.execute(sql);
//SQL注入问题,下面SQL语句执行后,会把数据库中所有的数据删除
String id = "0 or 1=1";
String sql1 = "delete from user where uid="+id;
stmt.execute(sql1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
2 SQL语句执行
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.Staement执行DDL语句 创建表 2.staement执行执行DML语句 插入数据 更新数据 删除数据 ...
- 整理了一下 PHP 当中链接 MySQL 以及执行 SQL 语句的步骤,包括每个步骤的执行结果的判断(包含一个 M...
- 在SQL语句前添加: declare @d datetime set @d=getdate() 在SQL语句后添加...
- 一.PreparedStatement执行sql语句 1.首先连接数据库Dao.java 2.PreparedSt...