Създаване
на база в MySQL
След установяването на връзката с
MySQL чрез използване на JDBC драйвер следва
на се създаде базата. Базата данни е
голяма колекция от данни или информация,
съхранена на нашия компютър в подреден
вид. Тази подредба ни помага при
свързването, промяната или обновяването
на данните в базата. В примера ще бъде
създадена база от данни чрез MySQL и с
помощта на някои Джава методи и SQL отчети.
RDBMS(Relational Database Management System) e тип от
DBMS(Database Management System), която съхранява
базата под формара на таблица. Принципно
е възможна да се покаже същата база по
много различни начини.
Описание на
програмата:
Първо програмата установява връзка
с MySQL база данни, след което изчаква за
име на базата, което следва да бъде
въведено от потребителя и след това
създава базата и показва съобщението
"1 row(s) affected" при успешно създаване
или "SQL statement is not executed!" в обратния
случай.
Описание на кода:
CREATE DATABASE db_name; Този
код се използва за създаване на нова
база данни. Той задава име, с което базата
да бъде създадена.
Следва кода на
програмата:
|
import java.io.*;
import java.sql.*;
public class CreateDatabase{
public static void main(String[] args) {
System.out.println("Database creation example!");
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root");
try{
Statement st = con.createStatement();
BufferedReader bf = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Enter Database name:");
String database = bf.readLine();
st.executeUpdate("CREATE DATABASE "+database);
System.out.println("1 row(s) affacted");
}
catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
|
Изходът от
програмата:
|
C:\vinod\jdbc\jdbc\jdbc-mysql>javac
CreateDatabase.java
C:\vinod\jdbc\jdbc\jdbc-mysql>java
CreateDatabase Database creation example! Enter Database
name: RoseIndia 1 row(s) affacted
|
Създаване
на таблица в базата данни
Таблицата е базов компонент в базата
данни(DB). Тя е съставена от редове и
колони. Всички таблици се съхраняват в
спецификацията на базата.
Описание на
програмата:
Първо се установява връзка с базата
и се създава таблица с няколко полета.
В случай, че името на таблицата вече
съществува ще бъде показано съобщението:
"Table already exists!"
Описание на кода:
Statement: Това е интерфейс.
Съответстващия обект изпълнява SQL отчети
и връща резултата от тях.
createStatement(): Това
е метод на интерфейса Connection,
който връща Statement обект.
Този метод ще бъде изпълняван отново и
отново доката програмата е стартирана.
CREATE
TABLE table_name(field_name): Този код се
използва, за да се създаде таблица със
зададени имена на полета.
executeUpdate(String
table): Този метод също изпълнява SQL
отчет, който може да бъде INSERT, UPDATE или
DELETE. Получава като параметър String и връща
int.
Следва кода на
програмата:
|
import java.sql.*;
public class CreateTable{
public static void main(String[] args) {
System.out.println("Table Creation Example!");
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "jdbctutorial";
String driverName = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
try{
Class.forName(driverName).newInstance();
con = DriverManager.getConnection(url+dbName, userName, password);
try{
Statement st = con.createStatement();
String table = "CREATE TABLE Employee11(Emp_code integer, Emp_name varchar(10))";
st.executeUpdate(table);
System.out.println("Table creation process successfully!");
}
catch(SQLException s){
System.out.println(
"Table all ready exists!");
}
con.close();
}
catch (Exception e){
e.printStackTrace();
}
}
}
|
Създаване
на таблица в MySQL база за съхранение на
Java типове
Описание на
програмата:
Тази програма установява връзка, между
MySQL базата и Джава файл. След като връзката
е установена, създава таблица, за да
съхранява всичките типове в Джава.
Следва кода на
програмата:
|
import java.sql.*;
public class CreateMySqlTable{
public static void main(String[] args) {
System.out.println("Creating a Mysql Table to Store Java Types!");
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
try{
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db, user, pass);
try{
Statement st = con.createStatement(); <<<<<<<
CreateMySqlTable.shtml
String table =
"CREATE TABLE java_DataTypes2
("+ "typ_boolean BOOL, " =======
String table = "CREATE TABLE java_DataTypes2("+ "typ_boolean BOOL, " >>>>>>>
1.7
+ "typ_byte TINYINT, "
+ "typ_short SMALLINT, "
+ "typ_int INTEGER, "
+ "typ_long BIGINT, "
+ "typ_float FLOAT, "
+ "typ_double DOUBLE PRECISION, "
+ "typ_bigdecimal DECIMAL(13,0), "
+ "typ_string VARCHAR(254), "
+ "typ_date DATE, "
+ "typ_time TIME, "
+ "typ_timestamp TIMESTAMP, "
+ "typ_asciistream TEXT, "
+ "typ_binarystream LONGBLOB, "
+ "typ_blob BLOB)";
st.executeUpdate(table);
System.out.println(table); con.close();
}
catch (SQLException s){
System.out.println ("Table is all ready exists!");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
|
Описание
на таблица на базата данни
Тази секция показва как може да се
получи детайлна информация за таблица
на базата данни. Както е известно,
таблицата съдържа определена информация
от вида: полета, типове и т.н. Използвайки
проста заявка ние можем да получим
информация за таблицата от сорта на
броя на колоните и редовете в нея,
типовете, дали дадено поле е с нулева
стойност или не, дали дадена колона е
определена като уникална и т.н.
Описание на
програмата:
Създаване на връзка с базата данни.
При установена връзка се изпраща заявка
към базата, включваща името на таблицата
и чрез използването на някои Джава
методи се полува информация за детайлите
на таблицата. Когато програмата бъде
стартирана, те ще покаже имената на
полетата, типа и нулевите стойности в
таблицата. Ако някое поле има нулева
стойност, тогава ще бъде показано "Yes",
а в противен случай "No". Ако възникнат
проблеми по време на изпълнение на
заявката, тогава ще бъде показано
съобщението: "SQL statement is not executed!"
Описание на кода:
DESCRIBE
table_name; Този код се използва, за да
се получи кратко описание на таблица в
базата данни, като се посочва името
й.
getColumns(String cat, String sche,
String tab, String col_pat); Методът връща
ResultSet обект и осигурява описание на
таблицата. Входните му параметри са:
|
|
String cat: Това е каталог
на таблица. Той може да бъде с нулева
стойност. String sche:
Показва схема на таблицата. Може да
приема стойност нула. String
tab: Име на таблицата. Изисква се,
за да се получи информация. String
col_pat: Показва образец на името на
колона.
|
|
COLUMN_NAME: Показва
името на колоната. TYPE_NAME:
Показва типа на данните в дадената
колона. COLUMN_SIZE:Дължината
на колоната. NULLABLE:Колоната
може да приема нулева стойност.
Следва кода на
програмата:
|
import java.io.*;
import java.sql.*;
public class DiscriptionTable{
public static void main(String[] args) {
System.out.println("See Description of Table Example!");
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root");
try{
Statement st = con.createStatement();
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter table name:");
String table = bf.readLine();
ResultSet rs = st.executeQuery("DESCRIBE "+table);
ResultSetMetaData md = rs.getMetaData();
int col = md.getColumnCount();
for (int i = 1; i <= col; i++){
String col_name = md.getColumnName(i);
System.out.print(col_name+"\t");
}
System.out.println();
DatabaseMetaData dbm = con.getMetaData();
ResultSet rs1 = dbm.getColumns(null,"%",table,"%");
while (rs1.next()){
String col_name = rs1.getString("COLUMN_NAME");
String data_type = rs1.getString("TYPE_NAME");
int data_size = rs1.getInt("COLUMN_SIZE");
int nullable = rs1.getInt("NULLABLE");
System.out.print(col_name+"\t"+data_type+"("+data_size+")"+"\t");
if(nullable == 1){
System.out.print("YES\t");
}
else{
System.out.print("NO\t");
}
System.out.println();
}
}
catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
|
|