Java Android JDBC:在Eclipse中使用MySql JDBC的一些问题

Java Android JDBC:在Eclipse中使用MySql JDBC的一些问题,java,mysql,eclipse,jdbc,Java,Mysql,Eclipse,Jdbc,我在Windows中使用Eclipse,我想连接到MySql数据库。 我知道我应该使用JDBC。但我不知道如何使用它 我已经从下载了msi和zip文件 在zip文件中,存在一个同名文件:mysql-connector-java-5.1.30-bin.jar 我该怎么处理这个? 我的意思是复制/导入(在文件夹或eclipse中)此文件的位置 请注意,我有以下代码: import android.os.Bundle; import android.app.Activity; import java.

我在Windows中使用Eclipse,我想连接到MySql数据库。 我知道我应该使用JDBC。但我不知道如何使用它

我已经从下载了msi和zip文件

在zip文件中,存在一个同名文件:mysql-connector-java-5.1.30-bin.jar 我该怎么处理这个?

我的意思是复制/导入(在文件夹或eclipse中)此文件的位置

请注意,我有以下代码:

import android.os.Bundle;
import android.app.Activity;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import android.os.AsyncTask;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class LearningActivity extends Activity {

    private static final String url = "jdbc:mysql://cool/app";
    private static final String user = "user";
    private static final String pass = "password";

    private Button button;
    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button = (Button)this.findViewById(R.id.button1);
        tv = (TextView)this.findViewById(R.id.textView1);

        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                Connect();
            }
        });
    }

    public void Connect() {
        Connect task = new Connect();
        task.execute();
    }

    private class Connect extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String response = "";

            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection(url, user, pass); 

                String result = "Database connection success\n";
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery("select * from users");
                ResultSetMetaData rsmd = rs.getMetaData();

                while(rs.next()) {
                    result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
                    result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
                    result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
                }
                tv.setText(result);
            }
            catch(Exception e) {
                e.printStackTrace();
                tv.setText(e.toString());
            }
            return response;
        }

        @Override
        protected void onPostExecute(String result) {
            tv.setText(result);
        }
    }
}
导入android.os.Bundle;
导入android.app.Activity;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.ResultSetMetaData;
导入java.sql.Statement;
导入android.os.AsyncTask;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
公共类LearningActivity扩展了活动{
私有静态最终字符串url=“jdbc:mysql://cool/app";
私有静态最终字符串user=“user”;
私有静态最终字符串pass=“password”;
私人按钮;
私家图文电视;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
按钮=(按钮)this.findViewById(R.id.button1);
tv=(TextView)this.findViewById(R.id.textView1);
setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//单击后执行操作
Connect();
}
});
}
公共void Connect(){
连接任务=新建连接();
task.execute();
}
私有类连接扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串响应=”;
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(url、用户、通行证);
String result=“数据库连接成功\n”;
语句st=con.createStatement();
结果集rs=st.executeQuery(“从用户中选择*);
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next()){
结果+=rsmd.getColumnName(1)+“:“+rs.getInt(1)+”\n”;
结果+=rsmd.getColumnName(2)+“:“+rs.getString(2)+”\n”;
结果+=rsmd.getColumnName(3)+“:“+rs.getString(3)+”\n”;
}
tv.setText(结果);
}
捕获(例外e){
e、 printStackTrace();
tv.setText(例如toString());
}
返回响应;
}
@凌驾
受保护的void onPostExecute(字符串结果){
tv.setText(结果);
}
}
}

但是我得到了这个错误:ClassNotFoundException:com.mysql.jdbc.Driver

我把它们放在eclipse项目的lib目录中,然后将jar添加到我的构建路径。

与@Ali的脱机讨论显示,他使用的是旧版本的ADT,该ADT没有创建
libs
文件夹,如页面上的文件夹层次结构所示

手动创建此文件夹为他解决了问题


注意:文件夹名称为libs,末尾带有“s”。很容易忽略这一点,而是创建
lib

您使用像maven/ant这样的系统来编译还是这是一个独立的项目?@DeepakBala:不,这是一个独立的项目。我用AVD运行它,AVD?这是一个android项目?您是否在android项目中看到名为
libs
的文件夹?你把罐子放在那里了吗?是的,兄弟。这是一个android应用程序。:)让我检查它是否存在…不。没有像libs这样的文件夹。只有这些文件夹存在:src、gen、res和assetsI通过Spring进行JDBC连接,因此,我无法进一步帮助您。问题解决了,我的朋友。:)我添加一个文件夹libs并将jar文件复制到其中,然后将其添加到JavaBuildPath。