如何在 JSP 中插入数据后创建表并通过 java 将该数据保存到 mysql

     2023-02-24     48

关键词:

【中文标题】如何在 JSP 中插入数据后创建表并通过 java 将该数据保存到 mysql【英文标题】:How to create a table after inserting data in JSP and also save that data to mysql through java 【发布时间】:2018-07-15 04:47:24 【问题描述】:

我已经建立了一个 jsp 页面,我从用户那里获取输入并从该输入创建一个表,现在我必须在另一个页面上显示该表,并且我必须同时通过 Java 在 mysql 中创建该表。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Dynamic table</title>
<script src ="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<SCRIPT language="javascript">

	var counter=2;
	function addRow(tableID)
		var dynamicVal = 'row'+counter;
		$('#dataTable').append('\
		<TR>\
			<TD><INPUT type="checkbox" name="'+dynamicVal+'_chk" id="'+dynamicVal+'_chk"/></TD>\
			<TD><INPUT type="text" name="'+dynamicVal+'_col" id="'+dynamicVal+'_col" required/></TD>\
			<TD>\
				<SELECT name="'+dynamicVal+'_datatype" id="'+dynamicVal+'_datatype">\
					<OPTION value="int">INT(40)</OPTION>\
					<OPTION value="var">VARCHAR(40)</OPTION>\
					<OPTION value="char">CHAR(40)</OPTION>\
				</SELECT>\
			</TD>\
		</TR>');
		counter++;	
	
	
	function deleteRow(tableID)
	/*$('#dataTable').find('[INPUT type="checkbox"]').each(function()\
	if($this).prop("checked") == true(
	($this).closest('tr').remove();
	
	);*/
			
			$('#dataTable').find('tr').each(function()
			if($(this).find('input[type="checkbox"]').prop('checked') == true)
					$(this).remove();
				
				
			); 
	
	
	
	
	function createJSON() 
	 
	var obj =;
	obj.table_name=$("input[id=table_name]").val();
	var rowcolms = ;
	var rowcollection = [];
	$('#dataTable').find('tr').each(function()
		var row = ;
		row.colName=$(this).find('input[type="text"]').val();
		row.dataType = $(this).find('select').val();
		rowcollection.push(row);
	);
	obj.tablecolms=rowcollection;
     /*var col_name = $(this).val("text");
		var datatype = $(this).type("select");

        item = 
        item ["text"] = "col_name" ;
        item ["select"] = "datatype";

        jsonObj.push(item);
    );
	$*/
   console.log(obj);
   


function ajaxcall()
	$.get.json(
	  url: Createdatabase,
	  type:"post",
	  data: jsonObj,
	  success: function(data)
	  console.log(data);
	  
	);

	

	</SCRIPT>
</head>
<style>
  body 
    background-color : #D3D3D3;
    margin: 0;
    padding: 0;

h4 
    color : #000000;
    text-align : center;
    font-family: "SIMPSON";

form 
    width: 300px;
    margin: 0 auto;

</style>
<body>
<form>
<h4>Create Your Table</h4>
<form action="servlet/createdatabase" method="post"> 
Table Name: <input type="text" name="table_name" id="table_name"required>
<input type="submit" value="Submit"><br><br>
<h4>Design Your Table</h4>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

	<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />

	<TABLE id="dataTable" name="dataTable"  border="1">
		<TR>
			<TD><INPUT type="checkbox" name="row1_chk" id="row1_chk"/></TD>
			<TD><INPUT type="text" name="row1_col" id="row1_col" required/></TD>
			<TD>
				<SELECT name="row1_datatype" id="row1_datatype" type="select">
					<OPTION value="int">INT(40)</OPTION>
					<OPTION value="var">VARCHAR(40)</OPTION>
					<OPTION value="char">CHAR(40)</OPTION>.
				</SELECT> 
			</TD>
		</TR>
	</TABLE><br>
<input type="button" value="Create Table" onclick="ajaxcall'">

</form>
</body>
</html>

所以请谁能告诉我如何在另一个页面上创建这个表,并且以表格的格式创建这个表并在 mysql 中创建这个表?

【问题讨论】:

【参考方案1】:

JSP 和 MySQL 的连接:下面的代码首先解释了创建连接。

import java.sql.*;  
class MysqlCon  
public static void main(String args[])  
try  
Class.forName("com.mysql.jdbc.Driver");  
Connection con=DriverManager.getConnection(  
"jdbc:mysql://localhost:3306/sonoo","root","root");  
//here sonoo is database name, root is username and password  
Statement stmt=con.createStatement();  
ResultSet rs=stmt.executeQuery("select * from emp");  
while(rs.next())  
System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
con.close();  
catch(Exception e) System.out.println(e);  
  
  

要在第二页显示数据,您需要再次连接到数据库,然后检索数据,有关更多信息,请查看此链接 mysql and jsp

【讨论】:

我不能像你那样分配表名,因为我只从用户那里获取表名,所以我该怎么做? Connection con = DriverManager.getConnection("jdbc:mysql://localhost/rating2", "root", "root");语句 stmt = con.createStatement(); stmt.execute("创建表'" + table_name+ "'(name varchar(20),mobile integer(30))"); //这将创建表,您也可以在创建查询后对其执行操作 你能告诉我连接这些的清单文件吗,因为我无法连接这个 CreatedatabaseCreatedatabase-class> Createdatabaseservlet/Createdatabase 我正在使用这个 所以你使用的是基于 XML 的?【参考方案2】:

这是用于从JSP创建表,也与mysql建立连接

<%@ page import="java.sql.*" %>

<HTML>
    <HEAD>
        <TITLE>Creating a Table</TITLE>
    </HEAD>

    <BODY>
        <H1>Creating a Table</H1>

        <%  
            Connection connection = null;
            try 
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
                connection = DriverManager.getConnection("jdbc:odbc:data", "userName", "password");

                Statement statement = connection.createStatement();
                String command = "CREATE TABLE Employees (ID INTEGER, Name CHAR(50));";
                statement.executeUpdate(command);

             catch (Exception e) 
                out.println("An error occurred.");
            
        %>
        The Employees table was created.
    </BODY>
</HTML>

【讨论】:

oracle存储过程创建临时表并插入数据。

...创建表后,在编译阶段数据库中并没有该表。这时向表中插入数据,会提示表不存在。所以,插入语句要赋值到变量里,通过e来执行。参考技术A你这个语法是不对的你createtableasselect的时候是不能指定列的数据类型,因为你是根... 查看详情

如何在 postgres 中创建表并插入具有动态值的数据

】如何在postgres中创建表并插入具有动态值的数据【英文标题】:Howtocreateatableandinsertdatawithdynamicvaluesinpostgres【发布时间】:2020-02-0610:34:22【问题描述】:我正在尝试编写一个表名动态出现的存储过程。还要检查表是否已经存在... 查看详情

oracle中用子查询创建临时表并赋值数据

...ddl)发出后,oracle会隐式的提交事务(commit),因此刚刚插入到临时表的数据被自动删除了。这就是你没查到数据的原因。改成第二种方式就ok了:createglobaltemporarytablemyTableoncommitpreserverowasselecte.empno,e.ename,e.deptnofromempe;追问通过... 查看详情

JDBC 创建表并插入亚马逊红移时出错

】JDBC创建表并插入亚马逊红移时出错【英文标题】:ErrorinJDBCcreatetableandinsertinamazonredshift【发布时间】:2017-03-1501:31:29【问题描述】:我正在使用amazonredshift和R。我得到了连接。我想创建一些数据库表并通过R向其中插入一些数... 查看详情

如何在 google bigquery 数据集中创建动态表并在 tableau 中访问?

】如何在googlebigquery数据集中创建动态表并在tableau中访问?【英文标题】:Howtocreatedynamictablesingooglebigquerydatasetandaccessintableau?【发布时间】:2017-06-0907:04:17【问题描述】:我有一个BigQuery数据库,我想创建动态表。例如:table_2017... 查看详情

创建临时表并使用存储过程将数据加载到其中

...显示在临时表上的数据。下面是我创建的过程。我想知道如何创建一个临时表并通过执行SP将这些数据插入其中 查看详情

在 jsp/servlet 中将调查数据插入 mySql 数据库

】在jsp/servlet中将调查数据插入mySql数据库【英文标题】:InsertingsurveydatatomySqldatabaseinjsp/servlet【发布时间】:2020-07-0310:08:06【问题描述】:我已创建调查表并尝试在数据库中一次插入多个问题,但显示空指针错误。我已动态创建... 查看详情

通过Java在间隔后将数据插入数据库[关闭]

】通过Java在间隔后将数据插入数据库[关闭]【英文标题】:insertdataintodatabaseafteranintervalbyJava[closed]【发布时间】:2013-09-1812:45:51【问题描述】:我需要在java中构建一个程序,它会在每10分钟后将数据插入mysql数据库。只要用户终... 查看详情

如何使用jsp中的bean类在数据库中插入值?

】如何使用jsp中的bean类在数据库中插入值?【英文标题】:Howtoinsertvalueindatabaseusingbeanclassinjsp?【发布时间】:2014-03-0613:22:48【问题描述】:嗨,我想使用jsp形式的bean类在数据库中插入值,我可以这样做,但是每当我在表中插入... 查看详情

如何使用 Elasticbeanstalk 在亚马逊 RDS 中删除表并重新创建?

】如何使用Elasticbeanstalk在亚马逊RDS中删除表并重新创建?【英文标题】:HowtodroptableandrecreateinamazonRDSwithElasticbeanstalk?【发布时间】:2016-08-1715:21:20【问题描述】:我在Amazon上的数据库目前只有少量数据(我正在制作一个Web应用... 查看详情

自动创建表并从 json 文件插入数据

】自动创建表并从json文件插入数据【英文标题】:Automaticallycreatingatableandinsertingdatafromjsonfile【发布时间】:2015-11-1601:48:28【问题描述】:我有将近50个json文件。我想基于这些文件创建Postgres数据库。每个文件包含一个表的数据... 查看详情

django在迁移后插入默认数据(代码片段)

...让RunPython使用它Docs通过一个示例解释了这一点,展示了如何与模型进行通信。来自Docs要创建空的迁移文件,DataMigrations这是如何更新新添加的字段的示例。pythonmanage.pymakemigrations--emptyyourappna 查看详情

hsqldb-2.2.6 创建表并从脚本插入数据

】hsqldb-2.2.6创建表并从脚本插入数据【英文标题】:hsqldb-2.2.6creatingtablesandinsertingdatafromascript【发布时间】:2012-01-0912:31:08【问题描述】:我在Test.sql中有以下命令创建表MY_USER(idint,namevarchar(10));INSERTINTOMY_USERVALUES(1,\'Test1\');INSERTINT... 查看详情

如何在现有表的特定位置插入列?

】如何在现有表的特定位置插入列?【英文标题】:Howtoinsertcolumnsataspecificpositioninexistingtable?【发布时间】:2014-01-2410:29:01【问题描述】:我创建了一个包含85列的表,但我错过了一列。错过的列应该是第57列。我不想删除该表并... 查看详情

hive学习第四课创建表并load数据到表

本章将介绍如何创建一个表以及如何将数据插入。创造表的约定在Hive中非常类似于使用SQL创建表。CREATETABLE语句CreateTable是用于在Hive中创建表的语句。语法和示例如下:语法CREATE[TEMPORARY][EXTERNAL]TABLE[IFNOTEXISTS][db_name.]table_name[(... 查看详情

SQL Server 存储过程创建临时表并插入值

】SQLServer存储过程创建临时表并插入值【英文标题】:SQLServerstoredprocedurecreatingtemptableandinsertingvalue【发布时间】:2013-01-1508:52:04【问题描述】:我正在尝试从不同的表中选择值并将其插入到临时表中。我需要临时表中的标识字... 查看详情

插入后如何在datagridview中立即刷新或显示?

】插入后如何在datagridview中立即刷新或显示?【英文标题】:Howtorefreshorshowimmediatelyindatagridviewafterinserting?【发布时间】:2014-02-1311:03:09【问题描述】:在所有文本框中输入数据后,点击提交按钮后,它不会立即显示在datagridview... 查看详情

如何运行 VBA 循环来格式化每个工作表并创建摘要选项卡

】如何运行VBA循环来格式化每个工作表并创建摘要选项卡【英文标题】:HowdoyourunaVBAlooptoformateachworksheet,andcreateasummarytab【发布时间】:2020-06-0918:24:27【问题描述】:我有一个包含20多个工作表的电子表格,其中列出了服务器。我... 查看详情