statement对象与sql语句(新手)
本篇介绍读上篇代码中的疑惑点
实现简单网页上对数据内容进行增删改查,需要用到三个部分:jsp网页前端部分+java后台程序+数据库表
一.创建一个Statement (用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句,Statement对象,用于执行不带参数的简单SQL语句)
•要执行SQL语句,必须获得java.sql.Statement实例。
Statement实例分为以下3 种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
//Connection con
Statement st = con.createStatement() ;
PreparedStatement pst = con.prepareStatement(sql语句) ;
CallableStatement cst = con.prepareCall("{call demoSp(? , ?)}") ;
二.执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 //查询
,返回一个结果集(ResultSet)对象。 (ResultSet对象 是查询数据库时的返回对象,读取返回结果集,可通过ResultSet的接口常用方法实现,)
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = st.executeQuery("select*from YourShujukuName") ;
int rows = st.executeUpdate("insert into ...") ;
boolean flag = st.execute(String sql) ;
Insert into 语句
INSERT INTO 语句用于向表格中插入新的行。//添加
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....)
三、HttpServletRequest介绍
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
四、Request常用方法
request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值,
request.getAttribute()和request.getParameter()的区别是request.getAttribute()获得的是对象类型
request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段
request.getAttribute("nameOfObj")可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。
服务完成了编译的工作,完成生成了HTML代码,并把它们返回给浏览器去执行,服务器上的那个request已经不存在,所有与它一起的数据都没有了. 返回给客户端后,我们就看到了一个表单,然后点击 "传送 ",再次访问服务上的Request.jsp,这时候又产生了一个新的request对像,但以前的那个数据已经不存在了,因为是不同的request了.所以你在Request.jsp里边再取它,那是当然取不到的了.setAttribute()是针对同一次服务器的访问的,第一次访问成功后我们看到了表单,点击 "传送 "后,发生了第二次与服务器的请求,产生了新的request
//摘自百度解答