안 드 로 이 드 를 사용 하여 SQL Server 데이터베이스 에 접근

6623 단어 Android
1. SQL 드라이버
안 드 로 이 드 를 지원 할 수 있 는 SQL 드라이버 다운로드, 주소 다운로드http://sourceforge.net/projects/jtds/files/ 1.2.7 버 전 만 다운로드 할 수 있 습 니 다.안 드 로 이 드 는 높 은 버 전 을 사용 하 는 것 을 지원 하지 않 습 니 다.
jtds - 1.2.7. jar 를 android 프로젝트 libs 디 렉 터 리 에 놓 습 니 다.
2. 개발 환경
windows 7 X64
android 4.2
android studio 2.2
3. 코드
데이터베이스 연결 클래스 DBUtil. java
package com.example.androidsql;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
   
  
public class DBUtil  
{  
  
    private static Connection getSQLConnection(String ip, String user, String pwd, String db)  
    {  
        Connection con = null;  
        try  
        {  
            Class.forName("net.sourceforge.jtds.jdbc.Driver");  
            con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db + ";charset=utf8", user, pwd);  
        } catch (ClassNotFoundException e)  
        {  
            e.printStackTrace();  
        } catch (SQLException e)  
        {  
            e.printStackTrace();  
        }  
        return con;  
    }  
  
    public static String QuerySQL()  
    {  
        String result = "";  
        try  
        {  
            Connection conn = getSQLConnection("xx.xx.xx.xx", "sa", "123", "DataBaseName");  
            String sql = "select top 10 * from Users";  
            Statement stmt = conn.createStatement();//   
            ResultSet rs = stmt.executeQuery(sql);  
            while (rs.next())  
            { 
                String s1 = rs.getString("UserName");  
                String s2 = rs.getString("Password");  
                result += s1 + "  -  " + s2 + "
"; System.out.println(s1 + " - " + s2); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); result += " !" + e.getMessage(); } return result; } public static void main(String[] args) { QuerySQL(); } }

MainActivity.java 
package com.example.androidsql;  
  
import android.os.Bundle;  
import android.os.Handler;  
import android.os.Message;  
import android.app.Activity;  
import android.view.Menu;  
import android.view.View;  
import android.widget.TextView;  
  
public class MainActivity extends Activity  
{  
    private View btnTest;  
    private View btnClean;  
    private TextView tvTestResult;  
    @Override  
    protected void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        btnTest=findViewById(R.id.btnTestSql);  
        btnClean=findViewById(R.id.btnClean);  
        tvTestResult = (TextView)findViewById(R.id.tvTestResult);  
          
        btnTest.setOnClickListener(getClickEvent());  
        btnClean.setOnClickListener(getClickEvent());  
    }   
      
    private View.OnClickListener getClickEvent(){  
        return new View.OnClickListener()  
        {             
            @Override  
            public void onClick(View v)  
            {  
                tvTestResult.setText("...");  
                if(v==btnTest){  
                    test();  
                      
                }                 
            }  
        };  
    }  
    private void test()  
    {  
        Runnable run = new Runnable()  
        {             
            @Override  
            public void run()  
            {  
                String ret = DBUtil.QuerySQL();  
                Message msg = new Message();  
                msg.what=1001;  
                Bundle data = new Bundle();  
                data.putString("result", ret);    
                msg.setData(data);  
                mHandler.sendMessage(msg);  
            }  
        };  
        new Thread(run).start();  
           
    }  
      
    Handler mHandler = new Handler(){  
        public void handleMessage(android.os.Message msg) {  
            switch (msg.what)  
            {  
                case 1001:  
                    String str = msg.getData().getString("result");  
                    tvTestResult.setText(str);  
                    break;  
  
                default:  
                    break;  
            }  
        };  
    };  
  
}

activity_main.xml 
  
    

string.xml 

  
  
  
    AndroidSQL  
    Settings  
    Hello world!  
      SQL  
          

마지막 으로 연결 데이터 오류 정보 빈 포인터 오류 가 발생 하면 AndroidManifest. xml 에 추가 해 야 합 니 다.
    
    
    

좋은 웹페이지 즐겨찾기