【问题标题】:How to insert value in database using bean class in jsp?如何使用jsp中的bean类在数据库中插入值?
【发布时间】: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 注入等问题。我的肥皂盒受够了。

标签: java jsp jdbc javabeans


【解决方案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 中没有插入任何值
  • 我有一个疑问,你在哪里使用的用户名和密码
  • 我在表字段名中使用了用户名和密码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2017-10-25
  • 2017-10-24
  • 1970-01-01
相关资源
最近更新 更多