Maison >base de données >tutoriel mysql >Android peut-il utiliser MySQL ?
Android peut utiliser la base de données mysql. Il existe deux manières pour Android de se connecter à la base de données, à savoir : 1. En se connectant au serveur, puis le serveur lit la base de données pour réaliser l'ajout, la suppression, la modification. et requête de données ; 2. Chargez le package jar externe et connectez-vous directement à la base de données.
Android peut utiliser la base de données MySQL. Il existe deux façons pour Android de se connecter à la base de données.
La première méthode consiste à se connecter au serveur, puis le serveur lit la base de données pour ajouter, supprimer, modifier et vérifier les données. C'est également notre méthode courante.
La deuxième méthode consiste pour Android à se connecter directement à la base de données. Cette méthode consomme beaucoup de mémoire du téléphone mobile et est facilement décompilée, ce qui entraîne des risques de sécurité, elle n'est donc pas recommandée dans les projets réels.
1. Chargez le package jar externe
Si vous souhaitez utiliser jdbc dans le projet Android, vous devez importer le package jar externe de jdbc, car il n'y a pas d'API jdbc dans le jdk de Java. .J'utilise Le package jar est le package mysql-connector-java-5.1.18-bin.jar. Il existe un package mysql-connector-java-5.1.18-bin.jar sur Internet. J'ai trouvé qu'il était incompatible, alors je l'ai téléchargé. Pour les versions plus récentes, le package jar peut être téléchargé depuis le site officiel ou depuis Baidu. Il en existe de nombreux téléchargés par les prédécesseurs.
2. Comment importer le package jar
Méthode 1 :
Vous pouvez directement ajouter l'instruction suivante au fichier build.gradle du projet pour importer le
compile files('libs/mysql-connector-java-5.1.18-bin.jar')
méthode deux : téléchargez le package jar et copiez-le dans le répertoire libs du projet, puis cliquez avec le bouton droit sur le package jar copié Ajouter en tant que libs
Établissez une connexion à la base de données
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) {} } } };Remarque : est dans Après Android 4.0, les opérations fastidieuses ne sont pas autorisées dans le thread principal (la connexion à la base de données est une opération qui prend du temps. Un nouveau thread doit être ouvert pour gérer ce temps). -opérations consommatrices. Lorsqu'il n'y a pas de nouveau thread, l'opération est toujours. Il suffit de quitter directement le programme et d'ouvrir un nouveau thread pour le gérer directement, et il n'y aura aucun problème. Bien sûr, la connexion à la base de données nécessite un réseau. N'oubliez pas d'ajouter les autorisations d'accès au réseau :
<uses-permission android:name=”android.permission.INTERNET”/>4 Points de bug1. doit être correct 2. Un nouveau fil de discussion doit être ouvert pour se connecter à la base de données 3. L'adresse IP de la base de données doit être pingable et l'adresse LAN n'est pas accessible par téléphone mobile . 🎜>
4. Base de données Le serveur sur lequel vous vous trouvez est-il sur un pare-feu qui bloque l'accès
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!