建立连接(Connection) url的格式: JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值
crud Create 增加 Read 查询 Upadate更新 Delete删除
当使用insert开始
st.executeUpadate(sql);
返回值是一个int类型。
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. OK! 接下来将展开我们的重头戏:SQL注入 填好正确的用户名(tarena)和密码(admin)后,点击提交,将会返回给我们“欢迎管理员”的界面。 因为根据我们提交的用户名和密码被合成到SQL查询语句当中之后是这样的: select * from users where username='tarena' and password=md5('admin') 很明显,用户名和密码都和我们之前给出的一样,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码呢?很明显,肯定登入不了吧。恩,正常情况下是如此,但是对于有SQL注入漏洞的网站来说,只要构造个特殊的“字符串”,照样能够成功登录。 比如:在用户名输入框中输入:’or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为: select * from users where username='' or 1=1#' and password=md5('') 语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了,换句话说,以下的两句sql语句等价: select * from users where username='' or 1=1#' and password=md5('') 等价于 select * from users where username='' or 1=1 因为1=1永远都是成立的,即where子句总是为真,将该sql进一步简化之后,等价如下select语句: select * from users 没错,该sql语句的作用是检索users表中的所有字段 果不其然,我们利用万能语句(’or 1=1#)能够登录!看到了吧,一个经构造后的sql语句竟有如此可怕的破坏力,相信你看到这后,开始对sql注入有了一个理性的认识了吧~ [sql注入](https://www.cnblogs.com/pursuitofacm/p/6706961.html)
为了解决sql注入问题,不能再使用Statement这个接口了,换成了PreparedStatement这个接口。继承了extends
String sql="select id,name,money,birthdaya from user where name=?;
ps=conn.createStatement(sql);
ps.setString(1,name)
此处相当于在第一个问号中,把name的值赋给?