Heim > Datenbank > MySQL-Tutorial > Hauptteil

Kann Android MySQL verwenden?

藏色散人
Freigeben: 2020-09-14 13:56:03
Original
5629 Leute haben es durchsucht

Android kann die MySQL-Datenbank verwenden. Es gibt zwei Möglichkeiten für Android, eine Verbindung zur Datenbank herzustellen, nämlich: 1. Durch Herstellen einer Verbindung zum Server, und dann liest der Server die Datenbank, um das Hinzufügen, Löschen und Ändern zu realisieren und Abfrage von Daten; 2. Laden Sie das externe JAR-Paket und stellen Sie eine direkte Verbindung zur Datenbank her.

Kann Android MySQL verwenden?

Android kann die MySQL-Datenbank verwenden. Es gibt zwei Möglichkeiten für Android, eine Verbindung zur Datenbank herzustellen.

Die erste Methode besteht darin, eine Verbindung zum Server herzustellen. Anschließend liest der Server die Datenbank, um Daten hinzuzufügen, zu löschen, zu ändern und zu überprüfen. Dies ist auch unsere übliche Methode.

Die zweite Methode besteht darin, dass Android eine direkte Verbindung zur Datenbank herstellt. Diese Methode verbraucht viel Speicher des Mobiltelefons und lässt sich leicht dekompilieren, was zu Sicherheitsrisiken führt. Daher wird sie in tatsächlichen Projekten nicht empfohlen.

1. Laden Sie das externe JAR-Paket

Wenn Sie JDBC im Android-Projekt verwenden möchten, müssen Sie das externe JAR-Paket von JDBC importieren, da es in Javas JDK keine JDBC-API gibt Ich verwende das Paket mysql-connector-java-5.1.18-bin.jar. Es gibt das Paket mysql-connector-java-5.1.18-bin.jar im Internet. Ich habe festgestellt, dass es nicht kompatibel ist, also habe ich es heruntergeladen. Für neuere Versionen kann das JAR-Paket von der offiziellen Website oder von Baidu heruntergeladen werden.

2. So importieren Sie das JAR-Paket

Methode 1:

Sie können die folgende Anweisung direkt zur build.gradle-Datei des Projekts hinzufügen, um das

compile files('libs/mysql-connector-java-5.1.18-bin.jar')
Nach dem Login kopieren
zu importieren

Methode Zwei: Laden Sie das JAR-Paket herunter und kopieren Sie es in das libs-Verzeichnis des Projekts. Klicken Sie dann mit der rechten Maustaste auf das kopierte JAR-Paket. Als libs hinzufügen

3 Stellen Sie eine Datenbankverbindung her

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_jdbc);
    new Thread(runnable).start();
}
Handler myHandler=new Handler(){
    public void handleMessage(Message msg) {
        // TODO Auto-generated method stub
        super.handleMessage(msg);
        Bundle data=new Bundle();
        data=msg.getData();
        //System.out.println("id:"+data.get("id").toString());    //输出第n行,列名为“id”的值
        Log.e("TAG","id:"+data.get("id").toString());
       TextView tv= (TextView) findViewById(R.id.jdbc);
        //System.out.println("content:"+data.get("content").toString());
    }
};
Runnable runnable=new Runnable() {
    private Connection con = null;
    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //引用代码此处需要修改,address为数据IP,Port为端口号,DBName为数据名称,UserName为数据库登录账户,Password为数据库登录密码
            con =
                    //DriverManager.getConnection("jdbc:mysql://192.168.1.202:3306/b2b", "root", "");
            DriverManager.getConnection("jdbc:mysql://http://192.168.1.100/phpmyadmin/index.php:8086/b2b",
                    UserName,Password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            testConnection(con);    //测试数据库连接
        } catch (java.sql.SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public void testConnection(Connection con1) throws java.sql.SQLException {
        try {
            String sql = "select * from ecs_users";        //查询表名为“oner_alarm”的所有内容
            Statement stmt = con1.createStatement();        //创建Statement
            ResultSet rs = stmt.executeQuery(sql);          //ResultSet类似Cursor
            //<code>ResultSet</code>最初指向第一行
            Bundle bundle=new Bundle();
            while (rs.next()) {
                bundle.clear();
                bundle.putString("id",rs.getString("userid"));
                //bundle.putString("content",rs.getString("content"));
                Message msg=new Message();
                msg.setData(bundle);
                myHandler.sendMessage(msg);
            }
            rs.close();
            stmt.close();
        } catch (SQLException e) {
        } finally {
            if (con1 != null)
                try {
                    con1.close();
                } catch (SQLException e) {}
        }
    }
};
Nach dem Login kopieren

Hinweis:

ist in Nach Android 4.0 sind zeitaufwändige Vorgänge im Hauptthread nicht zulässig (das Herstellen einer Verbindung zur Datenbank ist ein zeitaufwändiger Vorgang, um diesen Zeitaufwand zu bewältigen). Wenn kein neuer Thread vorhanden ist, wird der Vorgang immer ausgeführt. Beenden Sie einfach das Programm und öffnen Sie einen neuen Thread, um ihn direkt zu verarbeiten, und es wird kein Problem geben.

Natürlich ist für die Verbindung mit der Datenbank ein Netzwerkzugriffsrecht erforderlich:

<uses-permission android:name=”android.permission.INTERNET”/>
Nach dem Login kopieren

4. Das importierte JAR-Paket muss korrekt sein

2. Ein neuer Thread muss geöffnet werden, um eine Verbindung zur Datenbank herzustellen

3 Die IP der Datenbank muss pingbar sein und auf die LAN-Adresse kann nicht per Mobiltelefon zugegriffen werden

4. Befindet sich der Server, auf dem Sie sich befinden, in einer Firewall, die den Zugriff blockiert?

Das obige ist der detaillierte Inhalt vonKann Android MySQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!