- Android — PHP/MYSQL
- PHP — MYSQL
- Creating Database
- Creating Tables
- Inserting Values in tables
- PHP — GET and POST methods
- Android — Connecting MYSQL
- Connecting Via Get Method
- Connecting Via Post Method
- Example
- PHP — MYSQL part
- Android Part
- Android — PHP / MYSQL
- PHP — MYSQL
- Создание базы данных
- Создание таблиц
- Вставка значений в таблицы
- PHP — методы GET и POST
- Android — Подключение MYSQL
- Подключение через метод Get
- Подключение через почтовый метод
- пример
- PHP — часть MYSQL
- Android часть
- Подключение существующей БД SQLite в Android Studio
- Введение
- Создание базы данных
- Создание Android проекта
- Разметка активности
- Подготовка Java кода
- Добавление БД в проект
- Добавление класса для работы с БД
- Подключаемся к БД
- Работа с базой данных
- Обновление БД
- Работа с большой БД
- Отображение списка данных по запросу
- Добавление новых записей из Android приложения
Android — PHP/MYSQL
In this chapter , we are going to explain, how you can integrate PHP and MYSQL with your android application. This is very useful in case you have a webserver, and you want to access its data on your android application.
MYSQL is used as a database at the webserver and PHP is used to fetch data from the database. Our application will communicate with the PHP page with necessary parameters and PHP will contact MYSQL database and will fetch the result and return the results to us.
PHP — MYSQL
Creating Database
MYSQL database can be created easily using this simple script. The CREATE DATABASE statement creates the database.
Creating Tables
Once database is created, its time to create some tables in the database. The CREATE TABLE statement creates the database.
Inserting Values in tables
When the database and tables are created. Now its time to insert some data into the tables. The Insert Into statement creates the database.
PHP — GET and POST methods
PHP is also used to fetch the record from the mysql database once it is created. In order to fetch record some information must be passed to PHP page regarding what record to be fetched.
The first method to pass information is through GET method in which $_GET command is used. The variables are passed in the url and the record is fetched. Its syntax is given below −
The second method is to use POST method. The only change in the above script is to replace $_GET with $_POST. In Post method, the variables are not passed through URL.
Android — Connecting MYSQL
Connecting Via Get Method
There are two ways to connect to MYSQL via PHP page. The first one is called Get method. We will use HttpGet and HttpClient class to connect. Their syntax is given below −
After that you need to call execute method of HttpClient class and receive it in a HttpResponse object. After that you need to open streams to receive the data.
Connecting Via Post Method
In the Post method, the URLEncoder,URLConnection class will be used. The urlencoder will encode the information of the passing variables. It’s syntax is given below −
The last thing you need to do is to write this data to the link. After writing, you need to open stream to receive the responded data.
Example
The below example is a complete example of connecting your android application with MYSQL database via PHP page. It creates a basic application that allows you to login using GET and POST method.
PHP — MYSQL part
In this example a database with the name of temp has been created at 000webhost.com. In that database, a table has been created with the name of table1. This table has three fields. (Username, Password, Role). The table has only one record which is («admin»,»admin»,»administrator»).
The php page has been given below which takes parameters by post method.
Android Part
To experiment with this example , you need to run this on an actual device on which wifi internet is connected.
Steps | Description |
---|---|
1 | You will use Android studio IDE to create an Android application and name it as PHPMYSQL under a package com.example.phpmysql. |
2 | Modify src/MainActivity.java file to add Activity code. |
3 | Create src/SiginActivity.java file to add PHPMYSQL code. |
4 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. |
5 | Modify res/values/string.xml file and add necessary string components. |
6 | Modify AndroidManifest.xml to add necessary permissions. |
7 | Run the application and choose a running android device and install the application on it and verify the results. |
Here is the content of src/com.example.phpmysql/MainActivity.java.
Here is the content of src/com.example.phpmysql/SigninActivity.java.
Add the following content to build.gradle and rebuild the whole project.
Here is the content of activity_main.xml.
Here is the content of Strings.xml.
Here is the content of AndroidManifest.xml.
Let’s try to run your PHPMYSQL application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the tool bar. Before starting your application, Android studio will display following window to select an option where you want to run your Android application.
Select your mobile device as an option and then check your mobile device which will display following screen −
Now just type in your username and password. In my case i am typing admin as username and password. It is shown in the figure −
Now press the Get button and wait a few seconds and response will be downloaded and will be shown to you. In this case, the response is the ROLE that is fetched in case of admin as username and password.It is shown in the figure below −
Now again press the POST button and same result would appear. It is shown in the figure below −
Источник
Android — PHP / MYSQL
В этой главе мы собираемся объяснить, как вы можете интегрировать PHP и MYSQL с вашим Android-приложением. Это очень полезно, если у вас есть веб-сервер, и вы хотите получить доступ к его данным в приложении для Android.
MYSQL используется в качестве базы данных на веб-сервере, а PHP используется для извлечения данных из базы данных. Наше приложение свяжется со страницей PHP с необходимыми параметрами, а PHP свяжется с базой данных MYSQL, получит результат и вернет его нам.
PHP — MYSQL
Создание базы данных
База данных MYSQL может быть легко создана с помощью этого простого скрипта. Оператор CREATE DATABASE создает базу данных.
Создание таблиц
Как только база данных создана, пришло время создать несколько таблиц в базе данных. Оператор CREATE TABLE создает базу данных.
Вставка значений в таблицы
Когда база данных и таблицы созданы. Теперь пришло время вставить некоторые данные в таблицы. Оператор Insert Into создает базу данных.
PHP — методы GET и POST
PHP также используется для извлечения записи из базы данных mysql после ее создания. Чтобы получить запись, на страницу PHP необходимо передать некоторую информацию о том, какую запись нужно извлечь.
Первый способ передачи информации — это метод GET, в котором используется команда $ _GET . Переменные передаются в URL, и запись извлекается. Его синтаксис приведен ниже —
Второй метод заключается в использовании метода POST. Единственное изменение в приведенном выше сценарии — заменить $ _GET на $ _POST . В методе Post переменные не передаются через URL.
Android — Подключение MYSQL
Подключение через метод Get
Существует два способа подключения к MYSQL через страницу PHP. Первый называется методом Get . Мы будем использовать классы HttpGet и HttpClient для подключения. Их синтаксис приведен ниже —
После этого вам нужно вызвать метод execute класса HttpClient и получить его в объекте HttpResponse. После этого вам нужно открыть потоки для получения данных.
Подключение через почтовый метод
В методе Post будет использоваться URLEncoder , класс URLConnection . Urlencoder закодирует информацию о передаваемых переменных. Это синтаксис приведен ниже —
Последнее, что вам нужно сделать, это записать эти данные по ссылке. После записи вам необходимо открыть поток, чтобы получить ответные данные.
пример
Приведенный ниже пример является полным примером подключения вашего приложения для Android к базе данных MYSQL через страницу PHP. Он создает базовое приложение, которое позволяет войти в систему, используя метод GET и POST.
PHP — часть MYSQL
В этом примере база данных с именем temp была создана на 000webhost.com. В этой базе данных была создана таблица с именем table1. Эта таблица имеет три поля. (Имя пользователя, Пароль, Роль). В таблице есть только одна запись («admin», «admin», «administrator»).
Ниже приведена страница php, которая принимает параметры методом post.
Android часть
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве, к которому подключен интернет Wi-Fi.
меры | Описание |
---|---|
1 | Вы будете использовать IDE Android Studio для создания приложения Android и назовите его PHPMYSQL в пакете com.example.phpmysql. |
2 | Измените файл src / MainActivity.java, чтобы добавить код активности. |
3 | Создайте файл src / SiginActivity.java, чтобы добавить код PHPMYSQL. |
4 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. |
5 | Измените файл res / values / string.xml и добавьте необходимые строковые компоненты. |
6 | Измените AndroidManifest.xml, чтобы добавить необходимые разрешения. |
7 | Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты. |
Вот содержимое src / com.example.phpmysql / MainActivity.java .
Вот содержимое файла src / com.example.phpmysql / SigninActivity.java .
Добавьте следующий контент в build.gradle и пересоберите весь проект.
Вот содержание activity_main.xml .
Вот содержимое Strings.xml .
Вот содержимое AndroidManifest.xml .
Давайте попробуем запустить ваше приложение PHPMYSQL. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок из панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —
Теперь просто введите свое имя пользователя и пароль. В моем случае я набираю admin как имя пользователя и пароль. Это показано на рисунке —
Теперь нажмите кнопку Get и подождите несколько секунд, и ответ будет загружен и будет показан вам. В этом случае ответом является РОЛЬ, которая выбирается в случае администратора как имя пользователя и пароль. Это показано на рисунке ниже —
Теперь снова нажмите кнопку POST и появится тот же результат. Это показано на рисунке ниже —
Источник
Подключение существующей БД SQLite в Android Studio
Пример простого Android приложения, в котором подключаемся к заранее подготовленной базе данных SQLite.
Введение
Есть два подхода к работе с БД в Android приложениях.
В первом варианте БД создается в событии OnCreate главной активности. Данный вариант хорош для случая, когда база данных при установке приложения пуста либо заполнена небольшим количеством данных, а также в БД активно производятся записи в дальнейшем.
Но данный способ не очень хорош, если, например, пишите какой-нибудь справочник или другое приложение, когда БД при установке приложения уже должна быть заполнена большим количеством записей. На мой взгляд, в этом случае лучше БД подготовить заранее, а потом уже её подключить как отдельный файл в ресурсах приложения. В данной статье рассмотрен данный случай.
Создание базы данных
Для создания БД SQLite будем использовать, например, DB Browser for SQLite. Скачиваем и устанавливаем.
Буем создавать БД с одной таблицей такого вида.
_id | name | age |
---|---|---|
1 | Anton | 30 |
2 | Alina | 24 |
3 | Dima | 28 |
4 | Dasha | 23 |
Итак, создаем базу данных:
Где-нибудь сохраняем и называем, например, info.db :
Создаем таблицу, например, clients . И добавляем там поле:
Первым полем у нас будет номер записи _id . Поле будет также первичным ключом:
Аналогичным способом создаем поля age и name . И жмем OK :
В списке таблиц у нас появилась наша таблица clients :
Переходим в режим заполнения таблицы:
Выбираем там нашу таблицу и жмем Добавить запись :
Заполняем наши данные и сохраняем изменения в БД:
Файл подготовленной базы данных можно взять из архива: info.zip.
Создание Android проекта
Открываем Android Studio и создаем там новый проект с пустой активностью. Всё как обычно:
Разметка активности
Так как мы создаем простейшее приложение, но в XML файле активности разместим только кнопку и поле для вывода текста:
Подготовка Java кода
Нам потребуется обработать клик на кнопку button и что-то записать в textView .
Поэтому найдем данные компоненты и свяжем их в Java коде с XML:
Объявим переменные компонентов:
Найдем компоненты в XML разметке:
Пропишем обработчик клика кнопки:
Полный код Java файла (без строчки package , которая у вас должна быть своей):
Добавление БД в проект
Все приготовления сделаны. Теперь можем начать работать по теме статьи. Вначале добавим файл базы данных в проект.
Создадим папку assets в нашем проекте:
Скопируем файл нашей базы данных:
Добавление класса для работы с БД
Для открытия и подготовки БД в Android используется наследник класса SQLiteOpenHelper . Мы тоже создадим наследник этого класса DatabaseHelper , но он будет сильно модифицированный, так как мы будем работать с готовой базой данных, а не создавать ей с помощью SQL запросов:
Ниже приведен текст всего класса, который нужно просто скопировать (не трогая свой первой строчки package ):
Для работы в последующим с другими базами данных вам ничего не нужно будет менять в данном классе, кроме строчек:
Разберем что означают эти строчки.
DB_NAME — имя файла БД. Какой файл БД вы создали, такое название сюда и копируем.
DB_PATH — путь к БД. Каждое приложение в Android имеет свою область памяти, куда складываются файлы программы. Вдруг вы захотите вывернуть путь к файлу БД. Я бы ничего не трогал.
DB_VERSION — самая интересная переменная (причем в примерах в сети по работе с готовой БД её обходят стороной). Это номер версии БД. Ниже описан принцип работы данного класса. Например, вы пишите справочник рецептов под Android и рецепты храните в БД. В момент создания установки приложения программа должна скопировать БД на устройство. Потом через какое-то время вы решили обновить приложение, и БД у вас обновилась: структура БД поменялась, добавились новые рецепты. И вам нужно заменить старую БД на новую. Вот тут вы и пропишите в данной переменной новую версию БД. И при открытии приложения будет произведена проверки версии БД, и файл БД обновится. Вначале версия БД равна 1.
Итак, логика работы класса DatabaseHelper в подготовке базы данных:
Копируем файл БД, если этого файла нет (при установке приложения).
Если номер БД обновлен, то заменяем один файл базы данных на другой:
- После работы с базой данных из данного класса вытаскиваем экземпляр SQLiteDatabase , с которым будем работать в дальнейшем: осуществлять запросы и так далее.
Подключаемся к БД
Перейдем в класс нашей активности. В нем создадим экземпляр класса DatabaseHelper , попытаемся обновить БД, если это требуется, а потом вытащим экземпляр SQLiteDatabase .
Создадим переменные в классе:
В методе onCreate выполним подготовительные действия:
Работа с базой данных
Теперь мы можем наконец в клике кнопки соединиться с базой данной и вытащить нужные нам данные.
Давайте при клике кнопки в textView отобразятся все имена учеников в строчку. Будем работать с помощью Cursor .
В setOnClickListener припишем такой, например, код:
Полный код Java файла активности у меня получился такой (без первой строчки package ):
Вот так приложение выглядит при запуске:
При нажатии на кнопку получим список имен из БД:
Фактически это всё. У нас есть экземпляр SQLiteDatabase mDb , с которым мы можем работать так как нам нужно. Дальше будут рассмотрены некоторые особенности работы с БД.
Обновление БД
Откроем в программе DB Browser for SQLite файл БД, который располагается в папке assets нашей программы. И внесем какие-нибудь изменения и сохраним. Я для примера поменял имя в первой строке таблицы:
Итак, в исходниках программы у нас файл БД поменялся. Запустим приложение.
И увидим, что в приложении изменения не проявились. Почему? Потому что приложение не обновляет файл БД каждый раз при запуске приложения. А вдруг вы записываете в БД какие-то записи: тогда при обновлении файла все добавленные записи сотрутся:
Нам нужно в файле класса DatabaseHelper поменять номер версии БД в сторону увеличения:
Теперь при запуске приложения данные обновятся:
Обратите внимание на то, что обновление БД произойдет только один раз. И до следующего изменения переменной DB_VERSION файл БД обновляться файлом из папки assets не будет.
Внимание! При обновлении БД заменяется файл БД, а, значит, все внесенные изменения в БД на приложении в Android (через запросы INSERT , UPDATE ) будут удалены! Поэтому, если вам внесенные изменения нужны, то не вызывайте метод updateDataBase , а в методе onUpgrade внесите стандартным способом обновления в БД. При этом замена файла БД не будет происходить. Например, так можно вставить в таблицу новый столбец:
Работа с большой БД
Когда готовил статью, то я часто встречал замечания, что файлы больше 1 Мб или 8 Мб из папки assets не копируются. Хотя, я пробовал работать с файлом в 14 Мб. Запускал на разных устройствах и никаких проблем не заметил.
Если что, то вот этот файл info_large.zip
Но мало ли. Вдруг у вас проблемы будут замечены. В качестве решения можно размещать файл БД не папке assets , а в папке res/raw :
И файл БД копируем в эту папку:
В классе DatabaseHelper нам нужно поменять только одну строчку в методе copyDBFile .
Да, если вы перед этим использовали старый вариант на том устройстве, где тестируете приложение, то не забудьте поменять версию базы данных DB_VERSION , а то вы не увидите изменений в базе данных. Можно также удалить приложение вначале, а заново его установить.
Полный код класса (без строчки package ):
Отображение списка данных по запросу
В примерах выше мы выводили информацию просто в строку в textView . Для демонстрации работы класса это достаточно, но чаще всего требуется данные из БД выводить списком. Напоследок приведу пример, когда на экран список людей из таблицы БД выведется не в строчку, а списком.
Делается это через обычный адаптер. Особенно не буду перегружать объяснением.
В activity_main.xml добавляем ListView :
Создадим файл разметки adapter_item.xml , в котором опишем внешний вид одного элемента списка с таким содержанием:
Добавим, например, в метод onCreate главной активности код:
Запускаем приложение. Видим список наших клиентов:
Помните, что запросы к БД могут быть длительными, поэтому работу с БД лучше запихивать в другой поток, например, через ASyncTask .
Добавление новых записей из Android приложения
В предыдущей версии статьи многие спрашивали, а как добавлять новые записи в таблицу. Абсолютно также, как и в обычном подходе в работе с базой данных. Например, вот код добавления новой записи:
И полный код примера файла активности с данным кодом (без строки package ):
Но я крайне не рекомендую добавлять новые записи в таблицу из-под Android приложения, если база данных представлена в виде файла. Так как если вы потом обновите файл базы данных в другой версии вашего приложения, то пользователь потеряет все свои данные. Либо пропишите бэкап пользовательских записей, либо используете для них вторую базу данных, созданную стандартным способом.
- Android Studio icon.svg by Google Inc. / (2019-06-07)
- Sqlite-square-icon.svg by Mike Toews / (2019-01-26)
Статья обновлена 2020-01-20
Пример простого Android приложения, в котором подключаемся к заранее подготовленной базе данных SQLite.
Пример простого Android приложения, в котором подключаемся к заранее подготовленной базе данных SQLite.
Источник