'MySQL'에 해당되는 글 3건

  1. 2018.08.29 C# DB연동 1
  2. 2018.08.17 자바 DB연동 - JDBC + MySQL
  3. 2018.08.17 [MySQL] Server에서 Client에게 접근 권한 주기

C# DB연동



C#에서 MySQL DataBase 연동하는 방법입니다.


먼저 C# 프로그램에서 MySQL과 연동하기 위해서는 Connector가 필요합니다.


아래 링크로 들어가 다운받아 줍니다.


https://dev.mysql.com/downloads/connector/net/8.0.html


설치가 완료되었으면 Visual Studio를 실행하고


C# - Windows Forms 앱을 만들어 줍니다. (저는 프로젝트 명을 DBConnectionTest 라고 지었습니다.)


그리고 아래와 같이 솔루션 탐색기의 참조를 우클릭하여 참조 추가(R)를 선택합니다.





아래와 같은 참조 관리자가 실행되는데 우측 상단에 검색란에 mysql이라고 검색합니다.


(만약 MySql.Data가 나타나지 않는다면 아랭의 찾아보기(B)를 눌러 위에서 설치한 Connect의 경로를 추가합니다)





참고로 제 데이터베이스 테이블입니다.


테이블 구조입니다.




데이터는 하나만 추가했습니다.






다시 Visual Studio로 와서 최상단에 아래와 같이 입력합니다.


using MySql.Data.MySqlClient;


참조했던 MySql.Data를 사용하겠다는 뜻입니다.


그리고 Form1 안에 아래와 같이 변수를 선언해줍니다.


public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

private MySqlConnection mConnection; // DB접속

private MySqlCommand mCommand; // 쿼리문

private MySqlDataReader mDataReader; // 실행문


기본 설명은 주석으로 처리하였습니다.


Form1.cs[디자인]에서 폼을 더블클릭하여 Form1_Load를 생성하여 아래와 같이 작성합니다.


또한 TextBox도 하나 생성해줍시다.


private void Form1_Load(object sender, EventArgs e)

{

    mConnection = new MySqlConnection(url); // DB접속

    mCommand = new MySqlCommand(); // 쿼리문 생성

    mCommand.Connection = mConnection; // DB에 연결


    mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

    mConnection.Open(); // DB 오픈

    mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


    while (mDataReader.Read()) // 전부 다 읽어 옴

    {

        // 여기서 부터 원하는 데이터를 받아와서 처리

        string tempName = mDataReader["name"].ToString();

        string tempPhone = mDataReader["phone"].ToString();

        string tempAge = mDataReader["age"].ToString(); 


        textBox1.AppendText("이름 : " + tempName + "\n");

        textBox1.AppendText("전화번호 : " + tempPhone + "\n");

        textBox1.AppendText("나이 : " + tempAge + "\n");

    }


    mConnection.Close(); // 사용 후 객체 닫기

}


아래는 전체 코드입니다.


using MySql.Data.MySqlClient;

using System;

using System.Windows.Forms;


namespace DBConnectionTest

{

    public partial class Form1 : Form

    {

        public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

        private MySqlConnection mConnection; // DB접속

        private MySqlCommand mCommand; // 쿼리문

        private MySqlDataReader mDataReader; // 실행문

        

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            mConnection = new MySqlConnection(url); // DB접속

            mCommand = new MySqlCommand(); // 쿼리문 생성

            mCommand.Connection = mConnection; // DB에 연결


            mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

            mConnection.Open(); // DB 오픈

            mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


            while (mDataReader.Read()) // 전부 다 읽어 옴

            {

                // 여기서 부터 원하는 데이터를 받아와서 처리

                string tempName = mDataReader["name"].ToString();

                string tempPhone = mDataReader["phone"].ToString();

                string tempAge = mDataReader["age"].ToString(); 


                textBox1.AppendText("이름 : " + tempName + "\n");

                textBox1.AppendText("전화번호 : " + tempPhone + "\n");

                textBox1.AppendText("나이 : " + tempAge + "\n");

            }


            mConnection.Close(); // 사용 후 객체 닫기

        }

    }

}


실행화면입니다.


아래와 같이 데이터베이스에 존재하는 내용을 받아와 출력한 화면입니다.




이외에도 UPDATE, DELETE, INSERT와 같이 쿼리문과 코드만 살짝 수정해서 사용 할 수 있습니다.


지금까지 C#과 MySQL DataBase 연동하는 방법에 대해 알아보았습니다.






정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.

질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.





이번에는 Java Eclipse에서 JDBC를 통해 Mysql DB를 연동하는 방법에 대해 알아보겠습니다.

- JDBC란? Java DataBase Connectivity로 자바에서 데이터베이스에 접속 할 수 있도록 자바에서 제공하는 API입니다. 


* 환경
JDK : jdk1.8.0_171
자바 개발 툴 : eclipse-jee-oxygen-3a-win32
데이터베이스 : MySQL 5.1.41-community

* 소스코드
import java.sql.*; 

public class dbtest { 
          public static void main(String arg[]) throws Exception { 
                    Connection conn; 
                    Statement stmt; 
                    ResultSet rs; 

                    Class.forName("com.mysql.jdbc.Driver");  // JDBC driver를 메모리에 로드
                    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DB명", 
                              "ID", "PASSWORD"); 
                    stmt = (Statement) conn.createStatement(); 
                    rs=stmt.executeQuery("SELECT * FROM TABLE명");  // 원하는 쿼리문 실행

                    while(rs.next()) { 
                              System.out.print(rs.getString("id") + " ");  
                              System.out.println(rs.getString("password")); 
                    

                    rs.close(); 
                    stmt.close(); 
                    conn.close();
          
}

코드는 매우 간단합니다.
먼저 JDBC Driver를 사용하기 위해 Class.forName을 사용하여 메모리에 등록하고
DriverManager를 통해 DB에 접속합니다.
그리고 쿼리를 준비하고 원하는 쿼리문을 실행하고 받은 데이터를 처리합니다.
마지막으로 정상적인 처리를 위해 사용한 객체들을 역순으로 닫아주면 됩니다.

위 SELECT 문 사용 예제를 통해 INSERT, DELETE, UPDATE 문을 활용하여 프로그램을 제작해 보면
어떨까요?

에러나 질문사항은 댓글로 달아주세요.




Server에서 MySQL Console 관리자 ID로 접속 후, 다음 명령어 실행
GRANT ALL PRIVILEGES ON *.* TO 아이디@'ip주소' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
아이디, 비밀번호는 Server 관리자 아이디 입력
ip주소는 Server에서 접속 받을 Client 주소를 입력해야 합니다.
입력 후 Client에서 접속 확인!


to Top