Showing posts with label Database Connection. Show all posts
Showing posts with label Database Connection. Show all posts

Saturday, March 20, 2010

Java-г MySQL өгөгдлийн сантай холбох (JDBC)

Эхлээд өгөгдлийн сангаа үүсгэнэ.

create database jdbc_test; 
 
3 field бүхий user нэртэй table үүсгэе.


CREATE TABLE  `jdbc_test`.`user` (
`id` INT NOT NULL ,
`name` VARCHAR( 50 ) NOT NULL ,
`mail` VARCHAR( 50 ) NOT NULL
) ENGINE = MYISAM ; 
 
Table-дээ өгөгдөл оруулна.

INSERT INTO user
VALUES ( 1, "Gansukh", "bganaa2009@gmail.com" ) ; 
 
NetBeans IDE хэрэглэж байгаа бол Project-доо MySQL JDBC Driver jar файлыг нэмж өгнө. Үүний тулд Project-ыхоо Libraries хэсэг дээр Right Click хийгээд Add Library, MySQL JDBC Driver сонгоод Add дарна.

package jdbc_test;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class Main {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/jdbc_test";
static final String DB_UNAME = "root";
static final String DB_PASS = "";
public static void main(String[] args) {
Connection db_conn = null;
Statement st = null;
try{
Class.forName(JDBC_DRIVER);
db_conn = DriverManager.getConnection(DB_URL, DB_UNAME, DB_PASS);
st = db_conn.createStatement();
String q = "select *from user";
ResultSet rs = st.executeQuery(q);
ResultSetMetaData md = rs.getMetaData();
int col = md.getColumnCount();
for(int i = 1; i <= col; i++ ){
System.out.printf("%s\t",md.getColumnName(i));
}
System.out.println();
while(rs.next()){
for(int i = 1; i <= col; i++ ){
System.out.printf("%s\t",rs.getObject(i));
}
System.out.println();
}
}
catch(SQLException sqlExp){
sqlExp.printStackTrace();
System.exit(1);
}
catch (ClassNotFoundException cnf){
cnf.printStackTrace();
System.exit(1);
}
finally {
try{
st.close();
db_conn.close();
}
catch(Exception e){
e.printStackTrace();
System.exit(1);
}
}
}
}

Үр дүн:

run:
id name mail
1 Gansukh bganaa2009@gmail.com
BUILD SUCCESSFUL (total time: 0 seconds)

Monday, March 8, 2010

PHP: MySQL database холболт үүсгэх, query ажиллуулах

Өмнөх бичлэг дээр PhpMyadmin ашиглан database үүсгэх Query бичиж ажиллуулах талаар бичсэн. Одоо харин PHP source code дээрээс MySQL database-тай connection(холболт) үүсгэх, Query ажиллуулах талаар жаахан тайлбар хийе.

<?php
    $db_host='localhost';
    $db_database='example_db';
    $db_username='root';
    $db_password='';

    $db_conn = mysql_connect($db_host, $db_username, $db_password);
    
    if (!$db_conn){
        die ("DB connection not successful <br />". mysql_error());
    }else{
        echo "Connection successful <br />";
    }
    
    $db_select = mysql_select_db($db_database);
    
    if (!$db_select){
        die ("DB selection not successful <br />". mysql_error());
    }else{
        echo "DB selection successful<br />";
    }
    
    $query1 = "INSERT INTO `user` (user_name,user_last_name,user_pass,user_mail,age)
                    VALUES ( 'newuser', 'new', 'pass', 'newuser@mail.dm',20);";
    
    $r = mysql_query( $query1 );
    
    if (!$r){
        die ("Could not query1 the database: <br />". mysql_error());
    }else{
        echo "Query1 executed <br />";
    }
    
    $query2 = "select * from `user`";
    
    $result = mysql_query( $query2 );
    
    if (!$result){
        die ("Could not query2 the database: <br />". mysql_error());
    }

    while ($row = mysql_fetch_row($result)){
       echo "$row[0] "."$row[1] "."$row[2] "."$row[3] "."$row[4]<br />";
       
    }
    mysql_close($db_conn);
?>
PHP дээр MySQL database-тай mysql_connect() функцийн тусламжтай холбогдоно.
mysql_connect($db_host, $db_username, $db_password);
Харин энэ функцээр эхлээд host name (өөрийн компьютер дээр server ажиллуулж байгаа болохоор localhost нэртэй байна), мөн database-ийн user name(нэвтрэх нэр), password гэсэн гурван аргументийг дамжуулж холбогдоно. XAMPP суулгасан үед username нь root, password нь хоосон default утга авсан байдаг. Холболт амжилтгүй болон тохиолдолд mysql_connect() функц маань false (null, 0) утга буцаадаг. Амжилтай болсон эсэхийг доор нь if() нөхцөл шалгаж
DB connection not successful / Connection successful мэдээллүүдийг хэвлэхээр source code дээр бичлээ.

MySQL database-тай холбогдсон бол mysql_select_db() функцийн тусламжтай үүсгэсэн database-ийг сонгож идэвхижүүлнэ.

Харин query-г execute(гүйцэтгэл) хийлгэхийн тулд mysql_query( ) функцийн дундуур query-ээ argument болгож дамжуулна. Манай жишээнд:
INSERT INTO `user` (user_name,user_last_name,user_pass,user_mail,age)
VALUES ( 'newuser', 'new', 'pass', 'newuser@mail.dm',20);
query-г
user_name = 'newuser',
user_last_name = 'new',
user_pass = 'pass',
user_mail = 'newuser@mail.dm',
age = 20 утгуудыг авахаар бичиж гүйцэтгүүллээ.

Дараа нь
select * from `user`
query-г ажиллуулж, буцаасан утгыг нь mysql_fetch_row() фунцкийн тусламжтай $row массив хувьсагчид утгыг оноож дэлгэцэнд хэвлэх үйлдлийг гүйцэтгүүллээ.

Эцэст нь mysql_close(); функцийн тусламжтой database connection-оо салгаж байна.

Хэд хэдэн удаа refresh хийгээд харвал web browser дээр маань иймэрхүү л үр дүнг харуулж байна даа :)