Android远程连接SQL Server 2008数据库

Android通过JTDS直接连接SQL Server 2008数据库

首先下载JTDS(http://sourceforge.net/projects/jtds/files/jtds/),这里有JTDS的各种版本,起初下的是jtds-1.3.1,但在使用中总出现

ClassNotFound:net.sourceforge.jtds.jdbc.Driver 错误,后来下载了1.2.7版本,解决了这个问题,可能jdk需要7.0的。


import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
  
import android.app.Activity;  
import android.os.AsyncTask;  
import android.os.Bundle;  
import android.util.Log;  
  
  
public class MainActivity extends Activity   
{  
      
    private String UserName = "sa";  
    private String Password = "sa";  
      
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        ConnectTask dt = new ConnectTask();  
        dt.execute();  
  
    }  
      
    class ConnectTask extends AsyncTask<Integer, Integer, String>  
    {  
        Connection con = null;  
        @Override  
        protected void onPreExecute() {  
            //第一个执行方法  
            super.onPreExecute();  
        }  
          
        @Override  
        protected String doInBackground(Integer... params) {              
            //建立于数据库的连接   
            try {  
                Class.forName( "net.sourceforge.jtds.jdbc.Driver");  
                con = DriverManager.getConnection( "jdbc:jtds:sqlserver://10.0.2.2:1433/AndroidSample", UserName, Password);    //10.0.2.2是使用模拟器是用的本机(pc)的IP,androidSample是我的数据库名称  
                testConnection(con);//测试数据库连接  
            } catch (ClassNotFoundException e1) {  
                // TODO Auto-generated catch block  
                e1.printStackTrace();  
                Log.e("Class.forName::ClassNotFoundException", e1.getMessage());  
            }catch (SQLException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
            }  
              
            return "执行完毕";  
        }  
  
        @Override  
        protected void onPostExecute(String result) {  
            super.onPostExecute(result);  
        }  
          
        public void testConnection(Connection con) throws java.sql.SQLException {               
            try {      
                String sql = "SELECT * FROM Seed.Person";//查询表名为“Seed.Person”的所有内容     
                Statement stmt = con.createStatement();//创建Statement     
                ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor     
                    
                while (rs.next()) {//<CODE>ResultSet</CODE>最初指向第一行     
                    Log.e("&&&&&", rs.getString("NameChs"));  
                    Log.e("&&&&&", rs.getString("OperateUserName"));                        
                }      
                rs.close();    
                stmt.close();    
            } catch (SQLException e) {    
                System.out.println(e.getMessage().toString());    
            } finally {    
                if (con != null)    
                    try {    
                        con.close();    
                    } catch (SQLException e) {    
                    }    
            }    
        }     
    }  
  
}  


你可能感兴趣的:(Android远程连接SQL Server 2008数据库)