Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 31 май 2013, 14:58

оно не то, чтоб лишнее, это просто аналогичная версия от микрософта, но она может и не работать
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Vovich
Сообщения: 30
Зарегистрирован: 30 май 2013, 15:03

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Vovich » 31 май 2013, 15:26

В инете наткнулся, что jdbc работает медленнее. А при одновременном подключении к локальной базе и серверу конфликтов не будет?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 31 май 2013, 15:43

Vovich писал(а):В инете наткнулся, что jdbc работает медленнее. А при одновременном подключении к локальной базе и серверу конфликтов не будет?
ты все какие-то теории выдвигаешь, сам и проверь ))
а насчет медленности - у меня с сервера 100 тыс записей скачивается за несколько секунд, все остальное время запись в локалку фурычит.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

assan
Сообщения: 48
Зарегистрирован: 24 мар 2013, 22:31

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение assan » 05 июл 2013, 19:38

2Foenix
синтаксис работы с хранимыми процедурами для этого драйвера можешь показать?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 05 июл 2013, 23:04

Привет! А что там показывать? посылай им точно так же "exec" и дело с концом.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
mozilalvfg
Сообщения: 85
Зарегистрирован: 10 авг 2013, 18:46

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение mozilalvfg » 24 авг 2013, 21:31

Пример работающего кода для подключения к внешней базе MySql

Должны быть выполнены условия:
1. на стороне сервера создан пользователь с привелегиями подключения с любого IP
для незнающих http://howto.memcrab.com/2012/01/mysql.html

2. в AndroidManifest.xml добавить
<uses-permission android:name="android.permission.INTERNET"/>
для незнающих секция <uses-sdk должа виглядеть так

Код: Выделить всё

 <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET"/>
3. Подключений драйвер mysql-connector-java-5.1.26-bin.jar
Теперь сам код в главном MyActivity.java

Код: Выделить всё

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.mysql.jdbc.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicReference;

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//Создаём обязательно отдельний поток 
        AtomicReference<Thread> myThready = new AtomicReference<Thread>(new Thread(new Runnable() { //подготовливаем отдельний поток
            public void run() //Этот метод будет выполняться в побочном потоке
            {
                try {
                    testsql();
                    Log.d("myLogs", "все прошло хорошо");
                } catch (SQLException e) {
                    Log.d("myLogs", "Мать его неполучилось!!!!!!!!!");
                    e.printStackTrace();
                }
            }
        }));
        myThready.get().start();    //Запуск отдельного потока

        Log.d("myLogs", "Отдельний поток завершён...");


    }
    protected static void testsql() throws SQLException {

        Connection con = null;
        Properties properties = new Properties();
        properties.setProperty("user", "sss");  //sss - пользователь MySql созданий ранее
        properties.setProperty("password", "1024"); // 1024 - пароль пользователя
        properties.setProperty("useUnicode", "true");
        properties.setProperty("characterEncoding", "UTF-8");
        properties.setProperty("autoReconnect", "true");

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Log.d("myLogs", "драйвер загрузили ");
        } catch (ClassNotFoundException e) {
            Log.d("myLogs", "драйвер незагрузили ");
            e.printStackTrace();
        }
        Log.d("myLogs", "подключаемся ");
// подключение к удалёному серверу mysql
        con = (Connection) DriverManager.getConnection("jdbc:mysql://16.31.167.34:3306/db", properties);  //db - имя вашей базы
        Log.d("myLogs", "подключились! ");

    }
}
P.S. подключаться обязательно надо в другом потоке иначе работать не будет!!!
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 24 авг 2013, 22:40

и не только подключение, но и вся работа с удаленной бд должна быть в потоке, отличном от UI
и насчет 1 пункта могу поспорить. Нужно, чтобы на стороне сервера обязательно фильтровался траффик по IP, а клиенты должны иметь постоянный IP
Это хотя бы.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
mozilalvfg
Сообщения: 85
Зарегистрирован: 10 авг 2013, 18:46

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение mozilalvfg » 26 авг 2013, 17:58

Foenix писал(а):и не только подключение, но и вся работа с удаленной бд должна быть в потоке, отличном от UI
и насчет 1 пункта могу поспорить. Нужно, чтобы на стороне сервера обязательно фильтровался траффик по IP, а клиенты должны иметь постоянный IP
Это хотя бы.
А как можно организовать постоянный IP клиентам, если топология программки такая
Сервер MySQL 5.5 на Ubuntu 12.04 к нему конектяться с PC, Android, iOS . Естесвено в таком варианте не может быть статического IP. Я организовал автоматическое создание юзера MySQL на основе DeviceID а в случаи PC мак адрес сетевой платы, с правами только на базу с которой работают клиенты.
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 26 авг 2013, 18:19

постоянный айпи организовывается через провайдера интернет за дополнительную плату
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
mozilalvfg
Сообщения: 85
Зарегистрирован: 10 авг 2013, 18:46

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение mozilalvfg » 01 сен 2013, 15:35

Foenix писал(а):постоянный айпи организовывается через провайдера интернет за дополнительную плату
Думаю такой функции на 3G интернете нет.
Из средств, расширяющих сознание, я признаю только книги и немного пива!
____________________________________________________________________
IntelliJ IDEA 12. Win 7 x64 sp1
KSWEB: сервер + PHP + MySQL FREE
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 01 сен 2013, 19:06

есть.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Isaev » 03 сен 2013, 09:43

Foenix писал(а):не только подключение, но и вся работа с удаленной бд должна быть в потоке, отличном от UI
т.е. нельзя вызывать данные по мере их надобности? например кликнул кнопку - запрос следующего меню?
неужели при старте придётся всю базу в память считывать? это же изврат

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 03 сен 2013, 18:40

изврат! не в память , а в локальную бд.
Вот поэтому я считываю данные в локальную бд и оттуда "по клику на кнопку" беру данные. Таким образом имею 1)синхронизацию с удаленной бд и 2)работу с локальной бд

Вообще это от задачи зависит. Если у тебя так не получается по логике, то и про это соединение лучше не реализовывать, делай через Http запросы, парси, распрарсивай и так далее)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Isaev » 04 сен 2013, 10:45

Foenix писал(а):Вот поэтому я считываю данные в локальную бд и оттуда "по клику на кнопку" беру данные.
а если у меня bd изначально локальная?

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Isaev » 04 сен 2013, 11:08

Foenix писал(а):и у тебя странная строка подключения, у меня такая:

Код: Выделить всё

 "jdbc:jtds:sqlserver://" + sServerName + "/" + sDBName;
вот эта строка исходя из чего формируется?
что за sqlserver, откуда берется sServerName?
у меня установлен xampp с mysql
my.ini

Код: Выделить всё

[client] 
port            = 3306 
socket          = "C:/xampp/mysql/mysql.sock"

[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
plugin_dir = "C:/xampp/mysql/lib/plugin/" 

skip-federated

server-id	= 1

innodb_data_home_dir = "C:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp/mysql/data"

innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
значит будет видимо
"jdbc:jtds:mysql://" + sServerName + "/" + sDBName; ?
а sServerName откуда брать?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 04 сен 2013, 11:44

Посмотри тема есть подключение к mysql, там строку подключения приводили полностью
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Isaev » 04 сен 2013, 12:10

Проблема в итоге останется, даже если подключусь, как я понимаю
база то локальная! не буду же я потом на устройстве mysql server эмулировать
или я недопонимаю логику работы

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 04 сен 2013, 12:18

Извини, я с mysql не работала, что представляет там из себя база данных - такой же файл, как и sqlite? Если файл - я понимаю. А если нет, то не понимаю как она может оказаться локальной. Давай разберемся.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Isaev
Сообщения: 145
Зарегистрирован: 03 сен 2013, 09:39
Откуда: Германия
Контактная информация:

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Isaev » 04 сен 2013, 12:37

Foenix писал(а):Извини, я с mysql не работала, что представляет там из себя база данных - такой же файл, как и sqlite? Если файл - я понимаю. А если нет, то не понимаю как она может оказаться локальной. Давай разберемся.
да, конечно, обычный файл

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Подключение к БД через net.sourceforge.jtds.jdbc.Driver

Сообщение Foenix » 04 сен 2013, 12:51

обычно, если сервер бд находится на том же компьютере, что и клиент, он использует localhost в строке подключения вместо адреса. Пробовал? типа того "jdbc:mysql://localhost:3306/contacts"
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить