Как подключить database
Перейти к содержимому

Как подключить database

  • автор:

Подключение баз данных SQL Server

В этом разделе описывается процедура подключения базы данных в SQL Server с помощью среды SQL Server Management Studio. Одновременно может быть подключена только одна база данных.

Для подключения базы данных необходимо иметь любое из следующих разрешений: CREATE DATABASE (Создание базы данных), CREATE ANY DATABASE (Создание любой базы данных) или ALTER ANY DATABASE (Изменение любой базы данных). Обычно эти разрешения предоставляются роли sysadmin экземпляра.

Как подключить базу данных

  1. Запустите среду Microsoft SQL Server Management Studio.
  2. Подключитесь к требуемому экземпляру SQL Server и разверните его.
  3. Правой кнопкой мыши щелкните пункт Базы данных и щелкните Подключить .
  4. Нажмите кнопку Добавить .
  5. В диалоговом окне Поиск файлов баз данных найдите и выберите MDF-файл базы данных.
  6. В разделе Сведения о базе данных убедитесь, что остальные файлы базы данных (NDB-файлы и LDF-файлы) также найдены. Подробнее. Файлы базы данных SQL Server могут быть не найдены автоматически, если:
    • Они находятся в расположении, отличном от расположения по умолчанию, или они не находятся в одной папке с основным файлом базы данных (MDF). Решение: Укажите путь к требуемым файлам вручную в столбце Путь к текущему файлу .
    • Вы восстановили неполный набор файлов, составляющих базу данных. Решение: Восстановите отсутствующие файлы базы данных SQL Server из резервной копии.
  7. Когда все файлы будут найдены, нажмите кнопку ОК .

Дата последней сборки: 6 марта 2023 г.

Веб-справка по Acronis Cyber Protect 15 Обновление 6 . © Acronis International GmbH, 2003-2023

Как подключить database

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

Чтобы хранить данные, нам естественным образом нужна база данных. Как правило, в качестве базы данных используется MS SQL Server, на примере которого мы и посмотрим весь процесс создания БД и подключения к ней.

Мы можем создать базу данных прямо в проекте, либо же создать ее на сервере MS SQL. Для хранения баз данных проекте у нас предназначена папка App_Data. Для этого нажмем правой кнопкой мыши на папку App_Data и в появившемся контекстном меню выберем Add-> New Item. . В появившемся окне добавления нового элемента выберем SQL Server Database и назовем новую базу данных Bookstore.mdf:

Мы можем создать базу данных равнозначным образом и на сервере. После этого база данных добавляется в проект, и мы можем увидеть ее в папке App_Data. Теперь в обозревателе баз данных (окно Database Explorer ) мы можем подключиться к ней и создать таблицы, которые будут хранить данные.

Раскроем узел Bookstore.mdf и найдем узел Tables. Нажмем на этот узел правой кнопкой мыши и в появившемся меню выберем пункт Add New Table . И перед нами появится окно, в котором нам надо определить названия и типы столбцов новой таблицы. По соглашениям о наименованиях таблицы при работе с Entity Framework должны соответствовать имени модели. То есть, так как наша модель называется Book , то таблица будет называться Books . А Entity Framework автоматически распознает, что таблица Books соответствует классу Book .

Итак, создадим структуру таблицы:

Не забудьте установить ниже в окне Properties (в Visual Stidio 2010 — окно Column Properties) для столбца Id соответствующие параметры для первичного ключа:

После этого, если мы работаем с Visual Studio 2010, нам будет предложено просто ввести имя таблицы — введем имя Books, и затем таблица добавляется в БД.

А в Visual Studio Express 2012 for Web нам надо сгенерировать таблицу на основе заданного выше определения. Для этого нажмем на кнопку Update:

В появившемся диалоговом окне нажмем на кнопку Update Database. После этого в нашу базу данных добавляется только что сгенерированная таблица. Подобным образом определим таблицу Purchases для модели Purchase:

Добавим в таблицу Books несколько записей:

Теперь, во-первых, чтобы взаимодействовать с БД, нам нужен класс контекста данных, пусть это будет следующий класс BookContext:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace BookStore.Models < public class BookContext : DbContext < public DbSetBooks < get; set; >public DbSet Purchases < get; set; >> >

Во-вторых, определим строку подключения к БД. Для этого откроем файл Web.config и добавим в конец секции configuration определение строки подключения. Однако тут надо сразу заметить, что для Visual Studio 2010 строка подключения будет отличаться от строки подключения, которая используется в Visual Studio 2012.

Итак, строка подключения для Visual Studio 2010 будет выглядеть так:

Для Visual Studio 2012 будет выглядеть определение строки подключения будет выглядеть следующим образом:

В Visual Studio 2012 в отличие от 2010-й версии мы можем использовать режим LocalDB, который предназначен прежде всего для разработчиков, представляя некоторую упрощенную версию. Поэтому в данном случае в качестве источника данных используется (LocalDB)\v11.0.

Обратите внимание, что в обоих случаях свойство name=»BookContext» должно содержать название контекста данных.

Использование подстановки |DataDirectory| позволяет опустить полный физический путь к базе данных, которая хранится в папке App_Data.

Теперь мы можем получить содержимое таблицы Books в контроллере Home:

public class HomeController : Controller < BookContext db = new BookContext(); public ActionResult Index() < return View(db.Books); >>

И вывести данные в представлении Index.cshtml:

@model IEnumerable @ < Layout = "~/Views/Shared/_Layout.cshtml"; > 

Распродажа книг

@foreach (BookStore.Models.Book b in Model) < >

Название книги

Автор

Цена

@b.Name

@b.Author

@b.Price

Купить

Закрытие подключения

Чтобы наверняка быть уверенным, что подключение к базе данных закрыто, следует вызывать метод Dispose у контекста данных:

protected override void Dispose(bool disposing)

Это переопределенная версия метода Dispose контроллера, которая вызывается при уничтожении объекта контроллера. В нее помещается вызов db.Dispose() , который уничтожает все связанные с контекстом данных ресурсы и подключения.

Как подключить database

Вначале создадим на сервере MySQL пустую базу данных, которую назовем store и с которой мы будет работать в приложении на Java. Для создания базы данных применяется выражение SQL:

CREATE DATABASE store;

Его можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.

Для подключения к базе данных необходимо создать объект java.sql.Connection . Для его создаия применяется метод:

Connection DriverManager.getConnection(url, username, password)

Метод DriverManager.getConnection в качестве параметров принимает адрес источника данных, логин и пароль. В качестве логина и пароля передаются логин и пароль от сервера MySQL. Адрес локальной базы данных MySQL указывается в следующем формате: jdbc:mysql://localhost/название_базы данных

Пример создания подключения к созданной выше локальной базе данных store:

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password");

После завершения работы с подключением его следует закрыть с помощью метода close() :

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password"); // работа с базой данных connection.close();

Либо мы можем использовать конструкцию try :

try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password")) < // работа с базой данных >

Возможные проблемы с часовыми поясами и SSL

При подключении к базе данных MySQL мы можем столкнуться с рядом проблем. Например, определим следующий код подключения:

import java.sql.Connection; import java.sql.DriverManager; public class Program < public static void main(String[] args) < try< String url = "jdbc:mysql://localhost/store"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password))< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> >

Даже если указаны правильно адрес базы данных, логин, пароль, мы все равно можем столкнуться с ошибками:

timezone in java connection to mysql

Из консольного вывода видно, что проблема заключается с SSL и часовым поясом. Чтобы решить данную проблему, необходимо указать в адресе подключения часовой пояс бд и параметры для использования ssl. В частности, я указываю, что SSL не будет использоваться и что часовым поясом будет московский часовой пояс:

String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false";

Параметры подключения указываются после вопросительного знака после названия базы данных. Параметр serverTimezone указывает на название часового пояса сервера бд. В данном случае «Europe/Moscow», cписок всех допустимых названий часовых поясов можно найти на странице https://gist.github.com/kinjal/9105369. И параметр useSSL=false указывает, что SSL не будет применяться.

Файлы конфигурации

Мы можем определить все данные для подключения непосредственно в программе. Однако что если какие-то данные были изменены? В этом случае потребуется перекомпиляция приложения. Иногда это не всегда удобно, например, отсутствует досуп к исходникам, или перекомпиляция займет довольно продолжительное время. В этом случае мы можем хранить настройки в файле.

Так, создадим в папке программы новый текстовый файл database.properties , в котором определим настройки подключения:

url = jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false username = root password = password

Загрузим эти настройки в программе:

import java.sql.*; import java.nio.file.*; import java.io.*; import java.util.*; public class Program < public static void main(String[] args) < try< Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = getConnection())< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> public static Connection getConnection() throws SQLException, IOException < Properties props = new Properties(); try(InputStream in = Files.newInputStream(Paths.get("database.properties")))< props.load(in); >String url = props.getProperty("url"); String username = props.getProperty("username"); String password = props.getProperty("password"); return DriverManager.getConnection(url, username, password); > >

Создание подключения к базе данных

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

  • В меню Данные в верхней части экрана выбрать пункт Базы данных.
  • В правом верхнем углу нажать кнопку +БАЗА ДАННЫХ.
  • В открывшемся окне выбрать Тип базы данных (PostgreSQL, Presto, My SQL…). Если нужного типа сразу не нашлось, выберите из раскрывающегося списка Supported Databases.
  • Откроется форма для заполнения основных параметров подключения. Заполните параметры по образцу. Обязательные к заполнению поля отмечены звездочкой.
  • К обязательным полям относятся: HOST, PORT, Имя БД (Database name), имя пользователя (username), название базы данных для отражения (Display name). Необязательными полями являются пароль и дополнительные параметры.
  • Кликните «Connect» для осуществления подключения.
  • При успешном подключении вы увидите окно-уведомление с возможностью задать некоторые дополнительные настройки базы данных, такие как интеграция с SQL Lab, настройка кэша, добавление сертификатов безопасности и т.д. Добавьте нужные настройки и завершите подключение базы данных, нажав кнопку «Finish».

Если в списке отсутствует нужный тип базы данных, можно настроить подключение через список, выбрав опцию Другой и введя SQLALCHEMY URI .

Вкладка SQL Lab позволяет настроить разрешения на определенные запросы к подключенной базе.

Вкладка Performance позволяет настроить таймауты для запросов к базе.

Вкладка Security позволяет разрешить загрузку данных из файлов в указанную схему в базе.

  • Новая база данных появилась в списке.
  • Для редактирования или удаления базы данных воспользуйтесь колонкой «Действия» и соответствующими кнопками.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *