Java MySql数据库访问JDBC驱动程序
它总是返回错误页面Java MySql数据库访问JDBC驱动程序,java,mysql,jdbc,Java,Mysql,Jdbc,它总是返回错误页面 public String execute() { String ret = ERROR; Connection conn = null; try { String URL = "jdbc:mysql://localhost/code"; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.get
public String execute()
{
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/code";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "mysql");
String sql = "SELECT username FROM user WHERE";
sql+=" username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
}
finally {
if (conn != null) {
try {
conn.close();
}
catch (Exception e){}
}
}
return ret;
}
类文件以访问Struts2中的数据库。我的数据库用户名:root,密码:mysql数据库名为“code”,表名为“user”
public String execute()
{
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/code";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "mysql");
String sql = "SELECT username FROM user WHERE";
sql+=" username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
}
finally {
if (conn != null) {
try {
conn.close();
}
catch (Exception e){}
}
}
return ret;
}
这是我的struts.xml
public String execute()
{
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/code";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "mysql");
String sql = "SELECT username FROM user WHERE";
sql+=" username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
}
finally {
if (conn != null) {
try {
conn.close();
}
catch (Exception e){}
}
}
return ret;
}
<struts>
<constant name="struts.devMode" value="true" />
<package name="com.code" extends="struts-default">
<action name="loginaction" class="com.code.Login" method="execute">
<result name="success">/Login.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
/Login.jsp
/error.jsp
为什么这不是返回成功页面?您的数据库url中缺少数据库的端口号
public String execute()
{
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/code";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "mysql");
String sql = "SELECT username FROM user WHERE";
sql+=" username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
}
finally {
if (conn != null) {
try {
conn.close();
}
catch (Exception e){}
}
}
return ret;
}
如果您使用的是MySql,默认端口号为3306
。尝试更改url,如下所示:
public String execute()
{
String ret = ERROR;
Connection conn = null;
try {
String URL = "jdbc:mysql://localhost/code";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, "root", "mysql");
String sql = "SELECT username FROM user WHERE";
sql+=" username = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
name = rs.getString(1);
ret = SUCCESS;
}
} catch (Exception e) {
ret = ERROR;
}
finally {
if (conn != null) {
try {
conn.close();
}
catch (Exception e){}
}
}
return ret;
}
String URL = "jdbc:mysql://localhost:3306/code";
谢谢你的回复。我更改了我的端口号。但没有任何更改。发生了相同的错误。请打印堆栈跟踪并检查生成的错误。修改此行
}catch(异常e){ret=error;}
使用`}catch(异常e){ret=error;e.printStackTrace();}”“谢谢,但它也不打印任何例外。