안드로이드에서 mysql을 사용할 수 있나요?

藏色散人
풀어 주다: 2020-09-14 13:56:03
원래의
5628명이 탐색했습니다.

Android는 mysql 데이터베이스를 사용할 수 있습니다. 1. 서버에 연결하면 서버가 데이터베이스를 읽어 추가, 삭제, 수정 및 쿼리를 수행합니다. 2. 외부 jar 패키지를 로드하고 데이터베이스에 직접 연결합니다.

안드로이드에서 mysql을 사용할 수 있나요?

Android는 mysql 데이터베이스를 사용할 수 있습니다. Android가 데이터베이스에 연결하는 방법에는 두 가지가 있습니다.

첫 번째 방법은 서버에 접속한 후 서버가 데이터베이스를 읽어 데이터를 추가, 삭제, 수정, 확인하는 방법입니다.

두 번째 방법은 안드로이드가 데이터베이스에 직접 연결하는 방법입니다. 이 방법은 휴대폰 메모리를 많이 소모하고 쉽게 디컴파일되므로 보안 위험이 있으므로 실제 프로젝트에서는 권장하지 않습니다.

1. 외부 jar 패키지 로드

Android 프로젝트에서 jdbc를 사용하려면 Java의 jdk에는 jdbc api가 없기 때문에 jdbc의 외부 jar 패키지를 가져와야 합니다. -connector-java -5.1.18-bin.jar 패키지 인터넷에 mysql-connector-java-5.1.18-bin.jar 패키지가 있는데 직접 사용해 보니 호환되지 않는 것 같았습니다. 최신 버전을 다운로드했습니다. jar 패키지는 괜찮습니다. 공식 웹사이트로 이동하여 다운로드하거나 이전 사람들이 업로드한 것이 많습니다.

2. jar 패키지를 가져오는 방법

방법 1:

다음 명령문을 프로젝트의 build.gradle 파일에 직접 추가하여 가져올 수 있습니다.

compile files('libs/mysql-connector-java-5.1.18-bin.jar')
로그인 후 복사

방법 2: jar 패키지를 다운로드하여 libs 디렉터리에 복사합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 복사합니다. 극복한 jar 패키지를 libs

3. 데이터베이스 연결 설정

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) {}
        }
    }
};
로그인 후 복사

참고:

Android 4.0 이후에는 메인 스레드에서 시간이 많이 걸리는 작업이 허용되지 않습니다(연결). 데이터베이스는 시간이 많이 걸리는 작업입니다.) 이 시간이 많이 걸리는 작업을 처리하려면 새 스레드를 열어야 합니다. 새 스레드가 없으면 이를 직접 처리하기 위해 새 스레드가 열리는 경우 프로그램은 항상 직접 종료됩니다. , 문제가 없을 것입니다.

물론 데이터베이스에 연결하려면 네트워크 액세스 권한을 추가해야 합니다.

<uses-permission android:name=”android.permission.INTERNET”/>
로그인 후 복사

4. 버그 포인트

1 가져온 jar 패키지가 정확해야 합니다

2. 데이터베이스에 연결하려면 열려 있어야 합니다.

3. 데이터베이스의 IP는 ping이 가능해야 합니다. LAN 주소는 휴대폰으로 접근할 수 없습니다.

4. 데이터베이스가 위치한 서버에 접근을 차단하는 방화벽이 열려 있습니까?

위 내용은 안드로이드에서 mysql을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!