Как сделать программу для работы с базой данных

На днях мне пришлось подключится к внешней БД MySQL в Android приложении, которое бы использовало ресурсы готового сервиса, так вот в данном уроке я покажу как я это сделал.

В данном уроке мы с вами сделаем простое Android-приложения, который будет вызывать PHP скрипт для выполнения основных CRUD (Create, Read, Update, Delete) операций.

Android приложение будет вызывать PHP скрипт, который будет подключается к базе данных MySQL и выполнить какие то операции.

Что вам потребуется?

1) WEB-сервер для PHP. Будем использовать сборку DenWer.

2) MySQL база данных.

3) Android Emulator.

Шаг 1. Установка WEB-сервера.

Так как мы будем работать со сборкой Denwer, то для начала скачиваем её тут http://www.denwer.ru/

После того как вы его установили и проверили, что он работает, переходим к следующему шагу.

Шаг 2. Создание БД

Так как мы подняли WebServer Denwer в нем уже вшита MySQL база данных, давайте создадим базу и таблицу (products) в ней.

Программа с базой данных и интерфейсом PYQT5 на Python

Создание таблиц в БД:

CREATE TABLE products( pid int(11) primary key auto_increment, name varchar(100) not null, price decimal(10,2) not null, description text, created_at timestamp default now(), updated_at timestamp );

В конце видео создания БД я не зря показал локальный IP, так как я использую виртуальную ОС для удобства. В вашем случае вы будите обращаться к localhost или же 127.0.0.1 .

Шаг 3. Подключение к MySQL базе с помощью PHP

Давайте создадим PHP класс, который будет отвечать за подключение к БД. Основная цель этого класса – открытие и закрытие соединения с БД.

Но, для того что бы подключатся к БД нам нужно где то хранить требуемые параметры для подключения к БД для этого создадим [C:WebServershomedevserver.comwwwdb_config.php] со следующим содержимым:

А теперь создадим в той же директории файл [C:WebServershomedevserver.comwwwdb_connect.php] со следующим содержимым:

connect(); > function __destruct() < $this->close(); > function connect() < require ‘db_config.php’; $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error()); $db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error()); return $con; >function close() < mysql_close(); >> ?>

Шаг 4. Базовые CRUD операции в PHP

В этом уроке я покрываю основные CRUD (Create, Read, Update, Delete) операций для MySQL с помощью PHP.

Запись строки в БД

Создадим в нашем PHP проекте новый файл create_product.php который будет обеспечивать возможность записи продукта в БД.

else < $response[«success»] = 0; $response[«message»] = «Oops! An error occurred.»; echo json_encode($response); >> else < $response[«success»] = 0; $response[«message»] = «Required field(s) is missing»; echo json_encode($response); >?>

Для приведенного выше кода JSON ответ будет примерно таким:

Учим Базы Данных за 1 час! #От Профессионала

Когда POST параметр(ы) отсутствует:

Когда продукт успешно добавлен:

Когда ошибка при добавлении данных в БД:

Чтение строки с БД

0) < $result = mysql_fetch_array($result); $product = array(); $product[«pid»] = $result[«pid»]; $product[«name»] = $result[«name»]; $product[«price»] = $result[«price»]; $product[«description»] = $result[«description»]; $product[«created_at»] = $result[«created_at»]; $product[«updated_at»] = $result[«updated_at»]; $response[«success»] = 1; $response[«product»] = array(); array_push($response[«product»], $product); echo json_encode($response); >else < $response[«success»] = 0; $response[«message»] = «No product found»; echo json_encode($response); >> else < $response[«success»] = 0; $response[«message»] = «No product found»; echo json_encode($response); >> else < $response[«success»] = 0; $response[«message»] = «Required field(s) is missing»; echo json_encode($response); >?>

Читайте также:
Партнерская программа подключение водителей

Ответ JSON для вышеупомянутого файла будет следующим.

При успешном получении продукта:

Когда продукт не найден:

Получение всех продуктов с БД

Для того чтобы вывести весь список продуктов на устройство нам нужно получить все продукты с БД.

Создадим get_all_products.php со следующим содержимым:

0) < $response[«products»] = array(); while ($row = mysql_fetch_array($result)) < $product = array(); $product[«pid»] = $row[«pid»]; $product[«name»] = $row[«name»]; $product[«price»] = $row[«price»]; $product[«created_at»] = $row[«created_at»]; $product[«updated_at»] = $row[«updated_at»]; array_push($response[«products»], $product); >$response[«success»] = 1; echo json_encode($response); > else < $response[«success»] = 0; $response[«message»] = «No products found»; echo json_encode($response); >?>

JSON ответ выше приведенного кода будет таким:

< «products»: [ < «pid»: «1», «name»: «iPhone 5», «price»: «500.00», «created_at»: «2013-04-27 02:04:02», «updated_at»: «0000-00-00 00:00:00» >, < «pid»: «2», «name»: «Macbook Pro», «price»: «600.00», «created_at»: «2012-04-29 02:04:51», «updated_at»: «0000-00-00 00:00:00» >, < «pid»: «3», «name»: «Macbook Air», «price»: «800.00», «created_at»: «2013-04-27 02:05:57», «updated_at»: «0000-00-00 00:00:00» >, < «pid»: «4», «name»: «OS X Lion», «price»: «100.00», «created_at»: «2013-04-27 02:07:14», «updated_at»: «0000-00-00 00:00:00» >], «success»: 1 >

Когда продукт не найден:

Обновление продукта в БД

Создайте файл с именем update_product.php со следующим содержимым:

else < >> else < $response[«success»] = 0; $response[«message»] = «Required field(s) is missing»; echo json_encode($response); >?>

Ответ JSON выше кода, когда продукт успешно обновлены будет следующим:

Удаление продукта с БД

Последняя операция удаления из базы данных. Создайте новый файл назовите delete_product.php и вставьте следующий код:

0) < $response[«success»] = 1; $response[«message»] = «Product successfully deleted»; echo json_encode($response); >else < $response[«success»] = 0; $response[«message»] = «No product found»; echo json_encode($response); >> else < $response[«success»] = 0; $response[«message»] = «Required field(s) is missing»; echo json_encode($response); >?>

Когда продукт удачно будет удален то JSON ответ будет таким:

Когда продукт не найден, то таким:

Теперь наконец-то мы можем приступить к программированию на Android. То что мы описали выше на PHP будем использовать как API слой. И наше приложение будет общаться с MySQL сервером по средством JSON формата и GET, POST запросов.

Источник: devcolibri.com

Приложение на C# + связка с MySQL базой данных

Привет всем кодерам! В этом мини-туториале мы с вами с нуля напишем десктопное приложение на С#, которое будет работать с базой данных. Это задание было дано учебной программой 11 класса НИШ ФМН г.Алматы.

Что мы будем для этого использовать?

  • Среда программирования: Visual Studio 2017 (версия не имеет никакого значения)
  • Языки: C# — для клиентской части приложения, MySQL — для работы с данными в базе данных нашего приложения

Что будет выполнять приложение?

Наше приложение будет добавлять, изменять, обновлять, удалять и запрашивать данные из базы данных каратистов. «А почему каратистов?» — спросите вы. Так потому что это самая родная для меня тема, вот и будем рассматривать данный пример.

Создание проекта

После того, как вы скачали Visual Studio себе на компьютер, вам следует создать проект.

Как это сделать?

Создать проект -> Visual C# -> Приложение Windows Forms -> *Выбираем название для проекта и его расположение* -> OK

Теперь у вас готов проект и можно приступать к работе!

Создание форм (Часть 1)

Теперь нам нужно создать графический интерфейс приложения через формы. Добавлять новые формы легко. Просто нажимаете правой кнопкой мыши на свой проект и выбираете «Добавить», как на скриншоте ниже:

Далее следует поработать над дизайном наших форм. Не будем сильно изощряться и сделаем максимально минималистичный дизайн:

Главное меню

Меню выбора

Меню выбора для редактирования

Форма для добавления нового пользователя

Так-с. Дальше пока что мы не пойдём, так как для начала нам нужно понять как всё будет работать. У нас есть форма для добавления каратиста, и нам еще нужны формы для создания запросов, для просмотра базы данных и для редактирования её. Но где сама база данных?

Читайте также:
Не устанавливаются программы cydia

Её нет. Поэтому нам нужно немедленно её создать!

Создание базы данных

Переходим во вкладку «Средства» и выбираем «Подключиться к базе данных». Далее открывается окно «Добавить подключение», где в поле «Источник данных» мы выбираем «Файл базы данных Microsoft SQL Server (SqlClient)». Даём любое название файлу базы данных, в нашем случае — «IOGKF_members». Далее нажимаем кнопку «ОК» и в левой стороне экрана видим, как у нас добавилась новая база данных.

Раскрываем директорию с нашей базой данных и видим самую первую папку «Таблицы» — она нас и интересует. Жмём по ней правой кнопкой мыши и нажимаем «Добавить новую таблицу».

Можно создать таблицу двумя путями: 1) Конструктором 2) Через SQL код

Если вам лень делать её самим, то скопируйте следующий SQL код и вставьте его в поле с кодом у таблицы:

CREATE TABLE [dbo].[Members] ( [member_id] INT NOT NULL, [last_name] VARCHAR (20) NULL, [first_name] VARCHAR (20) NULL, [age] INT NULL, [rank] VARCHAR (3) NULL, [rank_value] INT NULL, [sensei] VARCHAR (20) NULL, [dojo] VARCHAR (20) NULL, PRIMARY KEY CLUSTERED ([member_id] ASC) );

Коротко о типах данных в SQL

  • varchar — тот же самый String, то есть строка (в скобках пишем её максимальную длину)
  • int — целые числа
  • binary — тот же самый boolean, то есть True or False, только в SQL — это 1 и 0 соответственно

null — указываем может ли переменная быть пустой, то есть не содержать информации

primary key — первичный ключ, в данном случае это member_id. Таким образом, все значения member_id уникальны

После того как вы создали таблицу, нужно её сохранить. Нажмите ctrl + s или просто закройте файл с таблицей после чего у вас появится сообщение о сохранении таблицы.

Ок, теперь у нас есть база данных и таблица, где будет храниться информация о каратистах.

Создание форм (Часть 2) + код

Давайте напишем программный код для добавления каратистов в нашу базу данных. В моём проекте эта форма называется Form5 (у неё надпись «Add User» в предыдущих скриншотах). В классе этой формы пишем следующее:

public string conString = «Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\HP\Desktop\IOGKF\IOGKF\IOGKF_members.mdf;Integrated Security=True;Connect Timeout=30»;

Здесь мы создали строковую переменную conString и присвоили ей значение строки подключения базы данных. Чтобы посмотреть вашу строку подключения нажмите правой кнопкой мыши по базе данных и выберите «Свойства»:

Теперь два раза нажимаем на кнопку «Add» в конструкторе нашей формы и таким образом открываем код, который будет выполняться при её нажатии. Вот код метода, который выполняется при нажатии:

private void button1_Click(object sender, EventArgs e) < SqlConnection con = new SqlConnection(conString); con.Open(); if(con.State == System.Data.ConnectionState.Open) < string q = «insert into Members(member_id, last_name, first_name,» + » age, rank, rank_value, sensei, dojo)» + » values(‘» + textBox1.Text.ToString() + «‘,'» + textBox2.Text.ToString() + «‘,'» + textBox3.Text.ToString() + «‘,'» + textBox4.Text.ToString() + «‘,'» + comboBox2.Text.ToString() + «‘,'» + comboBox1.Text.ToString() + «‘,'» + comboBox3.Text.ToString() + «‘,'» + textBox8.Text.ToString() + «‘) «; SqlCommand cmd = new SqlCommand(q, con); cmd.ExecuteNonQuery(); MessageBox.Show(«Connection was successful!»); >con.Close(); >

Работа с базами данных SQLite

В Android имеется встроенная поддержка одной из распространенных систем управления базами данных — SQLite. Для этого в пакете android.database.sqlite определен набор классов, которые позволяют работать с базами данных SQLite. И каждое приложение может создать свою базу данных.

Чтобы использовать SQLite в Android, надо создать базу данных с помощью выражение на языке SQL. После этого база данных будет храниться в каталоге приложения по пути:

DATA/data/[Название_приложения]/databases/[Название_файла_базы_данных]

ОС Android по умолчанию уже содержит ряд встроенных бад SQLite, которые используются стандартными программами — для списка контактов, для хранения фотографий с камеры, музыкальных альбомов и т.д.

Читайте также:
Как выложить программу в интернет

Основную функциональность по работе с базами данных предоставляет пакет android.database . Функциональность непосредственно для работы с SQLite находится в пакете android.database.sqlite .

База данных в SQLite представлена классом android.database.sqlite.SQLiteDatabase . Он позволяет выполнять запросы к бд, выполнять с ней различные манипуляции.

Класс android.database.sqlite.SQLiteCursor предоставляет запрос и позволяет возвращать набор строк, которые соответствуют этому запросу.

Класс android.database.sqlite.SQLiteQueryBuilder позволяет создавать SQL-запросы.

Сами sql-выражения представлены классом android.database.sqlite.SQLiteStatement , которые позволяют с помощью плейсхолдеров вставлять в выражения динамические данные.

Класс android.database.sqlite.SQLiteOpenHelper позволяет создать базу данных со всеми таблицами, если их еще не существует.

В SQLite применяется следующая система типов данных:

  • INTEGER : представляет целое число, аналог типу int в java
  • REAL : представляет число с плавающей точкой, аналог float и double в java
  • TEXT : представляет набор символов, аналог String и char в java
  • BLOB : представляет массив бинарных данных, например, изображение, аналог типу int в java

Сохраняемые данные должны представлять соответствующие типы в java.

Создание и открытие базы данных

Для создания или открытия новой базы данных из кода Activity в Android мы можем вызвать метод openOrCreateDatabase() . Этот метод может принимать три параметра:

  • название для базы данных
  • числовое значение, которое определяет режим работы (как правило, в виде константы MODE_PRIVATE )
  • необязательный параметр в виде объекта SQLiteDatabase.CursorFactory , который представляет фабрику создания курсора для работы с бд

Например, создание базы данных app.db :

SQLiteDatabase db = getBaseContext().openOrCreateDatabase(«app.db», MODE_PRIVATE, null);

Для выполнения запроса к базе данных можно использовать метод execSQL класса SQLiteDatabase. В этот метод передается SQL-выражение. Например, создание в базе данных таблицы users:

SQLiteDatabase db = getBaseContext().openOrCreateDatabase(«app.db», MODE_PRIVATE, null); db.execSQL(«CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)»);

Если нам надо не просто выполнить выражение, но и получить из бд какие-либо данные, то используется метод rawQuery() . Этот метод в качестве параметра принимает SQL-выражение, а также набор значений для выражения sql. Например, получение всех объектов из базы данных:

SQLiteDatabase db = getBaseContext().openOrCreateDatabase(«app.db», MODE_PRIVATE, null); db.execSQL(«CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)»); Cursor query = db.rawQuery(«SELECT * FROM users;», null); if(query.moveToFirst())

Метод db.rawQuery() возвращает объект Cursor, с помощью которого мы можем извлечь полученные данные.

Возможна ситуация, когда в базе данных не будет объектов, и для этого методом query.moveToFirst() пытаемся переместиться к первому объекту, полученному из бд. Если этот метод возвратит значение false, значит запрос не получил никаких данных из бд.

Теперь для работы с базой данных сделаем простейшее приложение. Для этого создадим новый проект.

В файле activity_main.xml определим простейший графический интерфейс:

А в классе MainActivity определим взаимодействие с базой данных:

По нажатию на кнопку здесь вначале создается в базе данных app.db новая таблица users, а затем в нее добавляются два объекта в базу данных с помощью SQL-выражения INSERT.

Далее с помощью выражения SELECT получаем всех добавленных пользователей из базы данных в виде курсора Cursor.

Вызовом query.moveToNext() перемещаемся в цикле while последовательно по всем объектам.

Для получения данных из курсора применяются методы query.getString(0) и query.getInt(1) . В скобках в методы передается номер столбца, из которого мы получаем данные. Например, выше мы добавили вначале имя пользователя в виде строки, а затем возраст в виде числа. Значит, нулевым столбцом будет идти строкое значение, которое получаем с помощью метода getString() , а следующим — первым столбцом идет числовое значение, для которого применяется метод getInt() .

После завершения работы с курсором и базой данных мы закрываем все связанные объекты:

query.close(); db.close();

Если мы не закроем курсор, то можем столкнуться с проблемой утечки памяти.

И если мы обратимся к приложению, то после нажатия на кнопку в текстовое поле будут выведены добавленные данные:

Источник: metanit.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru