按照如下步骤连接MySQL数据库 :
第一步 : 创建struts.xml并向其中添加如下xml代码 :
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts
Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Rose India Struts 2 Tutorials -->
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.devMode" value="true" />
<include file="struts-default.xml"/>
<!-- Add packages here -->
<package name="roseindia" namespace="/roseindia"
extends="struts-default">
<!-- inserting data into data base through JDBC -->
<action name="insert">
<result>/pages/insertData.jsp</result>
</action>
<action name="insertData" class="net.roseindia.insert">
<result name="error">/pages/insertData.jsp</result>
<result>/pages/insertSuccess.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts
Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Rose India Struts 2 Tutorials -->
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.devMode" value="true" />
<include file="struts-default.xml"/>
<!-- Add packages here -->
<package name="roseindia" namespace="/roseindia"
extends="struts-default">
<!-- inserting data into data base through JDBC -->
<action name="insert">
<result>/pages/insertData.jsp</result>
</action>
<action name="insertData" class="net.roseindia.insert">
<result name="error">/pages/insertData.jsp</result>
<result>/pages/insertSuccess.jsp</result>
</action>
</package>
</struts>
第二步 : 创建一个JSP输入表单 :
insertData.jsp
Html代码
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts 2 Insert Data Application!</title>
<link href="<s:url value="/css/main.css"/>" rel="stylesheet"
type="text/css"/>
</head>
<body>
<s:form action="insertData" method="POST" validate="true">
<tr>
<td colspan="2">
Please enter
</td>
</tr>
<s:actionerror />
<s:fielderror />
<s:textfield name="username" label="User Name"/>
<s:password name="password" label="Password"/>
<s:submit value="Save" align="center"/>
</s:form>
</body>
</html>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts 2 Insert Data Application!</title>
<link href="<s:url value="/css/main.css"/>" rel="stylesheet"
type="text/css"/>
</head>
<body>
<s:form action="insertData" method="POST" validate="true">
<tr>
<td colspan="2">
Please enter
</td>
</tr>
<s:actionerror />
<s:fielderror />
<s:textfield name="username" label="User Name"/>
<s:password name="password" label="Password"/>
<s:submit value="Save" align="center"/>
</s:form>
</body>
</html>第三步 : 创建一个Action类.
首先通过MySQL驱动的帮助("org.gjt.mm.mysql.Driver")建立一个MySQL数据库连接.现在,在MySQL数据库中创建一个账户以连接数据库.创建连接后,你可以向MySQL数据库的表中检索,添加,更新数据.
下面的Action类通过方法适当的类型的帮助和API接口建立了与MySQL数据库的连接.如果建立了连接输入的数据会添加到MySQL数据库表中否则显示错误信息.
insert.java
Java代码
package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
import java.sql.*;
/**
* <p> Validate a user login. </p>
*/
public class insert extends ActionSupport {
public String execute() throws Exception {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "taskproject";
String driverName = "org.gjt.mm.mysql.Driver";
String userName = "root";
String password = "root";
Connection con=null;
Statement stmt=null;
try{
Class.forName(driverName).newInstance();
con=DriverManager.getConnection(url+dbName, userName,
password);
stmt=con.createStatement();
}
catch(Exception e){
System.out.println(e.getMessage());
}
String uname=getUsername();
String pws=getPassword();
stmt = con.createStatement();
int val = stmt.executeUpdate("INSERT employee VALUES
('"+uname+"','"+pws+"')");
if(val == 0){
return ERROR;
}
else{
return SUCCESS;
}
}
// ---- Username property ----
/**
* <p>Field to store User username.</p>
* <p/>
*/
private String username = null;
/**
* <p>Provide User username.</p>
*
* @return Returns the User username.
*/
public String getUsername() {
return username;
}
/**
* <p>Store new User username</p>
*
* @param value The username to set.
*/
public void setUsername(String value) {
username = value;
}
// ---- Username property ----
/**
* <p>Field to store User password.</p>
* <p/>
*/
private String password = null;
/**
* <p>Provide User password.</p>
*
* @return Returns the User password.
*/
public String getPassword() {
return password;
}
/**
* <p>Store new User password</p>
*
* @param value The password to set.
*/
public void setPassword(String value) {
password = value;
}
}
package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
import java.sql.*;
/**
* <p> Validate a user login. </p>
*/
public class insert extends ActionSupport {
public String execute() throws Exception {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "taskproject";
String driverName = "org.gjt.mm.mysql.Driver";
String userName = "root";
String password = "root";
Connection con=null;
Statement stmt=null;
try{
Class.forName(driverName).newInstance();
con=DriverManager.getConnection(url+dbName, userName,
password);
stmt=con.createStatement();
}
catch(Exception e){
System.out.println(e.getMessage());
}
String uname=getUsername();
String pws=getPassword();
stmt = con.createStatement();
int val = stmt.executeUpdate("INSERT employee VALUES
('"+uname+"','"+pws+"')");
if(val == 0){
return ERROR;
}
else{
return SUCCESS;
}
}
// ---- Username property ----
/**
* <p>Field to store User username.</p>
* <p/>
*/
private String username = null;
/**
* <p>Provide User username.</p>
*
* @return Returns the User username.
*/
public String getUsername() {
return username;
}
/**
* <p>Store new User username</p>
*
* @param value The username to set.
*/
public void setUsername(String value) {
username = value;
}
// ---- Username property ----
/**
* <p>Field to store User password.</p>
* <p/>
*/
private String password = null;
/**
* <p>Provide User password.</p>
*
* @return Returns the User password.
*/
public String getPassword() {
return password;
}
/**
* <p>Store new User password</p>
*
* @param value The password to set.
*/
public void setPassword(String value) {
password = value;
}
}
代码的描述 :
Connection :
这是java.sql包中的一个接口,通过指定的数据库像MySQL, Ms-Access, Oracle等和java文件建立连接.SQL语句执行于Connection接口的上下文中.
Class.forName(String driver):
该方法是static的.它试图动态加载类并返回类实例.当它匹配类的指定string时,它获得String类型值(driver).
DriverManager:
它是java.sql包中的一个类,管理一系列JDBC的驱动.每个驱动都通过该类注册.
getConnection(String url, String userName, String password):
该方法通过指定的数据库url建立数据库连接.它需要三个String类型的参数如 :
url: - 需要连接的数据库url
userName: - 数据库用户名
password: - 数据库密码
con.close():
该方法用来断开连接.它释放了数据库占用的所有资源.
第四步 : 创建验证器.
验证文件的格式应该是<ActionClassName>-validation.xml或<ActionClassName>-<ActionAliasName>-validation.xml.
insert-validation.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>User name is required</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Password is required</message>
</field-validator>
</field>
</validators>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>User name is required</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Password is required</message>
</field-validator>
</field>
</validators>
当在文本域中输入正确的数据后,用户将在insertSuccess.jsp页面得到输入的数据.
insertSuccess.jsp
Html代码
<html>
<head>
<title>Inserted Data List</title>
</head>
<body>
<b> Inserted Data: </b>
<b>User name = </b><%=request.getParameter("username") %>!
<b>Password = </b><%=request.getParameter("password") %>!
</body>
</html>
<html>
<head>
<title>Inserted Data List</title>
</head>
<body>
<b> Inserted Data: </b>
<b>User name = </b><%=request.getParameter("username") %>!
<b>Password = </b><%=request.getParameter("password") %>!
</body>
</html>
输出 :
当程序执行时用户得到如下页面 :
不填写任何字段并点击"Save"按钮,你将得到如下输出页面 :
如果你只输入"Password"并不输入其它字段并点击"Save"按钮,你将得到该输出页面 :
如果你只输入"User Name"并不输入其它字段并点击"Save"按钮,你将得到该输出页面 :
Struts2连接MySQL数据库
最新推荐文章于 2024-03-25 11:30:37 发布