Урок 34. Хранение данных. SQLite
Re: Урок 34. Хранение данных. SQLite
Пора создавать статью стандартных архитектур приложений, а то страшно становиться
Re: Урок 34. Хранение данных. SQLite
А дайте, пожалуйста, ссылку, где описано это более подробно? Что значит извращенство?rezak90 писал(а):а можно не скромный вопрос? Архитектуру приложения вы придумывали или вам просто дали задание и делай как хочешь? Просто ODBC в андроиде это извращенство. Обращаться на прямую к sqlserver'y в андроиде, та и вообще в мобильных платформах не принято. Для этого дела на сервере создаётся апи, и все функции и обращения к бд на себя берёт сервер дабы не использовать ресурсы мобильного телефона. Если в самой java odbc/jdbc это ещё круто, то в андроиде это минное поле)))
Ладно, я отклонился от темы. На сколько я понял то это вам нужно будет не стандартными способами (не так как с SQLite), так как там свои java классы, а андроид не имеет своих классов для работы с jdbc/odbc.
Все действия будет делать сервер, конено же, мне нужно лишь получить данные (курсор) и отправить данные (отправляемых будет не так много). Остальная математика будет делаться на локальной базе, храниться в локальных таблицах. На сервер будет сбрасываться конечная информация, так сказать (готовый документ).
Я под анродит никогда не писала, тяжело перестроиться, времени не дали, надо хоть как-то сделать. Потом можно будет переделать уже "по правильному" (сама так люблю, но что делать..)
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
легче всего сделать на серваке апи и обращаться к нему. Но мы не ищем лёгких путей =)
Погуглил немножко и понял что odbc драйвера под андроид нету (может я и ошибаюсь). Народ рекомендует подключаться к sqlserver'y через jtds драйвер http://stackoverflow.com/questions/7631 ... in-android
По сути если вы уже работали с Java и JDBC, то должно быть легко, так как в андроиде так же само происходит подключение.
Погуглил немножко и понял что odbc драйвера под андроид нету (может я и ошибаюсь). Народ рекомендует подключаться к sqlserver'y через jtds драйвер http://stackoverflow.com/questions/7631 ... in-android
По сути если вы уже работали с Java и JDBC, то должно быть легко, так как в андроиде так же само происходит подключение.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
ну так я его (JDBC) и назвала сразу (см.реплика выше), я уже это поискала.rezak90 писал(а):легче всего сделать на серваке апи и обращаться к нему. Но мы не ищем лёгких путей =)
Погуглил немножко и понял что odbc драйвера под андроид нету (может я и ошибаюсь). Народ рекомендует подключаться к sqlserver'y через jtds драйвер http://stackoverflow.com/questions/7631 ... in-android
По сути если вы уже работали с Java и JDBC, то должно быть легко, так как в андроиде так же само происходит подключение.
Я не работала с джавой, а из другого языка по odbc во всю с сиквелом работали, нормально. Думаю, что тут так же..
Вы меня не пугайте сильно , а то мне все это уже неделю снится , во сне какие-то планы строю, думаю как сделать)) а оно все не получается, простые вещи из рук валятся.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Вы пишите, вам воздастся.neoksi писал(а):Пора создавать статью стандартных архитектур приложений, а то страшно становиться
Лично я безмерно благодарна, что кто-то находится на идиотские вопросы отвечать, надеюсь, вы это чувствуете)))
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
ну в общем пробуйте сначала драйвер подключить, если ошибок не будет то пробуйте коннектиться к серверу, а там уже будет видно. Как это делается примеров куча.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
Я соединилась, ура! (целый выходной убила), но пока не так, как мне нужно.rezak90 писал(а):ну в общем пробуйте сначала драйвер подключить, если ошибок не будет то пробуйте коннектиться к серверу, а там уже будет видно. Как это делается примеров куча.
Кто-нибудь подскажет, куда дальше копать?
Я пыталась соединиться, но у меня ничего ен получалось, выдается ошибка на строках
Код: Выделить всё
Connection conn = DriverManager.getConnection(
"jdbc:jtds:sqlserver://localhost:1433/baza","user", "pswrd");
Я взяла и создала новый проект java (без приблуд, для винды) в эклипсе, и код мой прошел, соединение с базой есть и данные выбираются!!
Но что делать с андроидом? почему из эмулятора программа закрывается с ошибкой - не знаю
Я проверила манифест, там у меня вот что
Код: Выделить всё
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Последний раз редактировалось Foenix 22 окт 2012, 21:46, всего редактировалось 1 раз.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 34. Хранение данных. SQLite
А где сама база находится? И почему перед словом baza стоит запятая?
И на сколько я знаю localhost в андроиде не применим, в интернете советуют использовать "10.0.2.2".
И на сколько я знаю localhost в андроиде не применим, в интернете советуют использовать "10.0.2.2".
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 34. Хранение данных. SQLite
На localhost точно не подключитесь. Ну а что касается ошибки, так вы бы сказали что за ошибка, то что подчёркивает ту строку ни о чём не говорит, а телепаты в отпуске =)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
да, запятой там нету, конечно же. И про телепатов - это мне правильно. Вот текст ошибки.KamiSempai писал(а):А где сама база находится? И почему перед словом baza стоит запятая?
И на сколько я знаю localhost в андроиде не применим, в интернете советуют использовать "10.0.2.2".
Я решила проблему, пока тут никого не было..10-21 17:50:50.457: E/AndroidRuntime(4353): FATAL EXCEPTION: main
10-21 17:50:50.457: E/AndroidRuntime(4353): android.os.NetworkOnMainThreadException
10-21 17:50:50.457: E/AndroidRuntime(4353): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
10-21 17:50:50.457: E/AndroidRuntime(4353): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:74)
10-21 17:50:50.457: E/AndroidRuntime(4353): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
10-21 17:50:50.457: E/AndroidRuntime(4353): at libcore.io.IoBridge.connect(IoBridge.java:112)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.Socket.startupSocket(Socket.java:566)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.Socket.tryAllAddresses(Socket.java:127)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.Socket.<init>(Socket.java:177)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.net.Socket.<init>(Socket.java:149)
10-21 17:50:50.457: E/AndroidRuntime(4353): at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:263)
10-21 17:50:50.457: E/AndroidRuntime(4353): at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:318)
10-21 17:50:50.457: E/AndroidRuntime(4353): at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.sql.DriverManager.getConnection(DriverManager.java:175)
10-21 17:50:50.457: E/AndroidRuntime(4353): at java.sql.DriverManager.getConnection(DriverManager.java:209)
...
Дело в том, что простая подстановка 10.0.2.2 тоже не подходила. Я почитала в сети, что соединения так же не может быть из-за того, что с третьей версии ввели полиси (там в тексте ошибки видно слово AndroidBlockGuardPolicy), что нельзя соединяться с удаленной бд в главном потоке. Сделала еще один поток - запустила это дело в нем, но тоже меняла и адреса и слова - ничего не получалось.
Затем, переделала запуск под андроид 2.1 - попыталась в нем - там ошибка чуточку по-другому выдается.
Затем я еще очень хорошо подумала-подумала, что локалхосты это все-таки не очень, и заменила в эмуляторе hosts - подставила там 10.0.2.2 localhost.10-21 19:20:49.138: W/System.err(414): java.sql.SQLException: Network error IOException: localhost/127.0.0.1:1433 - Connection refused
10-21 19:20:49.147: W/System.err(414): at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:417)
10-21 19:20:49.147: W/System.err(414): at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
10-21 19:20:49.147: W/System.err(414): at java.sql.DriverManager.getConnection(DriverManager.java:191)
10-21 19:20:49.147: W/System.err(414): at java.sql.DriverManager.getConnection(DriverManager.java:226)
10-21 19:20:49.147: W/System.err(414):
И на этом все заработало - и с потоками и без!
Теперь попробую запустить на 4.0
В общем, я решила сегодня спать не ложиться пока не соединюсь, но вижу уже, что спать все-таки лягу и буду спать очень хорошо )))
Последний раз редактировалось Foenix 22 окт 2012, 21:46, всего редактировалось 1 раз.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 34. Хранение данных. SQLite
На эмуляторе работает, а на реальном устройстве?Olivka писал(а):И на этом все заработало - и с потоками и без!
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 34. Хранение данных. SQLite
эх, да в том-то и дело, что реального устройства у меня нету..KamiSempai писал(а):На эмуляторе работает, а на реальном устройстве?Olivka писал(а):И на этом все заработало - и с потоками и без!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Olivka
Любая сетевая активность должна быть в отдельном потоке.
P.S. Если вы используете Tomcat, то почему бы не использовать на самом сервере jsp, и с приложение связываться со страницей jsp которая уже делает с бд что захотите. Это будет в пару строк и делается за пару минут, чем тот велосипед который вы пытаетесь изобрести. Извините если не в тему -(.
Любая сетевая активность должна быть в отдельном потоке.
P.S. Если вы используете Tomcat, то почему бы не использовать на самом сервере jsp, и с приложение связываться со страницей jsp которая уже делает с бд что захотите. Это будет в пару строк и делается за пару минут, чем тот велосипед который вы пытаетесь изобрести. Извините если не в тему -(.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
Я уже второй раз прошу -дайте ссылку, где об этом почитать, а вы все не даете.. а то в паре строк не понятно. Я так не могу оценить что лучше и что хуже. мне с удаленной базой ничего делать не нужно -только данные взять и положить. Остальное будет делаться и так на сервере, или вы что-то другое имеете ввиду?rezak90 писал(а):Olivka
Любая сетевая активность должна быть в отдельном потоке.
P.S. Если вы используете Tomcat, то почему бы не использовать на самом сервере jsp, и с приложение связываться со страницей jsp которая уже делает с бд что захотите. Это будет в пару строк и делается за пару минут, чем тот велосипед который вы пытаетесь изобрести. Извините если не в тему -(.
Посмотрела в вики что такое jsp. ЭТо ж целая вебиндустрия, мне туда лезть сейчас не хочется и это для меня не две строчки кода. В любом случае, если использоваться active pages, то тогда они у нас будут точно не на джаве, а на другом "загадночном и интересном", но я не хочу к нему возвращаться.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Ну как хотите, и как раз там всё на джаве. Ссылочку просили, но сомневаюсь что поможет: http://habrahabr.ru/post/108973/
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
это шутка?rezak90 писал(а):Ну как хотите, и как раз там всё на джаве. Ссылочку просили, но сомневаюсь что поможет: http://habrahabr.ru/post/108973/
не знаю, как может один человек в этом разобраться и за какое время - у меня оно ограничено, это ж простая программа, а не целый конгломерат по приему оплаты. Я все делаю на Андроиде его средствами, исключительно с сервера данные буду брать и туда сохранять "резервно", скажем так.
Народ командами над таким работает, а я одна тут, помочь не кому, вся ответственность на мне, поэтому выбираю то, с чем возможно смогу справиться..
Я и так тут смотрю на ошибки в Эклипсе как баран на новые ворота - одна ошибка - полэкрана красных строк..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Вы близко воспринимаете к сердцу это всё. У меня вчера ушло на написания такого дела 30 минут, и мне тоже нужно было всеголишь два запроса делать к бд, зато всё красиво и качественно. Ну да ладно, закрыли этот вопрос. Это я просто показываю вам что это дело можно решить на много проще.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
Olivka
Подключаться напрямую к удаленной базе плохо с точки зрения безопасности и на хороших серверах это запрещено администраторами.
rezak90 говорит дело, реализуйте простой web-api например на php, который уже будет реализовывать на удаленном сервере работу с сервером БД, а вы ему из своей программы отправляйте простые http запросы, так вы избежите много проблем.
П.С. У меня лично таким образом все сделано и работает просто супер, ежеминутно обрабатывается более 600 запросов синхронизаций.
Подключаться напрямую к удаленной базе плохо с точки зрения безопасности и на хороших серверах это запрещено администраторами.
rezak90 говорит дело, реализуйте простой web-api например на php, который уже будет реализовывать на удаленном сервере работу с сервером БД, а вы ему из своей программы отправляйте простые http запросы, так вы избежите много проблем.
П.С. У меня лично таким образом все сделано и работает просто супер, ежеминутно обрабатывается более 600 запросов синхронизаций.
В реальности над таким работают редко целыми командами, и бывалые советуют как проще, отговаривая тебя от использования прямого подключения к БДOlivka писал(а):...
Народ командами над таким работает, а я одна тут, помочь не кому, вся ответственность на мне, поэтому выбираю то, с чем возможно смогу справиться..
Я и так тут смотрю на ошибки в Эклипсе как баран на новые ворота - одна ошибка - полэкрана красных строк..
Re: Урок 34. Хранение данных. SQLite
Я не близко воспринимаю, я в данной ссылке ничего не поняла. Чтобы во всем разобраться нужна более серьезная литература, чем статья, где для меня ни одного знакомого слова. Поэтому ваше предложение, может оно и правильное, но сорри - без доказательств.
Напрямую к бд подключались и будут подключаться, не вижу причин не подключаться по вайфай, имхо тут без разницы - что из сети, что из интернета, что из вайфая - тут админы должны сказать за или против. Ни они, ни начальство не против. Более того - начальство даже настаивает на том, чтобы подключение было. А правильно или нет - я напишу, постараюсь как можно быстрее, и все - пусть что хотят то и делают. Если аргумент один - безопасность, или второй - некрасиво, то для меня это не аргумент..
Кроме того, это вебапи, насколькоя поинмаю - можно организовать на любом языке, или я не права? я об этом и писала. Они пишут там на другом языке (не веб), поэтому и мне придется, но я не хочу.
кто платит тот и музыку закаызывает.
Напрямую к бд подключались и будут подключаться, не вижу причин не подключаться по вайфай, имхо тут без разницы - что из сети, что из интернета, что из вайфая - тут админы должны сказать за или против. Ни они, ни начальство не против. Более того - начальство даже настаивает на том, чтобы подключение было. А правильно или нет - я напишу, постараюсь как можно быстрее, и все - пусть что хотят то и делают. Если аргумент один - безопасность, или второй - некрасиво, то для меня это не аргумент..
Кроме того, это вебапи, насколькоя поинмаю - можно организовать на любом языке, или я не права? я об этом и писала. Они пишут там на другом языке (не веб), поэтому и мне придется, но я не хочу.
кто платит тот и музыку закаызывает.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Первый раз вижу что бы начальство диктовало разработчику как делать. Разработчик делает то что требует заказчик, а то как это сделать он решает сам лично, ведь ему делать а не началству. Начальство лишь должно удостоверится что вы не лепите велосипед.
Опять от темы отклонились. Ну так что получилось уже что то или нет?
Опять от темы отклонились. Ну так что получилось уже что то или нет?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена