如何使用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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
         <input type="text" name ="msgid"> <br>
         Message<input type="text" name ="message"> <br>
         <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
         <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 代码中进行数据库操作。出于多种原因,这通常不受欢迎,尤其是几乎不可能调试的原因。此外,您应该使用PreparedStatements 并将值作为参数传递给您的插入。像您所做的连接会导致 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类在数据库中插入值?的主要内容,如果未能解决你的问题,请参考以下文章

如何发送表单输入值并调用 JSF bean 中的方法

如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库

JSP页面中如何注入Spring容器中的bean

如何使用更新的数据库内容定期刷新 JSP?

如何使用模型类在 laravel 8 资源控制器中编辑、销毁和获取单个值?

java jsf 如何去重新加载bean