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);