如何使用jdbc将android studio连接到mysql
我已经下载了mysql-java-connector-5.1 并将其作为库导入 程序正在编译,但无论我在做什么,都会抛出一个关于连接失败的异常 我想将数据从应用程序(android studio java)发送到存储在amazon(aws)中的sql数据库,我想用raspberry pi(使用c++)获取数据 <> C++工作完美。< /P> 使用android studio,我不能连接,不能连接到本地主机(mysql工作台),也不能连接到aws 我在web上看到“getConnection”函数中的“url”参数的一些模板,我使用了这些模板: 对于本地主机:如何使用jdbc将android studio连接到mysql,android,mysql,jdbc,mysql-workbench,Android,Mysql,Jdbc,Mysql Workbench,我已经下载了mysql-java-connector-5.1 并将其作为库导入 程序正在编译,但无论我在做什么,都会抛出一个关于连接失败的异常 我想将数据从应用程序(android studio java)发送到存储在amazon(aws)中的sql数据库,我想用raspberry pi(使用c++)获取数据 C++工作完美。< /P> 使用android studio,我不能连接,不能连接到本地主机(mysql工作台),也不能连接到aws 我在web上看到“getConnection”函数中
String url = "jdbc:mysql://<local ip>:<port>/<schema>
但康涅狄格总是空的。
我忘了什么吗?
*顺便说一句,我不确定我是否必须使用
Class.forName("com.mysql.jdbc.Driver").newInstance();
但我还是用了
这是printStackTrace结果:
System.err:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。
08-10 19:26:58.223 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Constructor.newInstance0(本机方法)
08-10 19:26:58.225 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
08-10 19:26:58.227 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
08-10 19:26:58.228 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.Util.getInstance(Util.java:408)
08-10 19:26:58.230 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
08-10 19:26:58.232 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
08-10 19:26:58.234 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
08-10 19:26:58.235 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
08-10 19:26:58.238 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2267)
08-10 19:26:58.240 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016)
08-10 19:26:58.241 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:776)
08-10 19:26:58.243 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
08-10 19:26:58.244 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Constructor.newInstance0(本机方法)
08-10 19:26:58.245 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
08-10 19:26:58.247 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
08-10 19:26:58.248 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
08-10 19:26:58.250 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
08-10 19:26:58.251 20891-20891/com.example.asaf.sql W/System.err:at java.sql.DriverManager.getConnection(DriverManager.java:569)
08-10 19:26:58.252 20891-20891/com.example.asaf.sql W/System.err:at java.sql.DriverManager.getConnection(DriverManager.java:219)
08-10 19:26:58.254 20891-20891/com.example.asaf.sql W/System.err:at com.example.asaf.sql.MainActivity.test(MainActivity.java:45)
08-10 19:26:58.255 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Method.invoke(本机方法)
08-10 19:26:58.257 20891-20891/com.example.asaf.sql W/System.err:at-android.support.v7.app.appcompativiewInflater$DeclaredOnClickListener.onClick(appcompativiewInflater.java:288)
08-10 19:26:58.258 20891-20891/com.example.asaf.sql W/System.err:at-android.view.view.performClick(view.java:5637)
08-10 19:26:58.259 20891-20891/com.example.asaf.sql W/System.err:at-android.view.view$PerformClick.run(view.java:22429)
08-10 19:26:58.260 20891-20891/com.example.asaf.sql W/System.err:at-android.os.Handler.handleCallback(Handler.java:751)
08-10 19:26:58.262 20891-20891/com.example.asaf.sql W/System.err:at-android.os.Handler.dispatchMessage(Handler.java:95)
08-10 19:26:58.263 20891-20891/com.example.asaf.sql W/System.err:at-android.os.Looper.loop(Looper.java:154)
08-10 19:26:58.265 20891-20891/com.example.asaf.sql W/System.err:at-android.app.ActivityThread.main(ActivityThread.java:6119)
08-10 19:26:58.266 20891-20891/com.example.asaf.sql W/System.err:at java.lang.reflect.Method.invoke(本机方法)
08-10 19:26:58.267 20891-20891/com.example.asaf.sql W/System.err:at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
08-10 19:26:58.269 20891-20891/com.example.asaf.sql W/System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
08-10 19:26:58.27220891-20891/com.example.asaf.sql W/System.err:由以下原因引起:android.os.NetworkOnMainThreadException
08-10 19:26:58.273 20891-20891/com.example.asaf.sql W/System.err:at-android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
08-10 19:26:58.273 20891-20891/com.example.asaf.sql W/System.err:at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:86)
08-10 19:26:58.274 20891-20891/com.example.asaf.sql W/System.err:at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
08-10 19:26:58.275 20891-20891/com.example.asaf.sql W/System.err:at java.net.InetAddress.getAllByName(InetAddress.java:752)
08-10 19:26:58.275 20891-20891/com.example.asaf.sql W/System.err:at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)
08-10 19:26:58.276 20891-20891/com.example.asaf.sql W/System.err:
public void test(View view) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
String url = "jdbc:mysql://192.168.1.17:3306/sys";
String user = "root";
String password = "password";
//local verion - find ip with ifconfig/what is my ip website
conn = DriverManager.getConnection(url, user, password);
// Do something with the Connection
} catch (SQLException ex) {
// handle any errors
Log.i("SQLException: " , ex.getMessage());
Log.i("SQLState: " , ex.getSQLState());
}
Class.forName("com.mysql.jdbc.Driver").newInstance();
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
connection = DriverManager.getConnection("jdbc:jtds:sqlserver://replacewithip:port//DBNAME", "User", "Password"); // Connect to database
if (connection == null) {
ConnectionResult = "Verify connection";
Toast.makeText(activity, ConnectionResult, Toast.LENGTH_LONG).show();
} else {
//do something with your connection, in this case I executed a query
ResultSet rs = null;
String query = "EXEC AppMovil.INITE_Articulos_Familia '" + codigo + "'";
Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
//size = cantidad de rows, metodo para obtener cantidad de rows
rs = stmt.executeQuery(query);
ResultSetMetaData rsmtd = rs.getMetaData();
while(rs.next()){
ListaConsultaFamilia item = new ListaConsultaFamilia(
rs.getString("Codigo"),
rs.getString("Descripcion"),
rs.getString("Precio")
);
listaConsultaFamilias.add(item);
}
listaConsultaFamilias.size();
ConnectionResult = " successful";
isSuccess = true;
connection.close();
}
}catch (Exception ex)
{
//catch error while reading
Looper.prepare();
isSuccess = false;
Toast.makeText(activity, "No existen consultas en el periodo seleccionado", Toast.LENGTH_LONG).show();
ConnectionResult = ex.getMessage();
}