一、测试过的开发环境

Eclispse + SqlServer2008R2

二、下载支持Android的SQL驱动

只能下载1.2.7版本的,将 jtds-1.2.7.jar 包放在android项目 libs 目录下。 下载地址:http://sourceforge.net/projects/jtds/files/

三、实现步骤

1、创建数据库连接类 DBUtil.java

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6.  
  7. public class DBUtil {
  8.  
  9. private static String IP = "192.168.1.1";
  10. private static String DBName = "Test";
  11. private static String USER = "sa";
  12. private static String PWD = "123";
  13.  
  14. /** 创建数据库对象 */
  15. private static Connection getSQLConnection() {
  16. Connection con = null;
  17. try {
  18. Class.forName("net.sourceforge.jtds.jdbc.Driver");
  19. //加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
  20. con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8", USER, PWD);
  21. } catch (ClassNotFoundException e) {
  22. e.printStackTrace();
  23. } catch (SQLException e) {
  24. e.printStackTrace();
  25. }
  26. return con;
  27. }
  28.  
  29. /** 查询数据库 */
  30. public static String Query() {
  31. String result = "";
  32. try {
  33. Connection conn = getSQLConnection();
  34. String sql = "select * from SysUser";
  35. Statement stmt = conn.createStatement();//
  36. ResultSet rs = stmt.executeQuery(sql);
  37. while (rs.next()) {
  38. String s1 = rs.getString("UserCode");
  39. String s2 = rs.getString("RealName");
  40. result += s1 + " - " + s2 + "\n";
  41. }
  42. rs.close();
  43. stmt.close();
  44. conn.close();
  45. } catch (SQLException e) {
  46. e.printStackTrace();
  47. result += "查询数据异常!" + e.getMessage();
  48. }
  49. return result;
  50. }
  51. }

2、创建一个布局文件,activity_main.xml

一个Buttton控件,用来点击查询。
一个TextView控件,用来显示查询到的信息。
代码省略。。。

3、具体代码调用 MainActivity.java

  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.os.Handler;
  4. import android.os.Message;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9.  
  10. public class MainActivity extends Activity {
  11. Button button;
  12. TextView textview;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.activity_main);
  18. button = (Button) findViewById(R.id.button);
  19. textview = (TextView) findViewById(R.id.textview);
  20. // 按钮点击事件
  21. button.setOnClickListener(new OnClickListener() {
  22. @Override
  23. public void onClick(View v) {
  24. textview.setText("");
  25. test();
  26. }
  27. });
  28. }
  29.  
  30. // 查询
  31. private void test() {
  32. Runnable run = new Runnable() {
  33. @Override
  34. public void run() {
  35. String ret = DBUtil.Query();
  36. Message msg = new Message();
  37. msg.what = 1001;
  38. Bundle data = new Bundle();
  39. data.putString("result", ret);
  40. msg.setData(data);
  41. mHandler.sendMessage(msg);
  42. }
  43. };
  44. new Thread(run).start();
  45. }
  46.  
  47. // 消息显示到控件
  48. Handler mHandler = new Handler() {
  49. public void handleMessage(android.os.Message msg) {
  50. switch (msg.what) {
  51. case 1001:
  52. String str = msg.getData().getString("result");
  53. textview.setText(str);
  54. break;
  55. default:
  56. break;
  57. }
  58. };
  59. };
  60. }

4、在AndroidManifest.xml 加上权限

  1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

5、问题

  • 如何捕获连接数据库失败?
  • 如何连接其它的数据库?
  • 能使用的Android版本有哪些?

【Android-连接数据库】 直接连接SqlServer数据库的更多相关文章

  1. 使用 IIS 新建WebService站点供Android访问远程sqlserver数据库

    新增网站 打开IIS控制台,找到服务根目录,右键,新建网站 网站设定 浏览测试 使用刚才生成的默认HelloWorld的服务1页面,记得加上端口号 http://localhost:8090/serv ...

  2. jsp连接sqlServer数据库教程

    一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0   下载地址:点击进入 开发IDE工 ...

  3. ubuntu系统下配置php支持SQLServer数据库

    最近在做一个项目,该项目的数据库是微软公司的的SQLserver ,数据库安装在另一台windows服务器上,而项目却部署在ubuntu server上.那么这样就会涉及到项目在linux上如何链接S ...

  4. 基于4.5Framework web程序、SQLSERVER数据库打包

    原文:基于4.5Framework web程序.SQLSERVER数据库打包 估计很多朋友和我一样,对于C/S程序打包很熟悉,但对于B/S程序打包一头雾水... 最近公司要求我们把项目和数据库(SQL ...

  5. JavaWeb程序连接SQLserver数据库

    声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1 ...

  6. .net 连接SqlServer数据库及基本增删改查

    一.写在前面 因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法.(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测 ...

  7. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  8. python连接sqlserver数据库

    1.准备工作 python3.6连接sqlserver数据库需要引入pymssql模块 pymssql官方:https://pypi.org/project/pymssql/ 没有安装的话需要: pi ...

  9. JavaWeb连接SQLServer数据库并完成一个登录界面及其功能设计。

    一.JDBC连接SQLserver数据库的步骤: 1.下载SQLserver的JDBC驱动文件——Microsoft JDBC Driver 4.0 for SQL Server 2.例如下载得到的文 ...

随机推荐

  1. *#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】

    Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 . Tk ...

  2. oracle建表字段包含关键字注意事项

    SQL建表时最好不要把表定义成关键字字段 1 若不小心把表定义成关键字了,比如option, desc等等,oracle版本查询会有问题,短期内无法修改字段名称的,暂时用字段名+双引号解决: SELE ...

  3. Apache + PHP Yii框架跨域访问API

    其实不用在Yii框架中设置任何东西,直接用Ajax调用不同域名的API即可 但是Apache中要这么设置: 首先编辑httpd.conf    去掉这一句的注释:LoadModule headers_ ...

  4. Nginx部署前后端分离的单页应用配置

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  5. 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title

    [第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...

  6. Microsoft SQL Server 2008 R2 Express and Management Studio Express

    https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads Microsoft SQL Server 2008 R2 RTM - E ...

  7. C#字典转对象

    /// <summary> /// Assign parameters to specified objects /// </summary> /// <typepara ...

  8. hdu 5446 lucas+crt+按位乘

    http://acm.hdu.edu.cn/showproblem.php?pid=5446 题意:题目意思很简单,要你求C(n,m)mod p的值 p=p1*p2*...pn; 题解:对于C(n,m ...

  9. JDK + Tomcat 安装 + 制作自定义镜像【第 2 篇 Tomcat】

    [第 1 篇 JDK]:https://www.cnblogs.com/del88/p/11842387.html[第 2 篇 Tomcat]:https://www.cnblogs.com/del8 ...

  10. 对数据库ID进行散裂化计算

    import basehash class Hasher: """ 对数据库ID进行散列化计算 """ base36 = basehash. ...