有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JSP连接和插入数据到MySQL数据库

好的,这是我的情况,我在一个页面(index.jsp)上有一个表单,它将数据提交到一个jsp页面(output.jsp),然后该页面将处理数据并输出结果。我想将结果插入MySQL数据库

我已经尝试过直接在JSP中使用MySQL做一些事情,但我认为这会打开安全漏洞,所以有人建议我不要这样做

所以我创建了一个SubmitServlet。java(默认情况下,Netbeans将其放入源包/默认包中,而不是JSP文件在网页中的位置)。我知道我必须在这里进行大量连接,尽管我不完全确定如何将提交到数据库中的数据从JSP连接到servlet。我需要做什么

我在RoseIndia读过几篇教程,但它们只会让我更加困惑到底需要什么,所以任何帮助都会非常感激

PS:同样值得指出的是,我对Java web应用程序完全陌生,所以你越是把我当成一个十足的白痴,就越好


共 (2) 个答案

  1. # 1 楼答案

    罗斯:印度不是一个学习的好地方

    不,您需要一两个中间servlet

    将问题分成几个部分:模式、CRUD操作、中间层模型、服务、将HTTP请求编组为对象并返回、HTML、CSS和JavaScript。不要试图一下子把整件事做完。从一条竖线开始,让它起作用,然后移动到下一条

    分解是计算机科学和问题解决的标志

  2. # 2 楼答案

    从输出调用所需的方法。将数据插入数据库的jsp

    <%
    <jsp:useBean id="obj" class="yourPackage.className" />
    String Success="";
    Success=sobj.myRequiredMethod("this is my result");
    %>
    

    在你的包裹里。className类u应该有myRequiredMethod()

    package yourPackage;
    import java.sql.*;
    import java.util.*;
    
    public class className
        {
        String mySqlPassword="root";
        String mySqlUsername="root";
        String mySqlDatabase="jdbc:mysql://localhost:3306/yourDatabse";
    
    
    ResultSet res;
    
    
    
        public String myRequiredMethod(String result)
            {
    
            String success="";
            try
                {
    
    
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection(mySqlDatabase,mySqlUsername,mySqlPassword);
    
                    String q="insert into myTable (resultColumn) values('" + result + "')";
                System.out.println(q);
                PreparedStatement stmt = con.prepareStatement(q);
                int pos = stmt.executeUpdate();
                System.out.println(pos);
            if(pos==1)
                    {
                        success="Successfull";
                    }
                } 
    
            catch(Exception e)
                {
            }
    
            return success;
    
            }
    }