Java 连接到Mysql
我有以下代码:Java 连接到Mysql,java,mysql,jdbc,Java,Mysql,Jdbc,我有以下代码: package FirstServlet; import java.beans.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.ResultSetMetaData; public class Codb{ public static void connect() { try{ Class.fo
package FirstServlet;
import java.beans.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.ResultSetMetaData;
public class Codb{
public static void connect() {
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://" + "localhost:3306/bd1";
String user = "root";
String passwd = "root";
Connection conn = (Connection) DriverManager.getConnection(url, user, passwd);
java.sql.Statement state =((java.sql.Connection) conn).createStatement();
ResultSet result = ((java.sql.Statement) state).executeQuery("SELECT * FROM consomateur");
ResultSetMetaData resultMeta = (ResultSetMetaData) result.getMetaData();
System.out.println("\n**********************************");
for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");
System.out.println("\n**********************************");
while(result.next()) {
for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print("\t" + result.getObject(i).toString() + "\t |");
System.out.println("\n---------------------------------");
}
result.close();
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
这是主要课程:
package FirstServlet;
public class Main {
public static void main(String[] args) {
Connect c = new Connect();
c.connect();
}
}
谢谢你的问题确实是班级的名字,我还有另外一个问题。
我有我创建的这个servlet的这个方法,我想做的是让用户输入登录名和密码来连接。检查用户名和密码的方法如下:
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Codb c = new Codb();
c.connect();
Statement state =conn.createStatement();
ResultSet result = (ResultSet) state.executeQuery("SELECT * FROM consomateur");
ResultSetMetaData resultMeta = (ResultSetMetaData) result.getMetaData();
String us= resultMeta.getColumnName(1);
String pass= resultMeta.getColumnName(2);
String username=us;
String password=pass;
String un=request.getParameter("username");
String pw=request.getParameter("password");
String msg=" ";
if(un.equals(username) && pw.equals(password)){
msg="Hello "+ un + " your login is sucess";
}
else{
msg="Hello "+un + " your login is unsucess";
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<font siez='6' color=red>"+ msg+ "</font>");
}
}
受保护的无效服务(HttpServletRequest请求、HttpServletResponse响应)抛出ServletException、IOException{
Codb c=新的Codb();
c、 connect();
语句状态=conn.createStatement();
ResultSet result=(ResultSet)state.executeQuery(“从联合体中选择*);
ResultSetMetaData resultMetadata=(ResultSetMetaData)result.getMetaData();
字符串us=resultMeta.getColumnName(1);
String pass=resultMeta.getColumnName(2);
字符串username=us;
字符串密码=通过;
字符串un=request.getParameter(“用户名”);
字符串pw=request.getParameter(“密码”);
字符串msg=“”;
如果(用户名和密码){
msg=“你好”+un+“您的登录成功”;
}
否则{
msg=“你好”+un+“您的登录未成功”;
}
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“+msg+”);
}
}
但是行“Statement state=conn.createStatement();”用红色下划线,错误为conn无法解决。因为您的类名是
FirstServlet
包下的Connection
。请选择其他类名或将包名与类一起使用
com.mysql.jdbc.Connection.Connection conn =
(com.mysql.jdbc.Connection.Connection)
DriverManager.getConnection(url, user, passwd);// Use fully qualified name
另一点,始终遵循Java的命名约定
package
名称应该都是较小的字母。因为您的自定义类的名称是连接,它与com.mysql.jdbc.Connection
冲突。这是问题的线索:
Connection conn = (Connection) DriverManager.getConnection(url, user, passwd);
在这里,Java不知道它是哪个连接。因此,要么:
- 将自定义
连接的名称
类(强烈建议)更改为其他名称
- 或将上面的行更改为如下所示:
com.mysql.jdbc.Connection.Connection conn=(com.mysql.jdbc.Connection.Connection)DriverManager.getConnection(url、user、passwd)代码>
但这不是一个好办法,也不推荐
这是一个清楚的例子,说明了为什么不应该将类命名为类似于JDK类的名称。
Connection conn = (Connection) DriverManager.getConnection(url, user, passwd);