有沒有辦法在JSP中動態創建MySQL表?理想情況下,它將用於論壇中用戶鍵入線程的名稱,它會在數據庫中創建一個具有該名稱的表。在JSP中創建MySQL表
雖然我看不到它是否真的能夠實現,但我沒有工作,公平我沒有想到會這樣。
這是我試過,
<sql:query var="dbData1">
CREATE TABLE test (id int NOT NULL)
</sql:query>
有沒有辦法在JSP中動態創建MySQL表?理想情況下,它將用於論壇中用戶鍵入線程的名稱,它會在數據庫中創建一個具有該名稱的表。在JSP中創建MySQL表
雖然我看不到它是否真的能夠實現,但我沒有工作,公平我沒有想到會這樣。
這是我試過,
<sql:query var="dbData1">
CREATE TABLE test (id int NOT NULL)
</sql:query>
您需要定義一個dataSource
和同樣在query
聲明中稱。
例1:
定義數據源這樣的:
<sql:setDataSource var="dsn" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/my_database_name_here"
user="userName" password="pass_code_here"/>
而且,參考同一DSN在查詢構造是這樣的:
<sql:query dataSource="${dsn}" var="dbData1">
CREATE TABLE test (id int NOT NULL);
</sql:query>
這種建議不要在jsp
中定義dsn
被練習。
在上面的示例中,您可以看到數據庫訪問憑據公開。
您最好在您的服務器配置文件(例如Tomcat的server.xml)中定義DSN並使用它。
例2:
如果您使用的是Tomcat,然後定義data source in Server.xml,就像這樣:
<Resource
name="jdbc/dsn_on_my_db"
auth="Container"
type="javax.sql.DataSource"
username="yourusername"
password="yourpassword"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/my_db_name_here"
maxActive="15"
maxIdle="7"
validationQuery="Select 1" />
而在JSP頁面是指這樣的DSN:
<sql:setDataSource dataSource="jdbc/dsn_on_my_db" />
並且,使用您在發佈中定義的查詢:
<sql:query var="dbData1">
CREATE TABLE test (id int NOT NULL);
</sql:query>
另外,
<sql:query var="dbData1"
dataSource="${applicationScope.dsn_on_my_db}">
歡迎您的回答數據源已經提供,它已經連接到數據庫了,我在現有的jsp應用程序中測試了邏輯 – Crouch
,如果你有很多的用戶,您將獲得的表很多。爲什麼不使用User_Id等標準的關係數據庫設置? –
這是我想到的唯一方法,但它只會被最多20人作爲內聯網論壇使用,我看不到它被使用了那麼多,我願意接受建議,儘管 – Crouch