问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于jdbc中设置SQL语句的问题

发布网友 发布时间:2022-04-07 16:24

我来回答

4个回答

懂视网 时间:2022-04-07 20:46

package com.ayang.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class TestDML2 { 9 10 11 public static void main(String[] args) { 12 if(args.length!=3){ 13 //判断输入参数个数是否错误 14 System.out.println("Parameter Error! Please Input Again!"); 15 System.exit(-1); //系统退出 16 } 17 18 int deptno = 0; //声明变量。在头上呢?还是啥时候用啥时候声明呢?面试时,声明在头上。 19 20 try{ 21 deptno = Integer.parseInt(args[0]); 22 }catch(NumberFormatException e){ 23 System.out.println("参数类型错误,请输入数字"); 24 System.exit(-1); 25 26 } 27 String dname = args[1]; 28 String loc = args[2]; 29 30 Connection conn = null; 31 Statement stmt = null; 32 33 try{ 34 //1、注册驱动 35 //new oracle.jdbc.driver.OracleDriver(); 36 Class.forName("oracle.jdbc.driver.OracleDriver"); 37 //2、建立连接 38 conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott", "root"); 39 //3、创建语句 40 stmt = conn.createStatement(); 41 String sql = "insert into dept2 values("+deptno+",‘"+dname+"‘,‘"+loc+"‘)"; 42 System.out.println(sql); //打印出sql语句用来调试sql 43 stmt.executeUpdate(sql); 44 45 }catch (ClassNotFoundException e) { 46 System.out.println("未正常加载jdbc驱动"); 47 e.printStackTrace(); 48 }catch(SQLException e){ 49 e.printStackTrace(); //log for java 50 51 }finally{ 52 //6、释放资源 53 try { 54 if(stmt != null){ 55 stmt.close(); 56 stmt = null; 57 }if(conn != null){ 58 conn.close(); 59 conn = null; 60 } 61 } catch (SQLException e) { 62 e.printStackTrace(); 63 } 64 65 66 } 67 68 69 } 70 71 }

 

jdbc调试sql语句方法

标签:

热心网友 时间:2022-04-07 17:54

这是因为以前用Statement对象查询数据的系统容易被人SQL注入攻击。
简单的一个例子:登陆.
从登陆框中传过来两个参数.
正常情况下、假设是 aa bb
select * from tbl_user where uname='aa' and upass='bb'
然后有些会sql的人就想到了在参数后面加些其他的东西
比如在bb' or 'a'='a 或者 ;DELETE FROM tbl_user WHERE 1>0之类的
这样SQL语句就变成:
select * from tbl_user where uname='aa' and upass='bb' or 'a' = 'a'
这样的语句是不安全的。
后来就出现PreparedStatement 对象的?占位符,通过给? 设值,可以把传过来的参数当成普通的字符串,包括单引号。这样就避免了一些灾难。

热心网友 时间:2022-04-07 19:12

其一不太理解哦
其二应该是为防注入的,用到了or 关键字的话。即where子语句有多个or的话,只有where后的第一个or为true。即 name=a 。那么编译器会自动不会去继续执行以下的or条件。就这个意思吧。仅供参考的哦

热心网友 时间:2022-04-07 20:46

哪不是加的双引号吗?说具体什么地方不明白,哪行?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 3 9 10 10算24点 391010算24点怎么算式,磁力链接 吃菠萝会不会引起风湿痛 企业经财产清查时,发现盘亏材料20000吨,价值6000元,经查明是由于计量上的错误所造成的。 求会计分录 孩子调皮捣蛋不听话,很想发火怎么办? 孩子调皮捣蛋不听话,但我又不想发火,该怎么办? 宝宝调皮不听话,有哪些技巧应对? 小孩调皮不听话该怎样教育 我的孩子很调皮,不听话怎么办? 葡萄酒喝到最后,瓶底为什么会有渣子? 孩子很调皮不听话,怎样正确的教育好孩子 红酒瓶底的沉淀物如何清理? 孩子调皮到打骂都不管用,要如何处理? 勾兑的红酒瓶底会有沉淀物吗? 小孩很调皮 不听话 老是犟嘴 怎么办? 进口红酒为什么瓶底有渣渣? 红酒的瓶底可以是平的吗 有没有哪个手机软件可以把女生的图片P成男生的或是把男生的P成女生的? 为什么红酒的瓶底不是平的? 小孩不听话调皮怎么教育 1,3,9,10怎么算24点? 孕妇十大禁忌水果 孕妇可以吃菠萝蜜吗 1,3,9,10怎样算等于24? 391013算24点怎么算式? 吃菠萝蜜有什么好处,可以治什么病 391013算24点怎么算? 白殿疯病人能吃菠萝蜜吗 如何理解互联网给互联网金融产品带来的核心价值 53910算24点怎么算式? 34441010算24点怎么算式? 牛太宽,马太长;狗有锁,猫有火;要想爽,骑绵羊.什么意思 761010算24点怎么算式短? 深圳春运长途汽车票可以提前几天购买 37210算24点怎么算式? 究竟什么是互联网金融 请问有谁知道深圳布吉汽车站现在可以提前几天买汽车票 请问深圳罗湖汽车站可以不要在网上买票吗?直接到那里买? 谁知道深圳地区长途汽车票代售点在什么地方. 人们常说:“狗那带锁,猫那有火”,怎么解释?? 说一只大花猫在半路遇到一个大黄狗,狗就对猫说,你嫁给我吧,我会让你辛福的,你猜猫咋回答的狗?