Здравствуйте, как начинающий полезно знать ответ, чтобы двигаться дальше.
Возможно ли отправлять сообщение в таблицу mySQL на удаленном сервере, минуя локальную myDb.(Если да, то JSON нужен или нет?) И вообще где можно прочитать о самом просто коннекте, и реализации его в Android Studio.
Залью код, на всякий случай,с локальной БД. там 3 Runnable, но это всё учебное), так что не удивляйтесь. В случае удачного исхода, это будет полезно таким новичкам как я. Буду тут поэтапно обновлять код, и максимально комментировать шаги.
Ниже исходный код с операциями с локальной БД.
Main Activity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button btn_add, btn_clear,btn_prochitat;
EditText txt_pole;
DBHelper dbHelper;
final String LOG_TAG = "myLogs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_add= (Button) findViewById(R.id.button_zapis);
btn_add.setOnClickListener(this);
btn_clear= (Button) findViewById(R.id.button_ochistit);
btn_clear.setOnClickListener(this);
btn_prochitat= (Button) findViewById(R.id.button_prochitat);
btn_prochitat.setOnClickListener(this);
txt_pole= (EditText) findViewById(R.id.editText);
dbHelper = new DBHelper(this);// создаем переменную экземпляра класса
}
@Override
public void onClick(View view) {
Thread_ADD btn_add=new Thread_ADD();
Thread_DEL btn_clear=new Thread_DEL();
Thread_READ btn_prochitat=new Thread_READ();
switch (view.getId()){
case R.id.button_zapis:
btn_add.run();
break;
case R.id.button_ochistit:
btn_clear.run();
break;
case R.id.button_prochitat:
btn_prochitat.run();
break;
}// закрываем подключение к БД
dbHelper.close();
}
private class Thread_ADD implements Runnable{
// создаем объект для данных
ContentValues cv = new ContentValues();
// получаем данные из полей ввода
String name = txt_pole.getText().toString();
// подключаемся к БД
SQLiteDatabase db = dbHelper.getWritableDatabase();
public void run(){
try{
//Закидываем в логи возможные ошибки
// подготовим данные для вставки в виде пар: наименование столбца - значение
cv.put("name", name);
// вставляем запись и получаем ее ID
long rowID = db.insert("mytable", null, cv);
Log.d(LOG_TAG, "Всё ок, информация вставлена s potoka ADD, ID = " + rowID);
txt_pole.setText("");
}catch (Exception e){
Log.d(LOG_TAG, "Ошибка, информация не вставлена с помощью потока ");
}
}
}
private class Thread_DEL implements Runnable{
SQLiteDatabase db = dbHelper.getWritableDatabase();
public void run(){
try{
int clearCount = db.delete("mytable", null, null);
Log.d(LOG_TAG, "Всё ок, информация удалена с помощью потока DEL , количество удаленных строк = " + clearCount);
}catch (Exception e){
Log.d(LOG_TAG, "Ошибка, инфа не удалена с помощью потока DEL ");
}
}
}
private class Thread_READ implements Runnable{
SQLiteDatabase db = dbHelper.getWritableDatabase();
public void run(){
try{// делаем запрос всех данных из таблицы mytable, получаем Cursor
Cursor c = db.query("mytable", null, null, null, null, null, null);
// ставим позицию курсора на первую строку выборки
// если в выборке нет строк, вернется false
if (c.moveToFirst()) {
// определяем номера столбцов по имени в выборке
int idColIndex = c.getColumnIndex("id");
int nameColIndex = c.getColumnIndex("name");
do {
// получаем значения по номерам столбцов и пишем все в лог
Log.d(LOG_TAG,
"ID = " + c.getInt(idColIndex) +
", name = " + c.getString(nameColIndex));
// переход на следующую строку
// а если следующей нет (текущая - последняя), то false - выходим из цикла
} while (c.moveToNext());
} else
Log.d(LOG_TAG, "0 rows");
c.close();
}catch (Exception e){
Log.d(LOG_TAG, "Ошибка, инфа не прочитана с помощью потока READ ");
}
}
}
DBHelperActivity
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// конструктор суперкласса
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// создаем таблицу с полями
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text" +");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
В инете уже продвинутые обращения с удаленными БД с синхронизациями и , я же хочу вникнуть в элементарные операции максимально поэтапно. Спасибо.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости