jsp表单数据插入数据库的问题(具体见补充)

我在使用jsp表单+javabean实现表数据插入数据库时,不知道如何把表单传到javabean封装起来的数据放进sql语句中,请高手指点啊!我的疑问是下面javabean代码中sqlstr="insert into "+tableName+" values('id','name','age')";这句插入数据库的sql语句怎样在values中填写在表单中获得的数据,如果按照下面代码运行的话,插进数据库的数据不是表单中输进的值,而是id,name,age 。。代码是两个jsp页面跟一个javabean,如下。add.jsp:
<body>
<form action="index.jsp ">
学号:<input type="text" name="id"><br>
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age">
<br>
<input type="submit" name="submit" value="提交">
</form>
</body>

index.jsp:
<body>
<jsp:useBean id="student" scope="request" class="ch3.Student">
<jsp:setProperty name="student" property="*"/>
</jsp:useBean>
<%student.insert(); %>
插入成功
</body>

javabean如下,
public class Student {
private String id;
private String name;
private String age;
private String user="root"; //用户名
private String pass="123456"; //口令
private String url="jdbc:mysql://localhost:3306/test1"; //数据源
private String driver="org.gjt.mm.mysql.Driver"; //数据库驱动程序
private String tableName="student"; //数据库中表名
private String sqlstr=null; //sql语句
Connection con=null; //连接对象
Statement stmt=null;

public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}

public void insert(){

/* 数据库连接
装载驱动――获取连接――创建语句对象 */

try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection(url,user,pass);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
stmt=con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sqlstr="insert into "+tableName+" values('id','name','age')";
try {
stmt.executeUpdate(sqlstr);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

估计你可能是刚学的jsp。
sqlstr="insert into "+tableName+" values('id','name','age')";
你的这个字符串变成sql语句时为:insert into student values("id","name","age");
很明显你的sql语句执行后肯定是把id,name,age三个字符串插入到了数据库中,因为你根本就没有传入你输入表单中的值。
我建议你在提交表单数据到index.jsp页面后,在index页面中取出你提交的三个值,然后把他们设置在<jsp:setProperty name="student" property="id" value=""/>、<jsp:setProperty name="student" property="name" value=""/>、
<jsp:setProperty name="student" property="age" value=""/>三个jsp标签的对应的value中,这样你在用student调用insert()方法,但是你的insert中要设置参数如insert(Student student),然后再将sqlstr的值改变一下:sqlstr = "insert into "+tablename+" values("+student.getId()+","+student.getName()+","+student.getAge()+")";
我大致看了一下你的代码,改这些东西应该没有问题了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-19
p页面赋值时,没写
2. 第二数据库表里的主键时自增的吗
3. 第三jsp页面的传值方式采用的是post还是get 因为这个在tomcat的不同版本里是有区别的
4.第四 如果在百度 上不能解决 去Google吧
第2个回答  2011-03-19
sqlstr="insert into "+tableName+" values('id','name','age')";
改为:sqlstr="insert into "+tableName+" values('"+id+"','"+name+"','"+age+"')";
第3个回答  2011-03-18
JSP有关用表单传递参数,并向数据库中插入数据,代码和有关运行后报的错误jdbc-odbc连接桥的方式没试过,驱动这方面不知道,不过上面有一个地方不对

jsp 表单数据向数据库中载入是出错
1. 第一数据库表里有没有不能为空的字段,在jsp页面赋值时,没写 2. 第二数据库表里的主键时自增的吗 3. 第三jsp页面的传值方式采用的是post还是get 因为这个在tomcat的不同版本里是有区别的 4.第四 如果在百度 上不能解决 去Google吧 ...

JSP表单提交英文 字符无法写进数据库
原因有如下可能:1、你后台接收表单field的参数设置成了数值型;2、你的数据库连接映射表把保存的参数设置成了数值类型的;3、你数据库的字段定义,定义成了数值型的;4、你的表单传数据语法有错,什么叫“如果不是从表单获取的数据”,用JSP如果不是用表单传数据,那只有可能用的是request、session或...

JSP的table表单如何保存到数据库?
剩下的就是jsp的数据库操作部分了。获取数据库连接,创建语句对象,执行sql语句,返回结果。

怎样在把jsp页面中用户输入的数据的通过hibernate存入到数据库
通过form把数据传到后台,用你对象的属性,如user对象,属性name,那就user.setName(Name),然后session.save(user);trans.commit();session.close();就可以了

【jsp数据库】为什么插到数据库的信息 全部变成了0?
你SQL语句写错了... values 后面直接跟列的值就可以不,不可以用列名=值的方式。正确的的写法是:INSERT INTO book(bookid,bookname,category,intro,img)VALUES ('10','jsp网站设计',''电子商务',''jsp是动态网页设计','static\/images\/6.jpg')推荐将INSERT INTO book(bookid,bookname,category,...

jsp程序输出正常,写入数据库中文乱码,插入语句在数据库里没问题
插入数据库里显示到网页是乱码一般就是数据库安装时没选好编码的问题了,myqsl装的时候有一项是选择编码集的,默认不是GBK,要选为GBK,不然就会出现你那个问题,如果没注意到这个问题的话建议重新安装一下。

jsp提交表单可以一次插入多行数据吗?该如何解决
答案表中y_id,w_id是外键,answer是答案,就是储存abcd的。(或者有人说这样设计数据库合理,会很费空间,但是我为了方面之后的多维数据分析。因为我不需要计算分数,要想知道每个人每一题选了那个选项,而且问题题目数量是不固定的)你可以在jsp页面的表单中利用i++把单选名控制不同,然后提交到java...

jsp插入数据库乱码 中文的参数怎么处理
1、JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,2、数据库乱码 这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下: 在数据库连接字符串中加入编码字符集 String Url="jdbc:mysql:\/...

从jspform表单添加数据报错java.lang.Error: Unresolved compilatio...
你把所有的new String(xxx.getBytes("ISO-8859-1"),"GBK");中的new String()一类的东西都去掉,直接使用Form中的属性来添加 例如:ps.setString(1,loginForm.getUserName());如果这样出现乱码,那么是由于你没有加入编码过滤器或是表单没有设置成为post提交方式造成的.把这些注意一下就可以了.

jsp页面的表单提交的日期怎样提交到数据库
基本思路就是接收表单提交的字符串,进行格式化转换为Date,用预处理语句插入数据库 步骤 表单提交 格式化转换 String str = request.getPramater("date");Date date = new SimpleDateFormat("yyyy-MM-dd").format(str);预处理语句 PreparedStatement ps = 连接.prepareStatement("insert into 表 values...

相似回答