jsp表单数据插入数据库的问题(具体见补充)
我在使用jsp表单+javabean实现表数据插入数据库时,不知道如何把表单传到javabean封装起来的数据放进sql语句中,请高手指点啊!我的疑问是下面javabea...
我在使用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();
}
}
} 展开
<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();
}
}
} 展开
4个回答
展开全部
估计你可能是刚学的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()+")";
我大致看了一下你的代码,改这些东西应该没有问题了。
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()+")";
我大致看了一下你的代码,改这些东西应该没有问题了。
展开全部
p页面赋值时,没写
2. 第二数据库表里的主键时自增的吗
3. 第三jsp页面的传值方式采用的是post还是get 因为这个在tomcat的不同版本里是有区别的
4.第四 如果在百度 上不能解决 去Google吧
2. 第二数据库表里的主键时自增的吗
3. 第三jsp页面的传值方式采用的是post还是get 因为这个在tomcat的不同版本里是有区别的
4.第四 如果在百度 上不能解决 去Google吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqlstr="insert into "+tableName+" values('id','name','age')";
改为:sqlstr="insert into "+tableName+" values('"+id+"','"+name+"','"+age+"')";
改为:sqlstr="insert into "+tableName+" values('"+id+"','"+name+"','"+age+"')";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JSP有关用表单传递参数,并向数据库中插入数据,代码和有关运行后报的错误jdbc-odbc连接桥的方式没试过,驱动这方面不知道,不过上面有一个地方不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询