Как подключить Android к серверу базы данных - PullRequest
9 голосов
/ 06 августа 2010

Есть ли образец?У меня есть приложение для Android, и мне нужно подключиться к серверу mysql на моей машине, как лучше?

Я не должен использовать jdbc, объяснение здесь

Никогда не используйте драйвер базы данных через подключение к Интернету, для любой базы данных, для любогоПлатформа, для любого клиента, в любом месте.Это удваивается для мобильных устройств.Драйверы базы данных предназначены для работы в локальной сети и не предназначены для нестабильных / прерывистых соединений или с высокой задержкой.

И должны идти на:

DefaultHttpClient httpclient = new DefaultHttpClient(); 

Но нет примера того, какоткрыть соединение или выполнить простую инструкцию sql.кто-нибудь может мне помочь?

Ответы [ 6 ]

9 голосов
/ 06 августа 2010

Вы должны либо использовать веб-службы, либо реализовать обработчик HTTP и передавать их в режиме RESTful.

2 голосов
/ 27 февраля 2014

Я фанат Сначала офлайн , что означает, что ваше приложение должно использоваться без подключения.

Для этого я бы рекомендовал использовать локальную базу данных SQLite и синхронизироваться судаленная база данных при подключении к сети.

Вы можете использовать такой инструмент, как SymmetricDS или Daffodil Replicator , для синхронизации локальных и удаленных баз данных по HTTP (S).

2 голосов
/ 20 марта 2013

Я попытался подключить DatabaseServer из приложения Android, изначально я столкнулся с некоторой проблемой, когда использовал jtds, пакет jar для поддержки драйверов базы данных, вместо использования jar-файла jtds используйте jar-файл mysql-Connector для поддержки драйверов баз данных. jar-файл соединителя mysql "mysql-connector-java-5.1.24-bin.jar". поместите этот jar-файл в папку проектов libs.

небольшой фрагмент кода:

`String url="jdbc:mysql://(IP-of databaseServer):3306/DBNAME";`
`String driver="org.gjt.mm.mysql.Driver";`
`String username="XYZ";//user must have read-write permission to Database
`String password= "*********";`//user password

`try{
    Class.forName(driver).newInstance();//loading driver
    Connection con = DriverManager.getConnection(url,username,password);
    /*once we get connection we can execute ths SQL command to Remote Database Server with the help mysql-connector driver over Internet*/

}`    
`catch(Exception e){
    e.printStackTrace();
}`

Надеюсь, это сработает.

Приветствие Раджеш П Ядав.

2 голосов
/ 06 августа 2010

Чтобы подключиться к серверу MySQL, вам нужен клиент MySQL.Android не поставляется с библиотеками MySQL.Возможно, вы сможете взять универсальную библиотеку Java MySQL и использовать ее для работы с Android, но это будет большим делом и потраченным временем.

Ссылка, на которую вы указали, уже говорила, что вы пытаетесьделать неправильно во-первых.Не подключайтесь к базе данных через Интернет!Вам понадобится что-то на вашем сервере, которое отвечает на запросы HTTP, ищет данные в базе данных и отправляет их обратно через HTTP.В ссылке уже упоминалось несколько вариантов.Вы могли бы даже написать что-то самостоятельно, хотя, скорее всего, проще использовать существующее решение, чем пытаться сделать свой собственный подход безопасным и защищенным от взлома.

0 голосов
/ 06 августа 2010

Если вам нужно обмениваться данными между несколькими телефонами, я бы рекомендовал выставить их как веб-сервис.Если данные должны быть доступны только на этом конкретном телефоне (и вы хотите сохранить связь), вы можете использовать sqlite.

0 голосов
/ 06 августа 2010

Вы не сможете напрямую подключиться к базе данных MySQL с помощью HttpClient, поскольку база данных MySQL не работает по этому протоколу.

Во второй части ответа на вопрос, который вы связали, рекомендуется использовать веб-службы и использовать их для связи с сервером базы данных. Это именно то, что вы могли бы сделать с HttpClient.

...