如何将sql server连接到android应用程序?
我向库中添加了一个jtds1.2.7-jar文件 代码在运行时出现以下错误: 错误:未知的服务器主机名“Asus PC” 如果有人知道什么,请帮帮我 提前感谢。将计算机名“Asus-PC”替换为ip地址 您是否在emulator中运行?请尝试此10.0.2.2 这不是有效的代码,请使用web服务访问数据库 永远不要直接从应用程序连接到数据库。黑客可以很容易地掌握你的所有数据库,窃取你的所有数据,并将数据库清除干净 您应该使用web服务。你的应用程序应该只与服务通信,而不是直接与数据库通信 不要盲目地遵循任何教程,这是一个非常大的安全问题。经过两天的努力。。最后,我可以通过MS SQL数据库连接我的android应用程序。。 看一看,也许对你也有帮助 一, 你要做的第一件事就是转到链接并下载驱动程序,通过ms sql连接应用程序。 下载jtds-1.3.1-dist.zip 551.2kb的zip文件并解压缩以找到其中的jar文件夹jtds-1.3.1.jar 二, 下一步是打开android studio并创建一个新项目。空白活动。 现在打开根explorerlat+1 从左上角显示android的选项卡中,从下拉列表中选择项目模块。 您可以在顶部看到项目的名称。右键单击此项并添加新目录。将上面从dist文件夹解压缩的jar文件粘贴到该文件夹。 现在将jar文件作为模块添加到项目中。在项目目录上单击鼠标右键,然后单击“添加模块”选项。 浏览在上述步骤中添加jar文件的文件夹名称,并允许gradle正确同步。 现在是将这个库作为依赖项添加到android studio项目的时候了。 为此,再次右键单击“项目名称”选项卡,并移动到“打开模块配置”几乎是最后一个选项。 它会打开一个显示项目的窗口。移动到应用程序目录左侧的最后一个选项卡,然后单击+图标 添加依赖项 作为一个模块 单击它将显示您刚刚创建的模块。现在加上这个。 它将自动编译并在gradle文件中添加依赖项 三, 你现在差不多完成了。 只需将代码复制为您的主要活动如何将sql server连接到android应用程序?,android,sql-server,connection,Android,Sql Server,Connection,我向库中添加了一个jtds1.2.7-jar文件 代码在运行时出现以下错误: 错误:未知的服务器主机名“Asus PC” 如果有人知道什么,请帮帮我 提前感谢。将计算机名“Asus-PC”替换为ip地址 您是否在emulator中运行?请尝试此10.0.2.2 这不是有效的代码,请使用web服务访问数据库 永远不要直接从应用程序连接到数据库。黑客可以很容易地掌握你的所有数据库,窃取你的所有数据,并将数据库清除干净 您应该使用web服务。你的应用程序应该只与服务通信,而不是直接与数据库通信 不要盲
}.我已经这样做了,但效率很低。 正如其他评论所提到的,您不应该在设备上保存DB凭据,而是使用Web服务 要想让它发挥作用,你需要做两件事,首先
package com.example.administrator.testsqlserver;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import net.sourceforge.jtds.jdbc.*;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}}
public void Connect(View v)
{
EditText editText=(EditText)findViewById(R.id.editText);
String code = editText.getText().toString();
Log.i("Android"," MySQL Connect Example.");
Connection conn = null;
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
String connString = "jdbc:jtds:sqlserver://yourip :1433/your db;encrypt=fasle;user=username;password=password;";
String username = "your username";
String password = "your password";
conn = DriverManager.getConnection(connString,username,password);
Log.w("Connection","open");
Statement stmt = conn.createStatement();
Toast.makeText(MainActivity.this, "This works", Toast.LENGTH_SHORT).show();
ResultSet reset = stmt.executeQuery("SELECT NAME FROM tablename ;");
while(reset.next()){
String ans= reset.getString(1);
Toast.makeText(MainActivity.this,ans, Toast.LENGTH_SHORT).show();
}
conn.close();
} catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
e.printStackTrace();
}
}
如果您在同一网络上,您还必须将输入的PC名称更改为LAN IP;如果您通过internet连接,则必须更改公共IP地址
此外,如果您与服务器不在同一网络上,则还必须在连接到服务器的路由器上启用端口转发
警告:在SQL Server上启动数据库引擎之前,该端口将始终显示为关闭状态,该引擎的名称为拥有该数据库的计算机的IP地址。如果可能,它允许我下载链接或Web服务的源代码
package com.example.administrator.testsqlserver;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import net.sourceforge.jtds.jdbc.*;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}}
public void Connect(View v)
{
EditText editText=(EditText)findViewById(R.id.editText);
String code = editText.getText().toString();
Log.i("Android"," MySQL Connect Example.");
Connection conn = null;
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
String connString = "jdbc:jtds:sqlserver://yourip :1433/your db;encrypt=fasle;user=username;password=password;";
String username = "your username";
String password = "your password";
conn = DriverManager.getConnection(connString,username,password);
Log.w("Connection","open");
Statement stmt = conn.createStatement();
Toast.makeText(MainActivity.this, "This works", Toast.LENGTH_SHORT).show();
ResultSet reset = stmt.executeQuery("SELECT NAME FROM tablename ;");
while(reset.next()){
String ans= reset.getString(1);
Toast.makeText(MainActivity.this,ans, Toast.LENGTH_SHORT).show();
}
conn.close();
} catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
e.printStackTrace();
}
}
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);