【Android-连接数据库】 直接连接SqlServer数据库

本文详细介绍如何在Android应用中使用Eclipse+SqlServer2008R2进行开发,包括下载并配置SQL驱动、创建数据库连接类、实现数据查询等功能,并提供了一个简单的示例应用。

一、测试过的开发环境

Eclispse + SqlServer2008R2

二、下载支持Android的SQL驱动

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

三、实现步骤

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

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 String IP = "192.168.1.1";
    private static String DBName = "Test";
    private static String USER = "sa";
    private static String PWD = "123";

    /** 创建数据库对象 */
    private static Connection getSQLConnection() {
        Connection con = null;
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            //加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
            con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8", USER, PWD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }

    /** 查询数据库 */
    public static String Query() {
        String result = "";
        try {
            Connection conn = getSQLConnection();
            String sql = "select * from SysUser";
            Statement stmt = conn.createStatement();//
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                String s1 = rs.getString("UserCode");
                String s2 = rs.getString("RealName");
                result += s1 + "  -  " + s2 + "\n";
            }
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
            result += "查询数据异常!" + e.getMessage();
        }
        return result;
    }
}

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

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

3、具体代码调用 MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    Button button;
    TextView textview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        textview = (TextView) findViewById(R.id.textview);
        // 按钮点击事件
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                textview.setText("");
                test();
            }
        });
    }

    // 查询
    private void test() {
        Runnable run = new Runnable() {
            @Override
            public void run() {
                String ret = DBUtil.Query();
                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");
                textview.setText(str);
                break;
            default:
                break;
            }
        };
    };
}

4、在AndroidManifest.xml 加上权限

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

5、问题

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

 

转载于:https://www.cnblogs.com/Sukie-s-home/p/8377245.html

03-08
### MathPix工具介绍 Mathpix Snipping Tool 是一款强大的数学公式识别工具,从最初的原型发展至今已经历了多次迭代和功能增强[^1]。该工具不仅能处理简单的数学表达式,还可以应对复杂的数学模型以及多行公式,并且支持手写公式的识别。 这款应用程序通过不断的科技创新与用户反馈改进,在学术研究和技术领域赢得了良好声誉,成为许多科研人员不可或缺的工作伙伴之一。除了基本的功能外,Mathpix 还提供了多种高级特性来满足不同用户的特定需求。 ### 使用方法 #### 安装与启动 为了使用 Mathpix Snipping Tool ,首先需要下载安装程序并按照提示完成设置过程。一旦成功安装后即可随时调用此应用来进行截图操作。 #### 截取屏幕上的公式图像 当遇到想要转换成 LaTeX 或 AsciiMath 的图片时,只需打开软件界面按下快捷键(默认为 `Ctrl+Alt+M`),此时鼠标指针会变为十字形状以便于选取目标区域;框选所需部分之后松开按键即刻上传至云端服务器等待进一步分析处理。 #### 获取LaTeX代码片段 经过短暂几秒钟的时间延迟过后,所截获的内容将以纯文本形式显示出来供复制粘贴到其他编辑器当中继续编写文档或是分享给他人查看交流之用。 ```python import pyperclip # 假设已获取到LaTeX字符串 stored_in_variable named latex_code pyperclip.copy(latex_code) print("LaTeX code has been copied to clipboard.") ``` 对于希望深入探索更多可能性的用户来说,可以考虑查阅官方提供的扩展插件——如用于解析Markdown文件内的公式标记语法的库 **mathpix-markdown-it** [^2] ——这将进一步提升工作效率和个人体验感。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值