<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<% //获取提交的姓名:
String name=request.getParameter("name");
if(name==null)
{name="";
}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
//获取提交的新的数学成绩:
String newMath=request.getParameter("math");
if(newMath==null)
{
newMath="-100";
}
//获取提交的新的英语成绩:
String newEnglish=request.getParameter("english");
if(newEnglish==null)
{
newEnglish="-100";
}
//获取提交的新的物理成绩:
String newPhysics=request.getParameter("physics");
if(newPhysics==null)
{
newPhysics="-100";
}
Connection con=null;
Statement sql=null;
ResultSet rs=null;
String number,xingming;
int math,english,physics;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try {
con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String condition1=
"UPDATE students SET 数学成绩 = "+newMath+" WHERE 姓名="+"'"+name+"'" ,
condition2=
"UPDATE students SET 英语成绩 = "+newEnglish+" WHERE 姓名="+"'"+name+"'" ,
condition3=
"UPDATE students SET 物理成绩 = "+newPhysics+" WHERE 姓名="+"'"+name+"'" ;
//执行更新操作:
sql.executeUpdate(condition1);
sql.executeUpdate(condition2);
sql.executeUpdate(condition3);
//显示更新后的表中的记录:
%>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个更新学生成绩的页面代码,我的问题是 "UPDATE students SET 数学成绩 = "+newMath+" WHERE 姓名="+"'"+name+"'" 中的newMath 为什么要为什么要写成"+newMath+",加上这个+号和双引号什么意思?还有这句 : 姓名="+"'"+name+"'" 这些加号和双引号都是什么意思?
正常的UPDATA语句不是"UPDATE students SET 数学成绩 = 88 WHERE 姓名 = '小王'" 吗?为什么写成这样?我是新手,请大家指点!先谢谢大家了
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=1>
<% //获取提交的姓名:
String name=request.getParameter("name");
if(name==null)
{name="";
}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
//获取提交的新的数学成绩:
String newMath=request.getParameter("math");
if(newMath==null)
{
newMath="-100";
}
//获取提交的新的英语成绩:
String newEnglish=request.getParameter("english");
if(newEnglish==null)
{
newEnglish="-100";
}
//获取提交的新的物理成绩:
String newPhysics=request.getParameter("physics");
if(newPhysics==null)
{
newPhysics="-100";
}
Connection con=null;
Statement sql=null;
ResultSet rs=null;
String number,xingming;
int math,english,physics;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try {
con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String condition1=
"UPDATE students SET 数学成绩 = "+newMath+" WHERE 姓名="+"'"+name+"'" ,
condition2=
"UPDATE students SET 英语成绩 = "+newEnglish+" WHERE 姓名="+"'"+name+"'" ,
condition3=
"UPDATE students SET 物理成绩 = "+newPhysics+" WHERE 姓名="+"'"+name+"'" ;
//执行更新操作:
sql.executeUpdate(condition1);
sql.executeUpdate(condition2);
sql.executeUpdate(condition3);
//显示更新后的表中的记录:
%>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个更新学生成绩的页面代码,我的问题是 "UPDATE students SET 数学成绩 = "+newMath+" WHERE 姓名="+"'"+name+"'" 中的newMath 为什么要为什么要写成"+newMath+",加上这个+号和双引号什么意思?还有这句 : 姓名="+"'"+name+"'" 这些加号和双引号都是什么意思?
正常的UPDATA语句不是"UPDATE students SET 数学成绩 = 88 WHERE 姓名 = '小王'" 吗?为什么写成这样?我是新手,请大家指点!先谢谢大家了
楼主上学时没学过java基础吗
你这样写不是把更新的内容写死了吗,上面的是通过java的字符串串过来的,动态的
String newMath=request.getParameter("math");
既然newMath是String类型的,更新的不就是字符串吗?那为什么没用''?
姓名="+"'"+name+"'" 这些加号和双引号都是什么意思?
双引号引起来的就是sql字符串 从外面传过来的变量就需要用加号拼接起来
单引号引起来的是"'"+name+"'", name这个变量的类型是一个字符型,所以要用单引号。
单引号也需要通过字符窜的拼接。
在双引号中间是有单引号的,仔细一点啊,
"UPDATE students SET 数学成绩 = "+newMath+" WHERE 姓名="+"'"+name+"'"
数学成绩不是字符型吧,应该是float类型(不严谨的也可以是Int),你看下数据库里的类型,直接从表单里面传过来
的是一个字符串,如果数据库里的类型是float,所以还要转型为float型
float meth=Float.parseFloat(newMeth);
//int id=Integer.parseInt(newMeth);Int型就转Int型咯。
因为在数据库里,姓名一定是字符varchar类型,所以在正常的SQL语句是:UPDATE students SET 数学成绩 =newMath WHERE 姓名="NAME",但我们要把NAME当做一个变量传进去,所以用+ +;又因为语句中有好多",所以把变量用''括起来,效果一样的.