安卓使用 jtds 连接SQL server2012数据库

1.jtds简介

jTDS是一个开放源代码的100%纯Java实现的JDBC3.0驱动,用于连接 Microsoft SQL Server和Sybase,基于freeTDS的,并且是目前最快的可企业级应用的SQL Server和Sybase的JDBC驱动程序,由Microsoft专门为Java打造的连接SQL server的插件。

优点:

完全兼容SQL server2012及之前的版本。

专门为SQL server打造的数据库连接驱动,速度快,数据量小。

可进行企业级使用。

可以在多个环境下使用。

无需搭建后台,可直接连接数据库。

缺点:

Jtds1.3只能运行在jdk1.7及以上环境下,否则会出现兼容性问题。

只能连接SQL server及Sybase。

重量级较大,使用在移动端可能会出现卡顿。

2.使用示例:

客户端:Android app

服务端:Windows server2012+SQL server2012

不多说,直接上代码。


这部分是一个连接数据库的类,因为在项目中用到的地方比较多,直接写成了的单独的类,并且使用了单例模式,避免了在每次使用时都需要初始化实例。

public class staticDBConnection {
    private String ip = "***.***.***.***";//IP地址
    private String conNm = "******";//数据库登录名
    private String pwd = "****";//密码

    public static staticDBConnection instance=new staticDBConnection();//实例
    public static Connection connection;//连接实例

    private staticDBConnection(){//构造函数
        connect();
    }

    public void connect() {
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");//构造语句
            connection = DriverManager.getConnection("jdbc:jtds:sqlserver://"+ip+":1433;DatabaseName=*******" ,conNm, pwd);//初始化连接实例
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用:

CallableStatement cs = staticDBConnection.instance.connection.prepareCall("{call p_Select_User(?,?)}");//使用后台存储过程
cs.setString(1, account);//设置参数
cs.setString(2, password);
ResultSet rs = cs.executeQuery();//获取数据库查询结果
if (rs.next()) {
    String userid = rs.getString("userid");
    String username = rs.getString("username");
    rs.close();
    cs.close();
    //connection.close();
    Message msg = new Message();
    msg.what = MSG_SUC;
    msg.obj = new String[]{userid, username};
    handler.sendMessage(msg);//向主线程发送消息,由于安卓连接网络必须在子线程中进行,所以在获得数据后,使用handler向主线程返回数据

不过,在安卓中很少有人直接连接数据库的,我算是比较奇葩的,只是因为比较方便,不用搭后台。后来事实证明我还是想多了,只用这个么你发满足项目需求,最后还是搭了一个服务器。在下一篇会讲到是如何搭建后台的。


本人是一个新手,如文章中有错误的地方,欢迎大家批评指正。

附jtds下载地址:https://sourceforge.net/projects/jtds/files/



你可能感兴趣的:(安卓使用 jtds 连接SQL server2012数据库)