【发布时间】:2019-09-05 11:37:30
【问题描述】:
我正在尝试测试与 msql 服务器的连接,它向我抛出了一个错误 System.err: java.lang.RuntimeException: No message resource found for message property prop.servertype。它一路经过,停在con = DriverManager.getConnection(conString, user, password);
private class AsyncTaskRunner extends AsyncTask<String, String, String>
{
ProgressDialog progressDialog;
boolean conSuccess = false;
String host, port, dbname, user, password, instance;
@Override
protected String doInBackground(String... params)
{
try
{
Log.e("SQLConfig", "Estou dentro do try");
String driver = "net.sourceforge.jtds.jdbc.Driver";
String conString;
if (TextUtils.isEmpty(port))
{
conString = "jdbc:jtds:sqlserver://" + host + "/" + instance + ";DatabaseName=" +dbname;
}
else
{
conString = "jdbc:jtds:sqlserver://" + host + ":" + port + "/" + instance + ";DatabaseName=" +dbname;
}
Connection con;
Class.forName(driver);
Log.e("SQLConfig", "Driver metida com sucesso");
//con = DriverManager.getConnection(testCon);
Log.i("Carlos",conString + " - User: " + user + " - Password: " + password);
con = DriverManager.getConnection(conString, user, password);
Log.e("SQLConfig", "Consegui fazer a ligação com sucesso");
con.close();
Log.e("SQLConfig", "Fechar ligação ");
conSuccess = true;
}
catch (Exception e)
{
e.printStackTrace();
Log.e("SQLConfig", "Não consegui fazer a ligação");
Log.e("SQLConfig", e.toString());
Log.e("SQLConfig", e.getMessage());
}
return null;
}
完整的错误堆栈:
W/System.err: java.lang.RuntimeException: No message resource found for message property prop.servertype
at net.sourceforge.jtds.jdbc.Messages.get(Messages.java:120)
at net.sourceforge.jtds.jdbc.Messages.get(Messages.java:67)
at net.sourceforge.jtds.jdbc.Driver.parseURL(Driver.java:374)
at net.sourceforge.jtds.jdbc.Driver.setupConnectProperties(Driver.java:239)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:219)
at com.example.viewer.dbconfig$AsyncTaskRunner.doInBackground(dbconfig.java:210)
at com.example.viewer.dbconfig$AsyncTaskRunner.doInBackground(dbconfig.java:181)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
E/SQLConfig: Não consegui fazer a ligação
java.lang.RuntimeException: No message resource found for message property prop.servertype
No message resource found for message property prop.servertype
当我点击“Testar ligação”按钮时,它会执行验证文本框是否为空的操作
_btnTestCon.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// Verificar se os dados forem todos preenchidos ou não
if (_editTextHost.getText().toString().trim().equals("") || _editTextInstance.getText().toString().trim().equals("") ||
_editTextDbName.getText().toString().trim().equals("") || _editTextUser.getText().toString().trim().equals("") || _editTextPass.getText().toString().trim().equals(""))
{
AlertDialog.Builder builder = new AlertDialog.Builder(dbconfig.this);
builder.setMessage(R.string.config_message_needMoreInfo)
.setCancelable(false)
.setPositiveButton(R.string.general_ok, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
dialogInterface.cancel();
}
});
builder.show();
}
// Testar a ligação
else
{
AsyncTaskRunner runner = new AsyncTaskRunner();
runner.execute();
}
}
});
}
我希望 DriverManager.getConnection 返回 log.e.
【问题讨论】:
-
你应该对后台调用使用改造..
-
为什么顺便把这个问题标记为mysql?您真的在运行 SQL Server 数据库实例吗?
标签: java android sql-server android-studio