如何使用jsp中的bean类在数据库中插入值?
Posted
技术标签:
【中文标题】如何使用jsp中的bean类在数据库中插入值?【英文标题】:How to insert value in database using bean class in jsp? 【发布时间】:2014-03-06 13:22:48 【问题描述】:嗨,我想使用 jsp 形式的 bean 类在数据库中插入值,我可以这样做,但是每当我在表中插入值时,我都会遇到一些问题,空值也插入它们我试过了,我不能明白我错的地方请解决我的问题
我的 bean.java
package com.javabean;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class bean
private String msgid;
private String message;
private Connection connection=null;
private ResultSet rs = null;
private Statement st = null;
String connectionURL = "jdbc:mysql://localhost:3306/JspBean";
public bean()
try
// Load the database driver
Class.forName("com.mysql.jdbc.Driver");
// Get a Connection to the database
connection = DriverManager.getConnection(connectionURL, "root", "");
catch(Exception e)
System.out.println("Exception is ;"+e);
public void setmsgid(String msgid)
this.msgid = msgid;
public String getmsgid()
return (this.msgid);
public void setmessage(String message)
this.message = message;
public String getmessage()
return (this.message);
public void insert()
try
String sql = "insert into login(messageid,message) values('"+msgid+"','"+message+"')";
Statement s = connection.createStatement();
s.executeUpdate (sql);
s.close ();
catch(Exception e)
System.out.println("Exception is ;"+e);
这是我的 jspbean.jsp 文件
<%@ page language="Java" import="java.sql.*" %>
<html>
<head><title>JSP with Javabeans</title></head>
<body bgcolor="#ffccff">
<h1>JSP using JavaBeans example</h1>
<form name="form1" method="POST">
ID
<input type="text" name ="msgid"> <br>
Message<input type="text" name ="message"> <br>
<br>
<input type = "submit" value="Submit">
<jsp:useBean id="sample" class="com.javabean.bean" scope="page">
<jsp:setProperty name="sample" property="*"/>
</jsp:useBean>
</form>
<% sample.insert();%>
</body>
</html>
我怎样才能做到这一点请解决我的问题 提前汉克斯 T
【问题讨论】:
离题评论:你真的不应该在 UI 代码中进行数据库操作。出于多种原因,这通常不受欢迎,尤其是几乎不可能调试的原因。此外,您应该使用PreparedStatement
s 并将值作为参数传递给您的插入。像您所做的连接会导致 SQL 注入等问题。我的肥皂盒受够了。
【参考方案1】:
你做错了什么:
public void setmsgid(String msgid)
this.msgid = msgid;
public String getmsgid()
return (this.msgid);
你应该改成:
public String getmsgid()
return msgid;
public void setmsgid(String msgid)
this.msgid = msgid;
并添加这个:
public String toString()
return "User[msgid="+msgid+",message="+message+"];
你应该改变这个:
insert into login(username,password) values('"+msgid+"','"+message+"')";
insert into login(username,password) values(?,?)";
更新:
insert into login(messageid,message) values(?,?)";
【讨论】:
我应该在哪里添加这个 首先你应该改变插入部分然后编译 我如你所说的在插入部分进行了更改,但现在在 db 中没有插入任何值 我有一个疑问,你在哪里使用的用户名和密码 我在表字段名中使用了用户名和密码以上是关于如何使用jsp中的bean类在数据库中插入值?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库