![](/img/trans.png)
[英]How can I connect a JDBC azure sql server to android application?
[英]How to connect sql server to android application?
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
connection();
}
});
}
public void connection(){
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection("jdbc:jtds:sqlserver://Asus-PC/PJH.V1;","","");
Log.w("Connection", "Error");
Statement stat=conn.createStatement();
ResultSet result=stat.executeQuery("SELECT * FROM Javher1");
TextView tv=(TextView)findViewById(R.id.textView1);
tv.setText(result.getString(1));
conn.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("Error",e.getMessage());
Toast.makeText(getApplicationContext(), "Error"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
永远,永远,永远直接从应用程序直接连接到数据库。 黑客可以轻松获取您的所有数据库,窃取您的所有数据并清除数据库......!
您应该使用网络服务。 您的应用程序应该只只只传送到服务,而不是将数据库直接...
不要盲目地遵循任何这样说的教程,这是一个非常大的安全问题。
看看它也可能对你有帮助。
1
您要做的第一件事是转到链接https://sourceforge.net/projects/jtds/并下载驱动程序以通过 ms sql 连接应用程序。 下载 jtds-1.3.1-dist.zip (551.2 kB) zip 文件并解压以找到其中的 jar 文件夹 (jtds-1.3.1.jar)。
2
下一步是打开你的 android studio 并创建一个新项目。 (空白活动)。 现在打开 Root Explorer(ALT+1) 从左上角显示 android 的选项卡中,从下拉列表中选择项目模块。
您可以在顶部看到您的项目名称。 右键单击它并添加新目录。 将上述 jar 文件(从 dist 文件夹解压)粘贴到该文件夹中。
现在将 jar 文件作为模块添加到您的项目中。 右键单击项目目录,然后单击选项添加模块。 浏览您添加 jar 文件的文件夹名称(在上面的步骤中)并允许 gradle 正确同步。
现在是时候将此库作为依赖项添加到您的 android studio 项目中了。 为此,再次右键单击项目名称选项卡并移至打开模块配置(几乎是最后一个选项)。
它会打开一个显示项目的窗口。 移至应用程序目录(左侧最后一个选项卡)并单击 + 图标
添加依赖项(作为模块) 单击它会显示您刚刚创建的模块。 现在添加这个。 它会自动编译并在 gradle 文件中添加依赖项。
3
你现在差不多完成了。 只需复制代码作为您的主要活动。
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();
}
}
}.
将计算机名称('Asus-PC')替换为ip-address
你在模拟器中运行试试这个10.0.2.2
这不是有效的代码,请使用网络服务访问数据库。
http://sochinda.wordpress.com/2011/05/27/connecting-to-net-web-service-from-android/
http://www.codeproject.com/Articles/304302/Calling-Asp-Net-Webservice-ASMX-From-an-Android-Ap
我已经这样做了,但效率很低。 正如其他评论所提到的,请改用网络服务,您不应该在您的设备上保存您的数据库凭据。
为此,您需要做两件事,首先,
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
如果您在同一网络上,您还必须将您输入的 PC 名称更改为 LAN IP;如果您通过 Internet 连接,则必须更改公共 IP 地址。
此外,如果您与服务器不在同一网络上,那么您还必须在连接到服务器的路由器上启用端口转发。
警告:端口将始终显示为关闭,直到您在 SQL Server 上启动数据库引擎,名称为拥有数据库的计算机的 IP 地址。
将您的 android 应用程序连接到数据库的最佳方法是构建一个可以与数据库通信并回答您的请求的 rest api。 但是,如果您喜欢我并且只是使用 android 开发进行测试,您可以阅读下面的文章来帮助您https:\/\/medium.com\/@nahomdesta61\/connect-android-application-to-database-71975ce87b4a<\/a>
"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.