Android端、java端连接到SQL Server ,使用 jdbc 和 jtds ,总结
2017-07-14 15:19
323 查看
今天设置了Android端到SQL Server 的连接,用的是 jtds的包连接的,期间各种问题不断,甚是烦,整了一天加一个早上才堪堪搞定,中间也测试了用java的 jdbc 连接方式来连接数据库,最后连接成功,现总结如下
jdbc的连接方式总结:
java 的 jdbc 连接要在要在classpath环境变量里设置 jdbc 包的路径;
运行sqlservermanager.msc,打开SQL Server的配置工具,打开MSSQLSERVER的协议,启用TCP/IP ;
同时要把sqljdbc4.jar包放进libraries里面,一开始用的是sqljdbc.jar的包,可是报错,要用后面后数字4的哪个包才行。
代码如下:
import java.sql.Connection; import java.sql.*; public class TestDemo { public static void main(String[] srg) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动 String dbURL = "jdbc:sqlserver://192.168.1.25:1433; DatabaseName=mydata"; //连接服务器和数据库sample String userName = "sa"; //默认用户名a String userPwd = "000"; //密码 Connection dbConn; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful! testConnection(dbConn); } catch (Exception e) { e.printStackTrace(); } } public static void testConnection(Connection con) throws java.sql.SQLException { try { String sql = "SELECT * FROM dbo.grouporder"; Statement stmt = con.createStatement();//创建Statement ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor while (rs.next()) {//<CODE>ResultSet</CODE>最初指向第一行 System.out.println(rs.getString("date")); System.out.println( rs.getString("state")); } rs.close(); stmt.close(); } catch (SQLException e) { System.out.println(e.getMessage().toString()); } finally { if (con != null) try { con.close(); } catch (SQLException e) { } } } }
jtds 的连接方式,这是Android端使用的连接方式,总结如下:
运行sqlservermanager.msc,打开SQL Server的配置工具,打开MSSQLSERVER的协议,启用TCP/IP 和Named
Pipes;
同时要把jtds-1.3.0.jar包依赖进libs里面,我测试了很多个包,但也不知道哪个包才是合适的;
jtds要不要在classpath环境变量里设置 jtds 包的路径我也不太清楚,反正我设置了的。
package com.sanhuan.demo.a20170713test; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MainActivity extends AppCompatActivity implements View.OnClickListener { public Button mButton, mButton6; public TextView mTextView1, mTextView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.button); mButton6 = (Button) findViewById(R.id.button6); mButton6.setOnClickListener(this); mButton.setOnClickListener(this); mTextView1 = (TextView) findViewById(R.id.textView1); mTextView2 = (TextView) findViewById(R.id.textView2); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button6: mTextView1.setText("执行中..."); Log.e("chen", "点击"); ConnectTask dt = new ConnectTask(); dt.execute(1); break; case R.id.button: mTextView1.setText("测试"); mTextView2.setText("测试"); break; } } class ConnectTask extends AsyncTask<Integer, Integer, String> { Connection con = null; @Override protected String doInBackground(Integer... params) { Log.e("chen", "线程启动"); //建立于数据库的连接 try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); //连接数据库 con = DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.25:1433/mydata", "sa", "000"); //192.168.1.25是使用本机(pc)的IP,mydata是我的数据库名称 Log.e("chen", "连接成功"); testConnection(con);//测试数据库连接 } catch (ClassNotFoundException e1) { e1.printStackTrace(); Log.e("chen....Class.forName::ClassNotFoundException", e1.getMessage()); } catch (SQLException e) { Log.e("chen", "SQLException"); e.printStackTrace(); } return "执行完毕"; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); Log.e("chen", result); } public void testConnection(Connection con) throws java.sql.SQLException { try { String sql = "SELECT * FROM dbo.grouporder";//查询表名为“Seed.Person”的所有内容 Statement stmt = con.createStatement();//创建Statement ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor while (rs.next()) {//<CODE>ResultSet</CODE>最初指向第一行 Log.e("&&&&&", rs.getString("date")); Log.e("&&&&&", rs.getString("state")); } rs.close(); stmt.close(); } catch (SQLException e) { System.out.println(e.getMessage().toString()); } finally { if (con != null) try { con.close(); } catch (SQLException e) { } } } } }
相关文章推荐
- Android之使用JDBC连接数据库-使用Jtds连接SQL Server 2008数据库
- JAVA之使用JDBC连接数据库-使用jtds 连接Sql Server 2005数据库
- Java/JSP中使用JDBC连接SQL Server 2005~
- [转]Java/JSP中使用JDBC连接SQL Server 2005
- java中使用jdbc连接sql server 2005
- Android之使用JDBC连接数据库-使用jtds连接mySQL
- Java/JSP中使用JDBC连接SQL Server 2005~
- java中使用jdbc连接sql server 2005
- sql server 与 java 使用jdbc 连接
- Java/JSP中使用JDBC连接SQL Server 2005~
- JAVA之使用JDBC连接数据库-使用微软sqljdbc连接SQL Server 2005数据库
- Java/JSP中使用JDBC连接SQL Server 2005
- android通过jdbc远程连接SQL Server 并实现增删改查源码 jtds 1.3.1
- Android之使用JDBC连接数据库-使用jtds连接各种数据库
- Java/JSP中使用JDBC连接SQL Server 2005
- Java/JSP中使用JDBC连接SQL Server 2005
- java/jsp中用JDBC连接Sql Server 2005总结
- Java/JSP中使用JDBC连接SQL Server 2005~
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java
- java中使用jdbc连接sql server 2005