Sie sind auf Seite 1von 118

1

1. Mapping MySQL Data Types in Java 2. Connecting to a MySQL Database in Java 3. Creating a Database in MySQL 4. Creating a Database Table 5. Creating a MySQL Database Table to store Java Types 6. Description of Database Table 7. Deleting a Table from Database 8. Retrieving Tables from a Database 9. Inserting values in MySQL database table 10. Retrieving All Rows from a Database Table 11. Count Rows from a Database Table 12. Getting Column Names from a database table in Java 13. Adding a New Column in Database Table 14. Rename Column Name of a Database Table 15. Make Unique key in a Column 16. Remove Unique Key in Database Table 17. Arranging Records of Database Table in Ascending Order 18. Arranging Records of Database Table in Descending Order 19. Sum of Specific Column Data in a Database Table 20. Deleting All Rows from a Database Table 21. Delete a Specific Row from a Database Table

22. Delete a Column from a Database Table 23. Join tables in the specific database 24. Join tables with the NATURAL LEFT JOIN operation 25. Join tables with the NATURAL RIGHT JOIN operation 26. Cross Join Tables in a Specific Database 27. Prepared Statement Set Object 28. Statement Batch Update 29. Prepared Statement Batch Update 30. Select Records Using Prepared Statement 31. Update Records using Prepared Statement 32. Inserting Records using the Prepared Statement 33. Count Records using the Prepared Statement 34. Deleting Records using the Prepared Statement 35. Using the Prepared Statement Twice Time 36. Set Data Types by using Prepared Statement 37. Set byte, short and long data types by using the Prepared Statement 38. Prepared Statement Set Big Decimal 39. Set Date by using the Prepared Statement 40. Set Time by using the Prepared Statement 41. Set Timestamp by using the Prepared Statement 42. Write Text File to Table 43. Copy Table in a MySQL Database 44. Copy One Database Table to Another

45. Insert Data in Table Using Stored Procedure 46. Inserting Image in Database Table 47. JDBC Mysql Connection String

Data types of MySQL and Java programming language are not same, its need some mechanism for transferring data between an database using MySQL data types and a application using Java data types. We need to provide Java mappings for the common MySQL data types. We have to confirm that we have proper type information then only we can correctly store and retrieve parameters and recover results from MySQL statements. There is no particular reason that the Java data type needs to be exactly isomorphic to the MySQL data type. For example, Java String don't precisely match any of the MySQL data CHAR type, but it gives enough type information to represent CHAR, VARCHAR or LONGVARCHAR successfully. The following table represent the default Java mapping for various common MySQL data types: MySQL Type CHAR VARCHAR LONGVARCHAR NUMERIC DECIMAL BIT TINYINT SMALLINT INTEGER BIGINT REAL FLOAT DOUBLE BINARY VARBINARY DATE TIME TIMESTAMP String String String java.math.BigDecimal java.math.BigDecimal boolean byte short int long float double double byte [] byte [] java.sql.Date java.sql.Time java.sql.Tiimestamp Java Type

LONGVARBINARY byte []

1. CHAR, VARCHAR and LONGVARCHAR MySQL data types CHAR, VARCHAR, LONGVARCHAR are closely related. CHAR represents a small, fixed-length character string, VARCHAR represents a small, variable-length character string, and LONGVARCHAR represents a large, variable-length character string. There is no need for Java programmer to distinguish these three MySQL data types. These can be expressed identically in Java. These data types could be mapped in Java to either String or char[]. But String seemed more appropriate type for normal use. Java String class provide a method to convert a String into char[] and a constructor for converting a char[] into a String. The method ResultSet.getString allocates and returns a new String. It is suitable for retrieving data from CHAR, VARCHAR and LONGVARCHAR fields. This is suitable for retrieving normal data, but LONGVARCHAR MySQL type can be used to store multi-megabyte strings. So that Java programmers needs a way to retrieve the LONGVARCHAR value in chunks. To handle this situation, ResultSet interface have two methods for allowing programmers to retrieve a LONGVARCHAR value as a Java input stream from which they can subsequently read data in whatever size chunks they prefer. These methods are getAsciiStream and getCharacterStream, which deliver the data stored in a LONGVARCHAR column as a stream of ASCII or Unicode characters. 2. NUMERIC and DECIMAL The NUMERIC and DECIMAL MySQL data types are very similar. They both represent fixed point numbers where absolute precision is required. The most convenient Java mapping for these MySQL data type is java.math.BigDecimal. This Java type provides math operations to allow BigDecimal types to be added, subtracted, multiplied, and divided with other BigDecimal types, with integer types, and with floating point types. We also allow access to these MySQL types as simple Strings and char []. Thus, the Java programmers can use the getString() to retrieve the NUMERICAL and DECIMAL results. 3. BINARY, VARBINARY and LONGVARBINARY These MySQL data types are closely related. BINARY represents a small, fixed-length binary value, VARBINARY represents a small, variable-length binary value and LONGVARBINARY represents a large, variable-length binary value. For Java programers there is no need to distinguish among these data types and they can all be expressed identically as byte arrays in Java. It is possible to read and write SQL statements correctly without knowing the exact BINARY data type. The ResultSet.getBytes method is used for retrieving the DECIMAL and NUMERICAL values. Same as LONGVARCHAR type, LONGVARBINARY type can also be used to return multi-megabyte data values then the method getBinaryStream is recommended. 4. BIT The MySQL type BIT represents a single bit value that can be 'zero' or 'one'. And this MySQL type can be mapped directly to the Java boolean type. 5. TINYINT, SMALLINT, INTEGER and BIGINT The MySQL TINYINT type represents an 8-bit integer value between 0 and 255 that may be signed or unsigned. SMALLINT type represents a 16-bit signed integer value between -32768 and 32767. INTEGER type represents a 32-bit signed integer value between -2147483648 and

2147483647. BIGINT type represents an 64-bit signed integer value between 9223372036854775808 and 9223372036854775807. These MySQL TINYINT, SMALLINT, INTEGER, and BIGINT types can be mapped to Java's byte, short, int and long data types respectively. 6. REAL, FLOAT and DOUBLE The MySQL REAL represents a "single precision" floating point number that supports seven digits of mantissa and the FLOAT and DOUBLE type represents a "double precision" floating point number that supports 15 digits of mantissa. The recommended Java mapping for REAL type to Java float and FLOAT, DOUBLE type to Java double. 7. DATE, TIME and TIMESTAMP These three MySQL types are related to time. The DATE type represents a date consisting of day, month, and year, the TIME type represents a time consisting of hours, minutes, and seconds and the TIMESTAMP type represents DATE plus TIME plus a nanosecond field. The standard Java class java.util.Date that provides date and time information but does not match any of these three MySQL date/time types exactly, because it has DATE and TIME information but no nanoseconds.

That's why we define three subclasses of java.util.Date. These are:

java.sql.Date for SQL DATE information. java.sql.Time for SQL TIME information. java.sql.Timestamp for SQL TIMESTAMP information.

In java we have been provided with some classes and APIs with which we can make use of the database as we like. Database plays as very important role in the programming because we have to store the values somewhere in the back- end. So, we should know how we can manipulate the data in the database with the help of java, instead of going to database for a manipulation. We have many database provided like Oracle, MySQL etc. We are using MySQL for developing this application. In this section, you will learn how to connect the MySQL database with the Java file. Firstly, we need to establish a connection between MySQL and Java files with the help of MySQL driver . Now we will make our account in MySQL database so that we can get connected to the database. After establishing a connection we can access or retrieve data form MySQL database. We are going to make a program on connecting to a MySQL database, after going through this program you will be able to establish a connection on your own PC. Description of program: This program establishes the connection between MySQL database and java files with the help of various types of APIs interfaces and methods. If connection is established then it shows "Connected to the database" otherwise it will displays a message "Disconnected from database". Description of code: Connection: This is an interface in java.sql package that specifies connection with specific database like: MySQL, Ms-Access, Oracle etc and java files. The SQL statements are executed within the context of the Connection interface. Class.forName(String driver): This method is static. It attempts to load the class and returns class instance and takes string type value (driver) after that matches class with given string. DriverManager: It is a class of java.sql package that controls a set of JDBC drivers. Each driver has to be register with this class. getConnection(String url, String userName, String password): This method establishes a connection to specified database url. It takes three string types of arguments like:

url: - Database url where stored or created your database userName: - User name of MySQL password: -Password of MySQL con.close(): This method is used for disconnecting the connection. It frees all the resources occupied by the database. printStackTrace(): The method is used to show error messages. If the connection is not established then exception is thrown and print the message. Here is the code of program:
import java.sql.*; public class MysqlConnect{ public static void main(String[] args) { System.out.println("MySQL Connect Example."); Connection conn = null; String url = "jdbc:mysql://localhost:3306/"; String dbName = "jdbctutorial"; String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String password = "root"; try { Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url+dbName,userName,password); System.out.println("Connected to the database"); conn.close(); System.out.println("Disconnected from database"); } catch (Exception e) { e.printStackTrace(); } }}

After establishing the connection with MySQL database by using the JDBC driver, you will learn how we can create our database. A database is a large collection of data or information stored in our computer in an arranged way. It helps us for accessing, managing and updating the data easily. In this example we are going to create a database by MySQL and with the help of some java methods and SQL statement. A RDBMS (Relational Database Management System) is a type of DBMS (Database Management System) which stores the data in the form of tables. So, we can view and use the same database in many different ways. Description of program: Firstly this program establishes the connection with MySQL database and takes a database name as its input in the database query and only after that it will create a new database and show a message "1 row(s) affected" otherwise, it displays "SQL statement is not executed!". Description of code: CREATE DATABASE db_name; Above code is used for creating a new database. It takes a database name and then a new database is created by that name. Here is the code of program:
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:");

10

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(); } } }

Output of program:

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

11

Database: A database is a large collection of data or information to stored in our computer in an arranged way. It helps us for accessing, managing and updating the data easily. In this example we are using MySQL database, which is a RDBMS. A RDBMS (Relational Database Management System) is a type of DBMS (Database Management System) which stores the data in the form of tables. RDBMS is very powerful as it doesn't need to aware how the data is related or how it is going to be extracted from the database. So, we can view the same database in many different ways. Table: A table is basic component of database (DB) that has number of rows and columns. All tables are stored in a specific database. Here we are providing you an example with code and it's description that helps you to create a database table by using java file. Brief description given below: Description of program: Firstly in this program we are going to establish the connection with database and creating a table with some fields. If table name already exists then we are displaying the message "Table already exists!". Description of code: Statement: It is a interface. Statement object executes the SQL statement and returns the result it produces. createStatement(): It is a method of Connection interface. which returns Statement object. This method will compile again and again whenever the program runs. CREATE TABLE table_name(field_name): An appropriate code used for creating a table with given field name. executeUpdate(String table): This method also executes SQL statement that may be INSERT, UPDATE OR DELETE statement are used in the code. It takes string types parameters for SQL statement. It returns int.

12

Here is the code of program:


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(); } } }

13

Dear user, consider a case where we need to store a java types in our database table. Now one question may arise in your mind that whether the MySQL supports java types or not. This section describes how to create a table in MySQL database that stores all java types. Here we are providing you an example with code for creating a table to store java types. Brief description is given below: Description of program: In this program we are going to establish the connection between MySQL database table and java file. After the connection has been established creates a database table for storing all java types. We have used most of the java types provided to us by the jdbc. Here is the code of program: 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, "

14

+ "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(); } } }

15

This section introduces you how to get the detailed information about the database table. As we all know that, table has some specific information like: field, type, null etc. But how to get all those information by the database. By using a simple query we can get all information about the table like the number of columns and rows in it, its type, whether the field is null or not, whether the column is unique or primary and much more. Description of program: While making this program firstly we should establish the connection with MySQL database through the JDBC driver. When the connection has been established, pass the table name in the database query and use some java methods to get the detail description of table. When the program will gets execute then it will show field name, type and null of the database table. If any field have null value then shows "YES" and if not null then shows "NO". If any problem is created at the time of query, it will show "SQL statement is not executed!". Description of code: DESCRIBE table_name; This code is used to know the brief description of a database table. It takes the name of that table of which we want to see the description. getColumns(String cat, String sche, String tab, String col_pat):: This method returns ResultSet object and provides descriptions of table. It takes four string type arguments as given below: String cat: This is a table catalog. It may be null value. String sche: It shows schema of table. It may be null value. String tab: This is a table name. It must require for getting the information. String col_pat: It shows column name pattern. COLUMN_NAME: Shows column name TYPE_NAME: data types of column like: integer, varchar, char etc. COLUMN_SIZE: Column size NULLABLE: column can be null. Here is the code of program:

16

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"); }

17

System.out.println(); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac DiscriptionTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java DiscriptionTable See Description of Table Example! Enter table name: vk Field Type Null Key Default Extra id int(11) NO name char(1) YES

18

Imagine a situation where we need to delete a table from the database. We can do it very easily by using the commands in the MySQL database. But how we can delete the table using java methods and API. In this section we are describing, how to delete a table from database using java methods. Java provides the facility for deleting a specific table from a given database with the help of some specified methods. See detailed information given below: Description of program: Create a class DeleteTable inside which, firstly establishes the connection with MySQL database. After establishing the connection we will delete a table from specific database. If the table which we want to delete get deletes then we will print the message "Table Deletion process is completely successfully!", otherwise it will display " Table is not exists!". Description of code: DROP TABLE table_name: Above code is used for deleting any table from a given database. Here is the code of program:
import java.sql.*; public class DeleteTable{ public static void main(String[] args) { System.out.println("Tabel Deletion 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(); st.executeUpdate("DROP TABLE Employee1"); System.out.println ("Table Deletion process is completly successfully!"); } catch(SQLException s){ System.out.println("Table is not exists!"); } con.close(); } catch (Exception e){ e.printStackTrace(); }}}

19

In database system it is very important to know about the tables. To work with this, it is very important to know how to retrieve a table and create a table in the database. This section provides you a facility for retrieving tables from a specific database through an example. In relational database, all the data is stored in the tabular format (rows and columns). See detail information below: Description of program: In this program we are establishing the connection between the MySQL database and Java file. We will retrieve the table with the help of some java methods and APIs interface. If the database has one or more tables then it shows all tables, otherwise displays the message "No any table in the database". Description of code: DatabaseMetaData: This is an interface of java.sql package that implemented by driver vendors. It tells about the data of the data like number of tables in the database , the information about the columns of the table. getMetaData(): It is a method of Connection interface. This method has metadata around the database and retrieves DatabaseMetaData object. ResultSet: The ResultSet is an interface that provides getter methods (getBoolean, getString, getTable and so on) for retrieving values. A ResultSet object is by default not updatable and forward only. getTables(null, null, "%", types): This method returns ResultSet and takes the following string types parameter: catalog : Table catalog name (may be null) schemaPattern : Table catalog name (may be null) tableNamePattern : Table name("%") types : Table type rs.next(): This method returns the next element of the ResultSet object.getString("Table name"): Above method retrieves the values from ResultSet object. It takes string type value.

20

Here is the code of program:


import java.sql.*; public class AllTableName{ public static void main(String[] args) { System.out.println("Listing all table name in Database!"); 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); con = DriverManager.getConnection(url+db, user, pass); try{ DatabaseMetaData dbm = con.getMetaData(); String[] types = {"TABLE"}; ResultSet rs = dbm.getTables(null,null,"%",types); System.out.println("Table name:"); while (rs.next()){ String table = rs.getString("TABLE_NAME"); System.out.println(table); con.close(); } } catch (SQLException s){ System.out.println("No any table in the database"); } } catch (Exception e){ e.printStackTrace(); } }}

21

Output of program:
C:\vinod\jdbc\jdbc-mysql>javac AllTableName.java C:\vinod\jdbc\jdbc-mysql>java AllTableName Listing all table name in Database! Table name: employee employee11 employee2 employee3 employee4 employee5 employee6 employee8 employee9 java_datatypes java_datatypes2 javatypes

22

After making the table in the database, we need to insert the values in the database. Here we are going to see, how we can insert values in the MySQL database table. We know that tables store data in rows and column format. After creating a database table, you need to insert the values in it. In this section, we are providing an example with code that provides the facility for inserting the values in MySQL database table. Description of program: First of all this program establishes the connection with MySQL database through the JDBC driver, after only that we will be able to insert the values in specific table with the help of some APIs and methods. If any values get inserted in the table then shows a message "1 row affected" but if any problems comes while inserting the data in the table then it will displays the message "SQL statement is not executed!". Description of code: INSERT table_name VALUES(field_values): Above code is used, when you want to insert values in the database table with appropriate value. Here is the code of program:
import java.sql.*; public class InsertValues{ public static void main(String[] args) { System.out.println("Inserting values in Mysql database table!"); Connection con = null; String url = "jdbc:mysql://localhost:3306/"; String db = "jdbctutorial"; String driver = "com.mysql.jdbc.Driver"; try{ Class.forName(driver); con = DriverManager.getConnection(url+db,"root","root"); try{ Statement st = con.createStatement(); int val = st.executeUpdate("INSERT employee VALUES("+13+","+"'Aman'"+")"); System.out.println("1 row affected"); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); }} catch (Exception e){ e.printStackTrace();

23

} } }

Output of program:

C:\vinod\jdbc\jdbc\jdbc-mysql>javac InsertValues.java C:\vinod\jdbc\jdbc\jdbc-mysql>java InsertValues Inserting values in Mysql database table! 1 row affected

24

Here, you will learn how to retrieve all rows from a database table. You know that table contains the data in rows and columns format. If you want to access the data from a table then you need to use some APIs and methods. See brief descriptions for retrieving all rows from a database table as below: Description of program: Program establishes the connection between MySQL database and java file so that the we can retrieve all data from a specific database table. If any exception occurs then shows a message "SQL code does not execute.". Description of code: executeQuery(String sql): This method executes the SQL statement and returns a single ResultSet object. It takes string type parameter for executing the SQL statement. SELECT * FROM table_name: Above code retrieves all data from specific database table. getInt(String column_name): This method is of java.sql.ResultSet interface that takes string type parameter and returns an integer type values. getString(String column_name): This method is same as getInt() method but it returns the string type values. Here is the code of program:
import java.sql.*; public class GetAllRows{ public static void main(String[] args) { System.out.println("Getting All Rows from a table!"); Connection con = null; String url = "jdbc:mysql://localhost:3306/"; String db = "jdbctutorial"; String driver = "com.mysql.jdbc.Driver";

25

String user = "root"; String pass = "root"; try{ Class.forName(driver).newInstance(); con = DriverManager.getConnection(url+db, user, pass); try{ Statement st = con.createStatement(); ResultSet res = st.executeQuery("SELECT * FROM employee6"); System.out.println("Emp_code: " + "\t" + "Emp_name: "); while (res.next()) { int i = res.getInt("Emp_code"); String s = res.getString("Emp_name"); System.out.println(i + "\t\t" + s); } con.close(); } catch (SQLException s){ System.out.println("SQL code does not execute."); } } catch (Exception e){ e.printStackTrace(); }}}

Output of program:
C:\vinod\jdbc\jdbc-mysql>java GetAllRows Getting All Rows from a table! Emp_code: Emp_name: 10 vinod 11 Amar 15 Aman 1 sushil

26

After creating a database table, if we want to know number of rows in a table then we can get it very easily by using the simple database query. See brief description below: Description of program: For this program to work firstly we need to establish the connection with MySQL database by the help of JDBC driver. When the connection has been established we need to pass a table name from the given database in the query and the rows will be counted and the result will be displayed. If any exception is thrown then it will show "SQL statement is not executed!" Description of code: SELECT COUNT(*) FROM table_name; This code is used to count the rows of given table. table_name: It is a name of the table of which we want to see the rows. Here is the code of program:
import java.io.*; import java.sql.*; public class CountRows{ public static void main(String[] args) { System.out.println("Count number of rows in a specific table!"); Connection con = null; int count = 0; 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 res = st.executeQuery("SELECT COUNT(*) FROM "+table); while (res.next()){ count = res.getInt(1); } System.out.println("Number of column:"+count); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } }

27

catch (Exception e){ e.printStackTrace(); } } }

output of program:

C:\vinod\jdbc\jdbc\jdbc-mysql>javac CountRows.java C:\vinod\jdbc\jdbc\jdbc-mysql>java CountRows Count number of rows in a specific table! Enter table name: student Number of column:6

28

Here we are providing you an example with code that retrieves all columns name in a specific database table. Sometimes, you need to know the number of columns and the names of the columns of the table, so you can retrieve it with the help of this example. See detail information given below: Description of program: Create a class ColumnName. The name of the class should be such that the other person can easily understand what this program is going to do. Strictly follow the naming conventions of java. Now declare a static method inside which creates the connection with MySQL database through the JDBC driver. After establishing the connection then you get all columns name and number of columns of specified table with the help of some APIs and methods. Description of code: ResultSetMetaData: This is an interface of java.sql package that can be used for getting information about types and properties of columns in a ResultSet object. getColumnCount(): Above method retrieves number of columns (integer types data) in the ResultSet object. getColumnName(int column): This method returns columns name (string type data) from ResultSetMetaData object and takes integer type value. Here is the code of program:

29

import java.sql.*; public class ColumnName{ public static void main(String[] args) { System.out.println("Getting Column Names Example!"); 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); con = DriverManager.getConnection(url+db, user, pass); try{ Statement st = con.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM employee6"); ResultSetMetaData md = rs.getMetaData(); int col = md.getColumnCount(); System.out.println("Number of Column : "+ col); System.out.println("Columns Name: "); for (int i = 1; i <= col; i++){ String col_name = md.getColumnName(i); System.out.println(col_name); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

30

Output of program:

C:\vinod\jdbc\jdbc-mysql>javac ColumnName.java C:\vinod\jdbc\jdbc-mysql>java ColumnName Getting Column Names Example! Number of Column : 2 Columns Name: Emp_code Emp_name

31

In this jdbc tutorial program we are going to learn about adding a new column in database table. Sometimes it happens that we have created a table and forgets to add some important column name into it. Later while retrieving the data from that table we come to know that the table doesn't contains that particular column we are searching for. So there is no need to get panic. We have the solution for this, we are describing it with the help of the simple example. Brief description given below: Description of program: Firstly we need to create a connection with the help of JDBC driver for connecting to the MySQL database. Remember, in this program we are going to add columns to an existing database table. After establishing the connection, it takes table name, column name and it's data type and at last add a new column in the table. If the column gets inserted or added in the table then it shows "Query OK, n rows affected" otherwise it will displays a message "Table or column or data type is not found!". Description of code: ALTER TABLE table_name ADD col_name data_type; Above code is used for adding a new column in the database table and takes appropriate attributes: table_name: This is a table name in which you want to add a new column name. col_name: It is a name of the column that you want to add in a table. data_type: This is a data type of new column. Here is the code of program:
import java.io.*; import java.sql.*; public class AddColumn{ public static void main(String[] args) { System.out.println("Adding new column in 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();

32

System.out.println("Enter column name:"); String col = bf.readLine(); System.out.println("Enter data type:"); String type = bf.readLine(); int n = st.executeUpdate("ALTER TABLE "+table+" ADD "+col+" "+type); System.out.println("Query OK, "+n+" rows affected"); } catch (SQLException s){ System.out.println("Tabel or column or data type is not found!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: Student Table


Stu_id 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy

Output of program:

C:\vinod\jdbc\jdbc\jdbc-mysql>javac AddColumn.java C:\vinod\jdbc\jdbc\jdbc-mysql>java AddColumn Adding new column in table example! Enter table name: Student Enter column name: Stu_marks Enter data type: integer Query OK, 4 rows affected

33

After adding a new column: Student Table


Stu_idl 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy Stu_marks NULL NULL NULL NULL

34

This section provides you an example with code for renaming a column name in a database table. As we know that each table keeps contents in rows and column format. While making a table we specify the name of each column which we want to add in the table. But later it may be that we need to change the name of the particular column. So, please don't panic. Here at roseindia.net, we have the answer of each and every thing. Brief description of the program is given below: Description of program: Firstly this program establishes the connection by using the JDBC driver with the database. After establishing the connection we will give the table name, old column name which we want to rename, new column name and it's data type. After that you will see that the column name has been renamed. If column name gets renamed column then the message we displaying is "Query OK, n rows affected" and if any problem arises in the SQL statement then it shows "Wrong entry!". Description of code: ALTER TABLE table_name CHANGE old_col new_col data_type: This query is fired to change the specific column name. It takes appropriate arguments: table_name: This is a name of the table in which we have to change the column name. old_col: The old column name that you want to change. new_col: The new column name data_type: This is a data type of new column. Here is the code of program:
import java.io.*; import java.sql.*; public class ChangeColumnName{ public static void main(String[] args) { System.out.println("Change column name in a database 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();

35

System.out.println("Enter old column name:"); String old_col = bf.readLine(); System.out.println("Enter new column:"); String new_col = bf.readLine(); System.out.println("Enter data type:"); String type = bf.readLine(); int n = st.executeUpdate ("ALTER TABLE "+table+" CHANGE "+old_col+" "+new_col+" "+type); System.out.println("Query OK, "+n+" rows affected"); } catch (SQLException s){ System.out.println("Wrong entry!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: Student


Stu_roll 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy

36

Output of program:

C:\vinod\jdbc\jdbc\jdbc-mysql>javac ChangeColumnName.java C:\vinod\jdbc\jdbc\jdbc-mysql>java ChangeColumnName Change column name in a database table example! Enter table name: Student Enter old column name: Stu_roll Enter new column: Stu_id Enter data type: integer Query OK, 4 rows affected

After change the table will look like this Student Table
Stu_id 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy

37

In this section you will learn, how to define a unique key in a column of a database table. While declaring unique key in a column we should check whether this column is eligible to store a unique values or not because if the column has been declared as unique then it can't store a duplicate values. If we ever try to insert the duplicate data in the unique column then it will show an error message to you that you are trying to insert the duplicate value. Description of program: After making a connection with the database firstly compile this program, only after that it will run, Now give the table name and column name to which you want to make a unique column. After assigning the unique key to a column the SQL statement is executed with the help of some java methods. If column name becomes unique then shows "Query OK, n rows affected." otherwise, displays a message "Table or column is not found!". Description of code: ALTER TABLE table_name ADD UNIQUE(col_name):; Above code is used to make unique of any column . It takes table name and column name. Here is the code of program:
import java.io.*; import java.sql.*; public class MakeUniqueColumn{ public static void main(String[] args) { System.out.println("Make unique column 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(); System.out.println("Enter column name that you want to unique values: "); String col = bf.readLine(); int n = st.executeUpdate("ALTER TABLE "+table+" ADD UNIQUE"+"("+col+")"); System.out.println("Query OK, "+n+" rows affected."); } catch (SQLException s){ System.out.println("Table or column is not found!"); }}

38

catch (Exception e){ e.printStackTrace(); }}}

Database Table: Student Table


Stu_id 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy Stu_marks NULL NULL NULL NULL

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac MakeUniqueColumn.java C:\vinod\jdbc\jdbc\jdbc-mysql>java MakeUniqueColumn Make unique column example! Enter table name: Student Enter column name that you want to unique values: Stu_id Query OK, 4 rows affected.

Make unique values: Student Table


Stu_id 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy Stu_marks NULL NULL NULL NULL

39

In this section, we will see how to remove unique field of the particular column in a database table. We know that, any table stores data in the form of rows and columns. In a table we can have a unique key which can be used to relate the data with the other table. But, what if we want to remove the unique key from the unique column then those unique values in the unique column will also gets deletes. By removing the unique key there will be redundancy in the data. Description of program: What this program does in its initial stage is to establish the connection with MySQL database by using the JDBC drive, only after that it will take a table name and column name from which we want to remove the unique key. If the unique key gets removes from the column then it shows "Query OK, n rows affected.". It means, that now this column can have repeated data. Description of code: ALTER TABLE table_name DROP INDEX col_name; This code is used for removing the unique key from the particular column in the database table. In this query we will give table and column name from which we to want remove the unique key. Here is the code of program:
import java.io.*; import java.sql.*; public class RemoveUniqueColumn{ public static void main(String[] args) { System.out.println("Remove unique column 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(); System.out.println("Enter column name which has unique values: "); String col = bf.readLine(); int n = st.executeUpdate("ALTER TABLE "+table+" DROP INDEX "+col); System.out.println("Query OK, "+n+" rows affected.");

40

} catch (SQLException s){ System.out.println("Table or column is not found!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: Student Table


Stu_id 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy Stu_marks NULL NULL NULL NULL

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac RemoveUniqueColumn.java C:\vinod\jdbc\jdbc\jdbc-mysql>java RemoveUniqueColumn Remove unique column example! Enter table name: Student Enter column name which has unique values: Stu_id Query OK, 5 rows affected.

41

After removing the unique column from Database Table: Student Table
Stu_id 100 101 102 103 104 103 Stu_name vinod raju ranjan Aman manoj Aman Stu_sub computer math bio phy che phy Stu_marks NULL NULL NULL NULL 50 85

42

This section will provide you the facility for arranging the data of database table in ascending order. Firstly we should know what is the meaning of ascending order. The ascending order means an arrangement of data from smallest to largest number in sequence like: 3,6,8,19,21,......... Here we are going to give an example to arrange the data of a column in ascending order with the help of some java method and APIs. See detailed information below: Description of program: Firstly we are going to establish the connection with the MySQL database. After the connection has been established we need to give a table name and column name which have to be in ascending order. If data gets arranged in ascending order then shows "Ascending order of given column:" with it's arranged data and if any problem arises to in this process then shows a message "SQL statement is not executed!". Description of code: SELECT col_name FROM table_name ORDER BY col_name ASC : This query shows data of a column in ascending order of the specific database table. The SELECT specifies the table columns that are retrieved. The FROM clause tells from where the tables has been accessed. The ORDER BY clause needed to us whenever, we want to sort the data of any column of the table. The ASC clause is used to arrange data in ascending order. It takes column name and table name as its input. col_name: This is a column name of a table which have to see in the ascending order. table_name: This is a table name. Here is the code of program:
import java.io.*; import java.sql.*; public class ColumnAscOrder{ public static void main(String[] args) { System.out.println("Ascending order example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root");

43

try{ Statement st = con.createStatement(); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter table name:"); String table = bf.readLine(); System.out.println("Enter column name which have to see ascending order:"); String col_name = bf.readLine(); ResultSet res = st.executeQuery ("SELECT "+col_name+" FROM "+table+" ORDER BY "+col_name+" ASC"); System.out.println("Ascending order of given column:"); while (res.next()){ int col = res.getInt(1); System.out.println(col); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac ColumnAscOrder.java C:\vinod\jdbc\jdbc\jdbc-mysql>java ColumnAscOrder Ascending order example! Enter table name: emp_sal Enter column name which have to see ascending order: Emp_sal Ascending order of given column: 600 4500 5000 8000 10000

44

This section provides an example with code that arrange the records of database table in descending order. The descending order provides a way for arranging records from largest to smallest in a sequence like: 100,85,45,12,......... See detail information below: Description of program: First of all in this program we are will establish the connection with MySQL database. As soon as the connection gets established it takes a table name and column name which we want to see in descending order. If the data gets arranged in descending order then it we are going to display the message "Descending order of given column:"........... otherwise shows a message "SQL statement is not executed!". Description of code: SELECT col_name FROM table_name ORDER BY col_name DESC: This query helps us to arrange the records of database table in descending order. The SELECT specifies the table columns that are retrieved. The FROM clause tells from where the tables has been accessed. The ORDER BY clause needed to us whenever, we want to sort the data of any column of the table. The DESC clause provides the facility to arrange the data in descending order (decrease order). Here is the code of program:
import java.io.*; import java.sql.*; public class ColumnDescOrder{ public static void main(String[] args) { System.out.println("Descending order 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(); System.out.println("Enter column name which have to see descending order:");

45

String col_name = bf.readLine(); ResultSet res = st.executeQuery ("SELECT "+col_name+" FROM "+table+" ORDER BY "+col_name+" DESC"); System.out.println("Descending order of given column:"); while (res.next()){ int col = res.getInt(1); System.out.println(col); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac ColumnDescOrder.java C:\vinod\jdbc\jdbc\jdbc-mysql>java ColumnDescOrder Descending order example! Enter table name: emp_sal Enter column name which have to see descending order: Emp_sal Descending order of given column: 10000 8000 5000 4500 600

46

This section describes how we can calculate the sum of specific column data in the database table. Consider an example of any university where we need to calculate the sum of numbers achieved by the student. Either we can do it manually or by using just the simple query. By doing it manually is a very cumbersome work, but by using simple query it can be done very easily. By seeing the example given below you can easily understand how you can get the sum of specific column. Here we are providing you an example. Description of program: In the program the first task we going to do is to establish the connection with MySQL database by using the JDBC driver. When the connection has been established pass the table name and name of that column of which we want to calculate the sum. If the statement gets processed then it shows the sum of the particular column else it will displays a message "SQL statement is not executed!". Description of code: SELECT SUM(col_name) FROM table_name: This code can be used to calculate the sum of specific column in database table. Here is the code of program:
import java.io.*; import java.sql.*; public class SumColumn{ public static void main(String[] args) { System.out.println("Sum of the specific column!"); Connection con = null; int sum = 0; String col_name; 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(); System.out.println("Enter column name which have to sum:"); String col = bf.readLine(); ResultSet res = st.executeQuery("SELECT SUM"+"("+col+")"+" FROM "+table); while (res.next()){

47

int c = res.getInt(1); sum = sum+c; } System.out.println("Sum of column = "+sum); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac SumColumn.java C:\vinod\jdbc\jdbc\jdbc-mysql>java SumColumn Sum of the specific column! Enter table name: emp_sal Enter column name which have to sum: Emp_sal Sum of column = 28100

48

Consider a case where we have been given one database table, now we have to delete all the rows from the table. This section describes for deleting all rows from a specific database table. Deleting all rows with the help of some java methods and APIs interfaces that is given below: Description of program: This program establishes the connection between the MySQL database and java file with the help of a jdbc driver. After that deletes all rows by the SQL statement and shows a message "All rows are completely deleted!". If SQL statement is not executed then displays "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class DeleteAllRows{ public static void main(String[] args) { System.out.println ("Example for Deleting All Rows from a database Table!"); 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(); String sql = "DELETE FROM employee6"; int delete = st.executeUpdate(sql); if(delete == 0){ System.out.println("All rows are completelly deleted!"); } } catch(SQLException s){ System.out.println("SQL statement is not executed!"); }} catch (Exception e){ e.printStackTrace(); } }}

49

Consider a case where we are creating a table and we have to add some data in it. It may happen that we might add a wrong data in a row, now we need to delete that wrong data. This can be done very easily, and in this section we are going to do the same that is, how to delete a specific row from a specific database table. Here is an example with code which provides the facility for deleting specific row in a database table. Sometimes, you want to delete a specific row then you use some java methods and APIs interfaces. Detail information given below: Description of program: Firstly, in this program we are going to establish the connection by using MySQL database. After establishing the connection we are going to delete a specific row from the table. If the row get deletes successfully then it will shows an appropriate message: "Row is deleted.". If the row doesn't gets deleted then displays a message: "Row is not deleted". If there arises any problem while establishing the connection or there doesn't exist the table by that name or there is no data in the table then the exception will be thrown that "SQL statement is not executed". If any problems occurs while making connection then system displays a message with the help of java.lang.ClassNotFoundException exception. Description of code: DELETE FROM employee6 WHERE Emp_code = '1': Above code deletes the record in the employee6 table which has Emp_code = '1'. employee6: This is a table name of a specific database. Emp_code: It specifies the column name of a specific database table. '1': This is the value of specified column name. Here is the code of program:
import java.sql.*; public class DeleteSpecificRow{ public static void main(String[] args) { System.out.println("An example for Deleting a Row from a Database!"); Connection con = null; String url = "jdbc:mysql://localhost:3306/"; String driver = "com.mysql.jdbc.Driver"; String db = "jdbctutorial"; try{

50

Class.forName(driver); con = DriverManager.getConnection(url+db, "root", "root"); try{ Statement st = con.createStatement(); String sql = "DELETE FROM employee6 WHERE Emp_code = '1'"; int delete = st.executeUpdate(sql); if(delete == 1){ System.out.println("Row is deleted."); } else{ System.out.println("Row is not deleted."); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

51

In this section, we are going to learn how to delete a column from a database table. We are not going to create a new table into, and we are expecting that you can make a table yourself. We are using the already created table in the specific database. Now if we want to delete a column from a database table then we have been provided with the database query by which we can do this task very easily. See detailed information below: Description of program: The thing which we are going to perform first is to establish the connection by using the JDBC driver. If any problem is created at the time of connection then it shows java.lang.ClassNotFoundException exception. After establishing the connection gives a table name and column name which you want to delete. When column gets deleted then it shows "Column is deleted successfully". But if SQL statement doesn't get executed then an exception is thrown and displays a message: "Table or column is not found!". Description of code: ALTER TABLE table_name DROP col_name; This code is used to delete the column form a database table table_name: This is a table name in which you want to any editing. col_name: This is a column name which have to deleted. Here is the code of program:
import java.io.*; import java.sql.*; public class DeleteColumn{ public static void main(String[] args) { System.out.println("Delete columns 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(); System.out.println("Enter column name: "); String col = bf.readLine(); st.executeUpdate("ALTER TABLE "+table+" DROP "+col); System.out.println("Column is deleted successfully!");

52

} catch (SQLException s){ System.out.println("Table or column is not found!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: Student Table


Stu_roll 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy Stu_marks 95 89 80 85

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac DeleteColumn.java C:\vinod\jdbc\jdbc\jdbc-mysql>java DeleteColumn Delete columns example! Enter table name: Student Enter column name: Stu_marks Column is deleted successfully!

53

After deleting a column: Student Table


Stu_roll 100 101 102 103 Stu_name vinod raju ranjan Aman Stu_sub computer math bio phy

54

Consider a case, where there is too many records and tables in a database. Now to retrieve a particular row from a table or database is a very time consuming. So, what the alternative to that, divide the table in more than one table. In this section, we are going to see how to join two or more tables in a specific database. For this you need to have two or more table in the database. If two or more tables are available in the database then Join operation is performed otherwise not. Firstly, it is important to know about the join operation. Join operation provides the facility to combine records between two or more tables. It relates one table to another. Joining is the type of query for retrieving data two or more table in specific database. You can join the tables various types like: Natural join, Natural left join, Natural right join and so on. Here we are providing you an example with code that joins two tables through the NATURAL JOIN. Brief information given below: Join: A join provides the facility to connect two tables are merged to each other according to field that is common and creates a new virtual table. NATURAL JOIN: It is a type of join that retrieves data within specified tables to specific field is matched. NATURAL LEFT JOIN: In this operation both tables are merged to each other according to common fields but the priority is given to the first table in database. NATURAL RIGHT JOIN: It also same as Natural left join but it retrieves the data from the second table in the database. Description of program: First of all, this program establishes the connection with MySQL database through the JDBC driver. After establishing the connection the NATURAL JOIN operation is performed within two tables say: employee and Emp_sal. The employee table holds the Emp_ed and Emp_name fields and Emp_sal table contains the Emp_name and Emp_sal. We are making use of the emp_name to join the tables. Description of code: SELECT *FROM employee NATURAL JOIN Emp_sal: This code is used to show all fields that matches in the both tables on the basis of Emp_name field.

55

Here is the code of program:


import java.sql.*; public class NatJoinTable{ public static void main(String[] args) { System.out.println("Natural Join Tables 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(); ResultSet res = st.executeQuery ("SELECT *FROM "+"employee"+" NATURAL JOIN "+"Emp_sal"); //Join two tables System.out.println("Emp_name" + "\t" + "Emp_ed" + "\t" + "Emp_sal"); while(res.next()){ String name = res.getString("Emp_name"); int ed = res.getInt("Emp_ed"); int sal = res.getInt("Emp_sal"); System.out.println(name + "\t\t" + ed + "\t" + sal); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Download this example. Table:- employee:


Emp_ed Emp_name 2 santosh

10 13

deepak Aman

56

Table:- Emp_sal:
Emp_name Emp_sal Aman 8000

santosh

4500

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac NatJoinTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java NatJoinTable Natural Join Tables Example! Emp_name Emp_ed Emp_sal santosh 2 4500 Aman 13 8000

57

This section describes the NATURAL LEFT JOIN operation and how to retrieve data through it. In this operation we are going to retrieve data according to match the field name of another tables. NATURAL LEFT JOIN: In this operation both tables are merged to each other according to common fields but the priority is given to the first table in database. Description of program: In this program we are going to establish the connection with MySQL database by using the JDBC driver, after that we will join two tables through the help of NATURAL LEFT JOIN operation. It retrieves data on the specific field name that matches in both tables. Description of code: SELECT *FROM employee NATURAL LEFT JOIN Emp_sal: Above code retrieves all data that matches in both tables on the basis of Emp_name field. Here is the code of program:
import java.sql.*; public class NatLeftJoinTable{ public static void main(String[] args) { System.out.println("Natural Left Join Tables 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(); ResultSet res = st.executeQuery ("SELECT *FROM "+"employee"+" NATURAL LEFT JOIN "+"Emp_sal"); //Natural Left Join two tables System.out.println("Emp_name" + "\t" + "Emp_ed" + "\t" + "Emp_sal"); while(res.next()){

58

String name = res.getString("Emp_name"); int ed = res.getInt("Emp_ed"); int sal = res.getInt("Emp_sal"); System.out.println(name + "\t\t" + ed + "\t" + sal); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Table:- employee:
Emp_ed Emp_name 2 santosh

10 13

deepak Aman

Table:- Emp_sal:
Emp_name Emp_sal Aman 8000

santosh

4500

59

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac NatLeftJoinTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java NatLeftJoinTable Natural Left Join Tables Example! Emp_name Emp_ed Emp_sal santosh 2 4500 deepak 10 0 Aman 13 8000

60

This section describes the NATURAL RIGHT JOIN operation of table in a specific database. This operation join tables on the basis of matching fields but priority will be given to the right table field values. Here we are providing you an example with code to join the tables through the NATURAL RIGHT JOIN operation. See detail information given below: NATURAL RIGHT JOIN: It also same as Natural left join but it retrieves the data from the second table in the database.
Description of program:

Firstly, this program establishes connection with MySQL database through the JDBC driver. After establishing the connection the NATURAL RIGHT JOIN operation is performed and join tables. Program has two tables: employee and Emp_sal. Both tables have some fields and join tables on the basis of matching field. Here we will see for joining the tables with Emp_name filed's values and priority to second table (Emp_sal). Description of code: SELECT *FROM employee NATURAL RIGHT JOIN Emp_sal: This code is used to retrieve data from both tables that is matching on the tables field. In NATURAL RIGHT JOIN operation join tables to priority of second table. Here is the code of program:
import java.sql.*; public class NatRightJoinTable{ public static void main(String[] args) { System.out.println("Natural Right Join Tables 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(); ResultSet res = st.executeQuery ("SELECT *FROM "+"employee"+" NATURAL RIGHT JOIN "+"Emp_sal"); //Natural Right Join two tables System.out.println("Emp_name" + "\t" + "Emp_ed" + "\t" + "Emp_sal"); while(res.next()){ String name = res.getString("Emp_name"); int ed = res.getInt("Emp_ed"); int sal = res.getInt("Emp_sal");

61

System.out.println(name + "\t\t" + ed + "\t" + sal); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Download this example. Table:- employee:


Emp_ed Emp_name 2 santosh

10 13

deepak Aman

Table:- Emp_sal:
Emp_name Emp_sal Aman 8000

santosh

4500

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac NatRightJoinTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java NatRightJoinTable Natural Right Join Tables Example! Emp_name Emp_ed Emp_sal Aman 13 8000 santosh 2 4500

62

This section introduces you to the cross join between two tables. The cross join operation retrieves data between two tables as a Cartesian product of set theory in mathematics. Each row will get multiplied by other rows. If one table has three rows and the second row has two rows, then the cartesian of two table will be six. See brief description below: Cross Join: This is a type of join table operation. It is a same as inner and outer join operation. The cross join is used to retrieve data from tables as Cartesian product format of set theory in mathematics. All rows are shown to be multiply by to another tables' rows. Description of program: First of all this program establishes the connection, after that the cross join operation will be performed between two tables. Both tables hold some specific fields and it's values. While you retrieve data in cross join format, it shows that the each row will get multiply by other rows. Description of code: SELECT *FROM employee, Emp_sal : This code is used to retrieve data form both tables as Cartesian product format (multiply the field to each other). Here is the code of program:
import java.sql.*; public class CrossJoinTable{ public static void main(String[] args) { System.out.println("Natural Left Join Tables 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(); ResultSet res = st.executeQuery ("SELECT *FROM "+"employee"+","+"Emp_sal"); //Cross Join two tables System.out.println("Emp_name" + "\t" + "Emp_ed" + "\t" + "Emp_sal"); while(res.next()){ String name = res.getString("Emp_name"); int ed = res.getInt("Emp_ed"); int sal = res.getInt("Emp_sal"); System.out.println(name + "\t\t" + ed + "\t" + sal); }

63

} catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Table:- employee:
Emp_ed Emp_name 2 santosh

10 13

deepak Aman

Table:- Emp_sal:
Emp_name Emp_sal Aman 8000

santosh

4500

Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac CrossJoinTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java CrossJoinTable Natural Left Join Tables Example! Emp_name Emp_ed Emp_sal santosh 2 8000 santosh 2 4500 deepak 10 8000 deepak 10 4500 Aman 13 8000 Aman 13 4500

64

In JDBC tutorial we are going to learn about the PreparedStatement and how to use with setObject method. PreparedStatement: This is an interface of java.sql package which extends Statement interface. If you want to execute Statement object many times then we should use PreparedStatement object as it reduces the execution time. PreparedStatement object is faster than the Statement object as it is precompiled. In PreparedStatement we use IN parameter whose values are not known when the Sql statement is created. So we use "?" as a IN parameter and we also know it by the name of parameter marker. In this interface the modification has been done on the methods execute, executeQuery and executeUpdate. These methods are modified in such a way so that they take no argument. Description of program: In this program we are going to insert data in the database by using the setObject method of PreparedStatement interface. Before going into the details of the program we should firstly need to establish the connection with MySQL database by the help of JDBC driver. After establishing the connection now we will insert the data in setObject method. If the data gets added in the database table then it will display a message "Record is added in the table." otherwise it will show "SQL statement is not executed!". Description of code: prepareStatement(String sql): This method returns the PreparedStatement object for sending the parameterized SQL statement to the database that contains the pre-compiled SQL statement. Here the precompiled means once the statement has been compiled then it will not compile the same thing again. It takes the string type arguments which contains one or more '?' parameter placeholders. setObject(int par_index, object obj): It is used for setting the values of parameterized index by using the given object in this method. It takes two arguments to given below: par_index: It specifies the parameter like: the first is 1, second is 2, ...... object obj: It contains the parameter values to given by the users.

65

Here is the code of program:


import java.sql.*; public class PreparedStatementSetObject{ public static void main(String[] args) { System.out.println("Prepared Statement Set Array Example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ PreparedStatement prest = con.prepareStatement("insert emp_sal values(?,?)"); prest.setObject(1,"Sushil"); prest.setObject(2,15000); int n = prest.executeUpdate(); System.out.println(n + " Record is added in the table."); con.close(); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: emp_sal


Emp_name Emp_sal ghtdfgl Raja Ram 5455 545

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac PreparedStatementSetObject.java C:\vinod\jdbc\jdbc\PreparedStatement>java PreparedStatementSetObject Prepared Statement Set Array Example! 1 Record is added in the table.

66

After executing the program: Database Table: emp_sal


Emp_name Emp_sal ghtdfgl Raja Ram Sushil 5455 545 15000

67

In this section we are going to learn about the batch update and how to use it. Here, we are providing an example with code to execute the statement in a batch. Batch updates means more than one statements are executed or updates simultaneously in the database. In this process multiple SQL queries are added in the Statement object and update the records of database simultaneously. It is the new feature of JDBC 2.0 core API. See detailed description below: Description of program: In this program we are going to execute the multiple queries at a time. Firstly we are going to establish the connection with MySQL database by using the JDBC driver. When the connection has been established with the database then we will execute multiple SQL statement in a batch for updating the records. This program performs inserting and deleting the data in given tables. If both processes gets executed then it shows a message "Successfully!" and if any problem arises in the batch update then the exception will be thrown BatchUpdateException which shows a message "SQL statement is not executed!". Description of code: setAutoCommit(boolean bol): This method is used for setting the connection to auto-commit mode. If we are using false parameter in this method then the will not be added in the database until we call commit explicitly. By default auto-commit mode value is true. addBatch(String table): This method adds the given SQL statement with the Statement object. It takes String type arguments like SQL queries. executeBatch(): This method is used to execute the multiple commands in the database simultaneously. If it executes successfully then returns integer type array. commit(): If the auto-commit mode is disable then we this method provides the facility to commit all changes in the database.

68

Here is the code of program:


simport java.sql.*; public class StatementBatchUpdate{ public static void main(String[] args) { System.out.println("Prepared Statement Batch Update example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ con.setAutoCommit(false); String table1 = "INSERT emp_sal VALUES('vikash1',1200)"; String table2 = "DELETE FROM movies WHERE title = 'raja'"; Statement st = con.createStatement(); st.addBatch(table1); st.addBatch(table2); int count[] = st.executeBatch(); con.commit(); con.close(); System.out.println("Successfully!"); } catch (BatchUpdateException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

69

This section helps to use the PreparedStatement with BatchUpdate and we are going to provide an example that performs batch update facility. In batch update more than one records can be added in the database simultaneously by using the some java methods like: addBatch and executeUpdate. First of all we are going to describe the Batch Update. A batch update is a collection of multiple update statements that provides the facility for submitting in the database as a batch. Description of program: In this program firstly we have to establish the connection with MySQL database by using the JDBC driver. When the connection has been established we need to give the query in the prepareStatement method and it returns PreparedStatement object. The data is submitted in a batch by the addBatch method and updates it by using the executeBatch method of the PreparedStatement interface. If all records will get added in the database then it will display a message "Added Successfully!" and if any problem arises then it throws an BatchUpdateException and it shows "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class PreparedStatementBatchUpdate{ public static void main(String[] args) { System.out.println("Prepared Statement Batch Update Example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ con.setAutoCommit(false); String sql = "INSERT movies VALUES(?,?)"; PreparedStatement prest = con.prepareStatement(sql); prest.setString(1,"Bagal bali"); prest.setInt(2,2002); prest.addBatch();

70

prest.setString(1,"Raja Hindustani"); prest.setInt(2,1998); prest.addBatch(); prest.setString(1,"Diwar"); prest.setInt(2,1980); prest.addBatch(); prest.setString(1,"Nadia ke par"); prest.setInt(2,1975); prest.addBatch(); int count[] = prest.executeBatch(); con.commit(); con.close(); System.out.println("Added Successfully!"); } catch (BatchUpdateException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: movies


title alam ara Karan Karan year_made 1945 2005 2005

71

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac PreparedStatementBatchUpdate.java C:\vinod\jdbc\jdbc\PreparedStatement>java PreparedStatementBatchUpdate Prepared Statement Batch Update Example! Added Successfully!

After executing the program: Database Table: movies


title alam ara Karan Karan Bagal bali Raja Hindistani Diwar Nadia ke par year_made 1945 2005 2005 2002 1998 1980 1975

72

In this section we will learn how to select some specific records by using the PreparedStatement. We know that the PreparedStatement object represents a precompiled SQL statement. See brief information below: Description of program: In this program firstly we need to establish the connection with MySQL database by using the JDBC driver. After establishing the connection we pass the necessary SQL query in the prepareStatement method. This method returns the PreparedStatement object. According to the conditions given in the query the result will be displayed to the user. Here we are displaying all records between 1980 and 2004 in the movies database table and it displays the number of records that follows this conditions. If any problems arises in that process it shows a message "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class SelectRecords{ public static void main(String[] args) { System.out.println("Select Records Example by using the Prepared Statement!"); Connection con = null; int count = 0; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ String sql = "SELECT title,year_made FROM movies WHERE year_made >= ? AND year_made <= ?"; PreparedStatement prest = con.prepareStatement(sql); prest.setInt(1,1980); prest.setInt(2,2004); ResultSet rs = prest.executeQuery(); while (rs.next()){ String mov_name = rs.getString(1); int mov_year = rs.getInt(2); count++; System.out.println(mov_name + "\t" + "- " + mov_year); } System.out.println("Number of records: " + count); prest.close(); con.close(); }

73

catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: movies


title alam ara Karan Karan Bagal bali Raja Hindistani Diwar Nadia ke par year_made 1945 2005 2005 2002 1998 1980 1975

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SelectRecords.java C:\vinod\jdbc\jdbc\PreparedStatement>java SelectRecords Select Records Example by using the Prepared Statement! Bagal bali - 2002 Raja Hindustani - 1998 Diwar - 1980 Number of records: 3

74

The JDBC provides you the facility for updating the records. In this JDBC tutorial we are going to learn about the process of updating the records by using the PreparedStatement. Here arise a question, what is updating the records. In the case of relational database management system (RDBMS) we use the SQL "UPDATE" statement for updating the data in one or more records. See brief description below: Description of program: In this program we are going to establish the connection with MySQL database by using the JDBC driver. When the connection has been established then we pass a SQL statement with some conditions in it for selecting the specific records and pass this query in the prepareStatement method. This method returns an object of PreparedStatement. If the query gets executed then give a message "Updating Successfully!" otherwise it displays "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class UpdatesRecords{ public static void main(String[] args) { System.out.println("Updates Records Example through Prepared Statement!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ String sql = "UPDATE movies SET title = ? WHERE year_made = ?"; PreparedStatement prest = con.prepareStatement(sql); prest.setString(1,"Sanam We wafafa"); prest.setInt(2,2005); prest.executeUpdate(); System.out.println("Updating Successfully!"); con.close(); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); }}}

75

Database Table: movies


title alam ara Karan Karan Bagal bali Raja Hindistani Diwar Nadia ke par year_made 1945 2005 2005 2002 1998 1980 1975

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac UpdatesRecords.java C:\vinod\jdbc\jdbc\PreparedStatement>java UpdatesRecords Updates Records Example through Prepared Statement! Updating Successfully!

76

After executing the program: Database Table: movies


title alam ara Sanam We wafafa Sanam We wafafa Bagal bali Raja Hindistani Diwar Nadia ke par year_made 1945 2005 2005 2002 1998 1980 1975

77

In this section we are going to learn how we will insert the records in the database table by using the PreparedStatement interface of java.sql package. As we all know that in database all records are added in the table in a tabular format like: rows and columns. See brief description below: Description of program: This program will perform the work for inserting the records in 'movies' database table. For this, first of all we need to establish the connection with MySQL database by using the JDBC driver. When the connection has been established then we will pass a SQL statement in the prepareStatement that returns the PreparedStatement object. After setting the values of movie name and release year the values are inserted in the movies table by the help of executeUpdate method then it will show a message "row(s) affected" otherwise display "SQL statement is not executed!" . The executeUpdate method also executes the SQL statement (INSERT, UPDATE, DELETE) at the time of inserting, updating and deleting the records from the database table. Here is the code of program:
import java.io.*; import java.sql.*; public class InsertRecords{ public static void main(String[] args) { System.out.println("Insert records example using prepared statement!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT movies VALUES(?,?)"; PreparedStatement prest = con.prepareStatement(sql); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter movie name:"); String mov = bf.readLine(); prest.setString(1, mov); System.out.println("Enter releases year of movie:"); int year = Integer.parseInt(bf.readLine()); prest.setInt(2, year); int count = prest.executeUpdate(); System.out.println(count + "row(s) affected"); con.close(); } catch (SQLException s){ System.out.println("SQL statement is not executed!");

78

} } catch (Exception e){ e.printStackTrace(); } } }

Database Table: movies


title alam ara Bagal bali Diwar Nadia ke par Karan Ramayan Yarana Muhabte year_made 1945 2002 1980 1975 1996 1966 1988 1998

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac InsertRecords.java C:\vinod\jdbc\jdbc\PreparedStatement>java InsertRecords Insert records example using prepared statement! Enter movie name: Bagban Enter releases year of movie: 2003 1row(s) affected

79

After executing the program: Database table: movies table


title alam ara Bagal bali Diwar Nadia ke par Karan Ramayan Yarana Muhabte Bagban year_made 1945 2002 1980 1975 1996 1966 1988 1998 2003

80

In this section we will learn how to count all records of the database table by using the PreparedStatement interface of java.sql package. As we know that table keeps the records in tabular format like: rows and columns. A table has one or more records. If you will know that how many records in a database table then you get easily with the help of given program in RoseIndia.Net JDBC tutorial. See detailed information below: Description of program: This program helps us for counting the records of database table by using the PreparedStatement. For this, firstly we will establish the connection with MySQL database by using the JDBC driver. When connection has been established it takes a table name of database, only after that it will count the records of database table with the help of executeQuery method that returns a single ResultSet object and displays the number of records, otherwise it will show the message "SQL statement is not executed!". Here is the code of program:
import java.io.*; import java.sql.*; public class CountRecords{ public static void main(String[] args) { System.out.println("Count records example using prepared statement!"); Connection con = null; int records = 0; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter table name:"); String table = bf.readLine(); String sql = "SELECT COUNT(*) FROM "+table; PreparedStatement prest = con.prepareStatement(sql); ResultSet rs = prest.executeQuery(); while (rs.next()){ records = rs.getInt(1); } System.out.println("Number of records: " + records); con.close(); } catch (SQLException s){ System.out.println("Table does not exist in the database!"); } }

81

catch (Exception e){ e.printStackTrace(); } } }

Database Table: movies


title alam ara Sanam We wafafa Sanam We wafafa Bagal bali Diwar Nadia ke par Karan Ramayan Yarana Muhabte year_made 1945 2005 2005 2002 1980 1975 1996 1966 1988 1998

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac CountRecords.java C:\vinod\jdbc\jdbc\PreparedStatement>java CountRecords Count records example using prepared statement! Enter table name: movies Number of records: 10

82

This section helps us for deleting the records from the database table by using the PreparedStatement interface of the java.sql package. Sometimes, some records we have entered becomes useless after sometime so we need to delete those records. We can do it very easily by using the simple Sql query. The given example provides the facility for deleting the records from the database table. Brief description below: Please go through this example very carefully. Description of program: In this program we are going to delete the records from the 'movies' table that released in the year 1985. For this, first of all we will establish the connection with MySQL database by using the JDBC driver. After establishing the connection we will pass the SQL statement in the prepareStatemet method which returns the PreparedStatement object and we will set the releases year of movies in the setInt method by using the PreparedStatement object. If it records gets delete then the executeUpdate method will return the number of deleted records. This method will execute the SQL statement that may be INSERT, UPDATE or DELETE statement. If any problems arises with SQL statement then it will display a message "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class DeleteRecords{ public static void main(String[] args) { System.out.println("Delete records example using prepared statement!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ String sql = "DELETE FROM movies where year_made = ?"; PreparedStatement prest = con.prepareStatement(sql); prest.setInt(1,1985); int del = prest.executeUpdate(); System.out.println("Number of deleted records: " + del); con.close(); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); }}}

83

Database Table: movies


title alam ara Bagal bali Karan Bagban Kuch kuch hota hi Ham hi tumahare sanam year_made 1945 2002 1996 2003 1985 1985

Output of the program:


C:\vinod\jdbc\jdbc\PreparedStatement>javac DeleteRecords.java C:\vinod\jdbc\jdbc\PreparedStatement>java DeleteRecords Delete records example using prepared statement! Number of deleted records: 2

After executing the program: Database Table: movies


title alam ara Bagal bali Karan Bagban year_made 1945 2002 1996 2003

84

This JDBC tutorial helps us to use the PreparedStatement interface of java.sql package twice in a program. According to our requirement we can use the PreparedStatement object. The PreparedStatement object represents the precompiled SQL statement. Whenever, the SQL statement is precompiled then it stored in the PreparedStatement object which executes the statement many times and it reduces the time duration of execution. The PreparedStatement uses the '?' with SQL statement that provides the facility for setting an appropriate conditions in it. See brief description below: Description of program: In this program we are going to retrieve the movies name and it releases year from the 'movies' database table which releases in the year 2002 and 2003 by using the PreparedStatement object. For this to work, first of all we will establish the connection with MySQL database by using the JDBC driver. When the connection has been established then we will pass the SQL statement with some conditions in the prepareStatement method that returns the PreparedStatement object, after this only we will get the result according to our requirements. If any problem arises in this then it will display a message "SQL statement is not executed!". Here is the code program:
import java.sql.*; public class TwicePreparedStatement{ public static void main(String[] args) { System.out.println("Twice use prepared statement example!\n"); Connection con = null; PreparedStatement prest; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "SELECT * FROM movies WHERE year_made = ?"; prest = con.prepareStatement(sql); prest.setInt(1,2002); ResultSet rs1 = prest.executeQuery();

85

System.out.println("List of movies that made in year 2002"); while (rs1.next()){ String mov_name = rs1.getString(1); int mad_year = rs1.getInt(2); System.out.println(mov_name + "\t- " + mad_year); } prest.setInt(1,2003); ResultSet rs2 = prest.executeQuery(); System.out.println("List of movies that made in year 2003"); while (rs2.next()){ String mov_name = rs2.getString(1); int mad_year = rs2.getInt(2); System.out.println(mov_name + "\t- " + mad_year); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: movies


title alam ara Bagal bali Karan Bagban Ram Teri Ganga Maili year_made 1945 2002 1996 2003 2003

86

output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac TwicePreparedStatement.java C:\vinod\jdbc\jdbc\PreparedStatement>java TwicePreparedStatement Twice use prepared statement example! List of movies that made in year 2002 Bagal bali - 2002 List of movies that made in year 2003 Bagban - 2003 Ram Teri Ganga Maili - 2003

87

In this section we are going to learn the method for setting data types (String, int, float and double) in the PreparedStatement interface of java.sql package. We know that the data types of MySQL and java programming language are not same but we need some mechanism for transferring the data to each other Java and MySQL. Mapping between both java and MySQL provides the facility for supporting each data types like: Java data type MySQL data type int integer (INTEGER) double double, float (DOUBLE, FLOAT) float real (REAL) Description of program: Here, we are going to set some java data types by using the PreparedStatement with the help of this program. The program first of all establishes the connection with MySQL database through the JDBC driver. After establishing a connection the prepareStatement takes SQL query statement and then returns the PreparedStatement object. Now, we will set all data types like String, int, double and float by using some methods like: setString, setInt, setDouble and setFloat method. These methods set the data in the database table (student) individually according to it's nature that is supported by both java and MySQL. Data is then added in the database table (student) that can be seen in a message as "row(s) affected" otherwise a display phrase as "SQL statement is not executed!". Here is the code of program:
import java.sql.*; public class SetDataTypes{ public static void main(String[] args) { System.out.println("Set string,ingeger,double and float example by using the Prepared Statement!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT student VALUES(?,?,?,?)";

88

PreparedStatement prest = con.prepareStatement(sql); prest.setString(1,"deepak"); prest.setInt(2,95); prest.setDouble(3,32.50); prest.setFloat(4,41.52f); int row = prest.executeUpdate(); System.out.println(row + " row(s) affected)"); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } }}

Database Table: student


Stu_name raju virendra deepak Stu_marks (NULL) 86 95 Stu_ave (NULL) 35.255 32.5 Stu_total (NULL) 56.05 41.52

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetDataTypes.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetDataTypes Set string,ingeger,double and float example by using the Prepared Statement! 1 row(s) affected)

89

After executing the program: Database Table: student


Stu_name raju virendra deepak vinod Stu_marks (NULL) 86 95 86 Stu_ave (NULL) 35.255 32.5 47.52 Stu_total (NULL) 56.05 41.52 65.025

90

This tutorial teaches you the process of setting the byte, short and long data types in the PreparedStatement interface of the java.sql package. We know that the java and MySQL data types could not be same. But mapping is a mechanism to provide the facility for transferring the data to each other. For better understanding see the mapping between java and MySQL in the following explanation. Java data type MySQL data type byte tinyint (TINYINT) short smallint (SMALLINT) long bigint (BIGINT) Description of program: With the help of this program we are going to insert the byte, short and long data types in 'datatypes' table through the PreparedStatement interface of java.sql package. First of all, establish the connection with MySQL database by using the JDBC driver. After establishing the connection, it takes the SQL query in the prepareStatement and returns the PreparedStatement object. Now, we will insert different types of data like: byte, short and long by using the setByte, setShort and setLong methods. You will get the inserted data in the database table with a message "row(s) affected" otherwise it will display "SQL statement is not executed!". Description of code: setByte(int index, byte b): This method takes two arguments: integer and byte types. The integer type data defines the index and other takes bytes. It sets the arguments to the java byte value. When it sends the into the database then the JDBC driver switch over this into the SQL TINYINT value. setShort(int index, short s): Above method sets the arguments to java short value. When it sends the data into database then the JDBC driver switch to SQL SMALLINT value. It also takes two types arguments like: integer and short. setLong(int index, long l): The method used for setting the arguments to java long value. It takes integer and long types data. The JDBC driver sends the data into database to SQL BIGINT value.

91

Here is the code of program:


import java.sql.*; public class SetByteSortLong{ public static void main(String[] args) { System.out.println("Set Byte,short and long example by using Prepared Statement!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT datatypes VALUES(?,?,?)"; PreparedStatement prest = con.prepareStatement(sql); prest.setByte(1,(byte)5); prest.setShort(2,(short)65); prest.setLong(3,(long)254); int row = prest.executeUpdate(); System.out.println(row + " row(s) affected)"); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); }}}

Database Table: datatypes


d_type 7 8 10 d_smt 65 6565 6565 d_ 352 1556 1556

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetByteSortLong.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetByteSortLong Set Byte,short and long example by using Prepared Statement! 1 row(s) affected)

92

After executing the program: Database Table: datatypes


d_type 7 8 10 35 d_smt 65 6565 6565 6565 d_ 352 1556 1556 155645

93

In this JDBC section we are going to learn about the big decimal and how can be set it in the database table by using the PreparedStatement interface of java.sql package. But here arises a question, what is big decimal and which type to use this in the database. We know that using of both data types MySQL and Java programming language are not same. So mapping between both is essential to integrate to each other, here we will work on the big decimal data type in java to integrate in MySQL through the help of NUMERIC and DECIMAL data types. See detail description below: Description of program: In this program we are going to insert big decimal data type in the database table (bigdecimal) through the use of PreparedStatement interface. Here, first of all we need to establish the connection with MySQL database by using the JDBC driver. After establishing the connection we will give own query in the prepareStatement method that provides us the PreparedStatement object. Now we will add all data in the data according to database table (Records, sal) . The sal column contains the big decimal data types. When we will get added data in the database table then it will provide a message "Successfully!" otherwise it shows "SQL statement is not executed!". Description of code: BigDecimal(String val); This is the constructor of java.sql.BigDecimal class that takes one string type argument and translates it into a BigDecimal. setBigDecimal( int index, BigDecimal big); Above method takes integer type index number another is BigDecimal types number and sets an arguments to the given java.math.BigDecimal value. Here is the code of program:
import java.sql.*; import java.math.*; public class SetBigDecimal{ public static void main(String[] args) { BigDecimal str = null; System.out.println("Set BigDecimal Example!");

94

Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT bigdecimal VALUES(?,?)"; PreparedStatement prest = con.prepareStatement(sql); prest.setString(1,"Deepak"); str = new BigDecimal("54547751418641878415841554878454"); prest.setBigDecimal(2,str); prest.executeUpdate(); System.out.println("Successfully!"); } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetBigDecimal.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetBigDecimal Set BigDecimal Example! Successfully!

95

Database Table: bigdecimal


Records Rajesh Santhosh Tapan Deepak sal 5.45152565625456e+032 5.45155487845426e+040 5451554878454 5.45477514186419e+031

96

This JDBC tutorial helps us for setting date in the database table by using the PreparedStatement interface of java.sql package. Sometimes, if you want to insert the data into database table with date this will provide a setDate method to set the date in table. Here, we are going to provide an example with code for adding the date in table. See brief description below: Description of program: In this program we are going to insert the date in database table (Records) with the help of PreparedStatement interface. For this, we establish the connection firstly. After establishing the connection you need to insert an appropriate data according to Records table (Stu_roll, Stu_name and Admin_date) in prepareStatement method that returns the PreparedStatement object. Here we add date by using the setDate method. Finally we will get all data that are inserted into the database table (Records) and it will display a message "row(s) affected" otherwise it shows "SQL statement is not executed!". Description of code: setDate(int index, Date d): This method sets an arguments to java.sql.Date value. The JDBC driver converts java.sql.Date into SQL DATE value in the database. Here is the code of progam:
import java.sql.*; public class SetDate{ public static void main(String[] args) { System.out.println("Prepared statement set date example!"); Connection con = null; Date date = new Date(0000-00-00); try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ PreparedStatement prest = con.prepareStatement("INSERT Records VALUES(?,?,?)"); prest.setInt(1,001); prest.setString(2,"Raj kumar"); prest.setDate(3,date.valueOf("1998-1-17")); int row = prest.executeUpdate(); System.out.println(row + " row(s) affected");

97

} catch (SQLException s){ System.out.println("SQL stattement is not executed!"); } } catch (Exception e){ e.printStackTrace(); }}}

Database Table: Records


Stu_roll 1 Stu_name Raj kumar Santosh kashyap Rahul raj Admin_date 1998-01-17

1984-12-20

1974-08-27

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetDate.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetDate Prepared statement set date example! 1 row(s) affected

After executing the program: Database Table: Records


Stu_roll 1 2 2 3 Stu_name Raj kumar Admin_date 1998-01-17

Santosh kashyap 1984-12-20 Rahul raj vinod kumar 1974-08-27 1984-01-12

98

In this section you will learn about setting the time in database table by using the PreparedStatement interface of java.sql package. Suppose you want to insert the actual time in a table, here you will provide a setTime method for setting the time. See below for an example with code that insert the time in JDBC table. Description of program: This example helps us for setting the time in database table (child) by using the PreparedStatement interface. First of all we need to establish the connection with MySQL database through the help of JDBC deriver. After establishing the connection, we will insert our query in the prepareStatement method that returns the PreparedStatement object. With the help of this object we insert all data with time. Here, we will only insert the child name and born time by using the setString and setTime methods. Finally you will get all data that are added in the database table (child) and it will show "row(s) affected" otherwise it will display a message "SQL statement is not executed!". Description of code: setTime(int index, Time t); Above method takes integer type value and time type value. This method sets the arguments to java.sql.Time value that is converted into SQL TIME value. Here is the code program:
import java.sql.*; public class SetTime{ public static void main(String[] args) { System.out.println("Prepared Statement Set Time example!"); Connection con = null; Time time = new Time(00-00-00); try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql: //localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT child VALUES(?,?)"; PreparedStatement prest = con.prepareStatement(sql);

99

prest.setString(1,"vinod"); prest.setTime(2,time.valueOf("1:60:60")); int row = prest.executeUpdate(); System.out.println(row + " row(s) affectec)"); } catch (SQLException e){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: child


ch_name Santosh vinod b_time 12:08:36 02:01:00

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetTime.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetTime Prepared Statement Set Time example! 1 row(s) affectec)

100

After executing the program: Database Table: child


ch_name Santosh vinod Deepak b_time 12:08:36 02:01:00 09:45:57

101

In this JDBC tutorial we will teach how to set the Timestamp in database table by using the PreparedStatement interface of java.sql package. If you want to insert the Timestamp in a table, here you will provide the setTimestamp method that added date and time in the database table by using the java.util.Date package. See brief description below: Description of program: In this program we are going to insert the Timestamp in database table (ray) with the help of PreparedStatement interface. Working with program, first of we will establish the connection with MySQL database by using the JDBC driver. When the connection has been established then we give own query in the prepareStatement method that returns the PreparedStatement object. After that, we will insert the data with the PreparedStatement object according to database table (rname, rtime). Here we wish to add Timestamp in the table through the setTimestamp method that added the timestamp in a database table. Finally, we will get the data added in the database table then it will display a message "row(s) affected" otherwise it shows "Illegal argument!". Description of code: Timestamp(long time); This is the constructor of java.sql.Timestamp class that takes long types values to milliseconds. The Timestamp object stored the fractional seconds but the integral seconds are stored in the underlying date value. setTimestamp(int index, Timestamp time); Above method sets the arguments to given java.sql.Timestamp value. The JDBC driver converts it into the SQL TIMESTAMP value. It takes integer type index value and Timestamp value in millisecond. Here is the code of program:
import java.sql.*; public class SetTimetamp{ public static void main(String[] args) { System.out.println("Set Timestamp example by using the Prepared Statement!"); Connection con = null; Timestamp tstamp = new Timestamp(00-00-00); try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql:

102

//localhost:3306/jdbctutorial","root","root"); try{ String sql = "INSERT ray VALUES(?,?)"; PreparedStatement prest = con.prepareStatement(sql); prest.setString(1,"x-ray"); prest.setTimestamp(2,tstamp.valueOf("1980-01-14 12:50:45.01")); int row = prest.executeUpdate(); System.out.println(row + " row(s) affected)"); } catch (IllegalArgumentException s){ System.out.println("Illegal argument!"); } } catch (Exception e){ e.printStackTrace(); } } }

Database Table: ray


rname rtime

x-ray

1984-11-25 02:25:45

x-ray

1980-01-14 12:50:45

Output of program:
C:\vinod\jdbc\jdbc\PreparedStatement>javac SetTimetamp.java C:\vinod\jdbc\jdbc\PreparedStatement>java SetTimetamp Set Timestamp example by using the Prepared Statement! 1 row(s) affected)

103

Database Table: ray


rname x-ray rtime 1984-11-25 02:25:45

x-ray

1980-01-14 12:50:45

Bita-ray

1984-11-23 13:01:00

104

In this section, you will learn how to read the records of a simple text file and write (insert) into a simple table in MySQL database. All records are written in the simple text file and again, if you need to insert these records in tabular format the following example will provide the facility for writing this content. Description of program: The following program helps you in writing the records in the MySQL database table from the simple text file. For this, you must have to create a simple text file that have to be inserted the records into a database table. This program uses the simple Text file (Employee_list.txt) that contains all employees record (id, Emp_name, Emp_depart and sal). After creating a text file, you should establish the connection with MySQL database. Here, we applying the connection() method that will provide the connection and another is TextFileToTable() method that helps you for writing or inserting the records into a MySQL database table (Employee_Records). The inserting process is completely successfully, it will show a message "All data are inserted in the database table". Description of code: StringTokenizer(String data, String comma): This is the constructor of StringTokenizer class that allows the permission for breaking an application into tokens. It constructs a string tokenizer for the given string. The characters are separated by the comma arguments. nextToken(): This is the method that returns the next tokens from the StringTokenizer object. Here is the code of program:
import java.sql.*; import java.io.*; import java.util.*; public class TextFileToTable{ Connection con = null; Statement st; public static void main(String[] args) { System.out.println("Write Text File to Table!"); TextFileToTable text = new TextFileToTable(); } public Connection connection(){ try{ Class.forName("com.mysql.jdbc.Driver"); }

105

catch(ClassNotFoundException c){ System.out.println("Class not found!"); } try{ con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/jdbctutorial","root","root"); } catch(SQLException s){ System.out.println("Connection is not found!"); } return con; } public TextFileToTable(){ try{ FileInputStream fstream = new FileInputStream("Employee_list.txt"); DataInputStream dstream = new DataInputStream(fstream); BufferedReader bf = new BufferedReader(new InputStreamReader(dstream)); String data = null; String comma = ","; while((data = bf.readLine()) != null){ StringTokenizer stoken = new StringTokenizer(data,comma); String Emp_id = stoken.nextToken(); int id = Integer.parseInt(Emp_id); String Emp_name = stoken.nextToken(); String Emp_depart = stoken.nextToken(); String Emp_sal = stoken.nextToken(); int sal = Integer.parseInt(Emp_sal); st = connection().createStatement(); int row = st.executeUpdate("INSERT Employee_Records VALUES ("+id+" , '"+Emp_name+"'"+" , '"+Emp_depart+"' ,"+sal+")"); } System.out.println("All data are inserted in the database table"); bf.close(); st.close(); } catch(Exception e){ e.printStackTrace(); } } }

106

In this section, you will learn to copy one table to another in a same MySQL database. Description of Code: This program helps you in copying one table to another in a same MySQL database. To copy any table, firstly, you need to establish the connection with MySQL database (jdbc4). This database has both the tables (Copyemployee and employee table). That is the one which is to be copied to the other table and the second is the table to be copied. For copying a table, we have applied the ?INSERT INTO Copyemployee SELECT * FROM employee? SQL statement. Whenever a table is copied, it displays ?Numbers of row(s) affected?. If none of the rows is copied then it shows a message ?Don?t add any row!?. [Note: Both tables have the same field and its data type.] Syntax for copy tables: INSERT INTO <new_table_name> SELECT * FROM <old_table_name> Here is code of program: import java.sql.*; public class CopyOneTableToAnother{ public static void main(String[] args) { System.out.println("Copy data from one table to another in a database!"); Connection conn = null; String url = "jdbc:mysql://localhost:3306/"; String dbName = "jdbc4"; String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String password = "root"; try { //Load jdbc driver Class.forName(driver).newInstance(); //Establish the connection

107

conn = DriverManager.getConnection(url+dbName,userName,password); Statement st = conn.createStatement(); //Copy table int rows = st.executeUpdate("INSERT INTO Copyemployee SELECT * FROM employee"); if (rows == 0){ System.out.println("Don't add any row!"); } else{ System.out.println(rows + " row(s)affected."); conn.close(); } } catch (Exception e) { e.printStackTrace(); } }}

Table Name: employee


empId 1 2 empName Vinod Sushil empSal 50000 80000

Table Name: Copyemployee


empId 8 7 empName AmarDeep Noor empSal 10000 50000

108

Output of this program:


C:\vinod>javac CopyOneTableToAnother.java C:\vinod> C:\vinod>java CopyOneTableToAnother Copy data from one table to another in a database! 2 row(s)affected. C:\vinod>

After copy table: Copyemployee


empId 8 7 1 2 empName AmarDeep Noor Vinod Sushil empSal 10000 50000 50000 80000

109

In this section, you will learn to copy one database table to another database table. That means we copy one table to a different table but it contains a similar type of field or column. These tables aren?t in same database. Both the MySQL databases are different i.e. jdbc4 and jdbcMysql. The "jdbc4" database has "Copyemployee" table and "jdbcMysql" database also has a "Roseindia" table. To copy the table you need to establish the connection with the MySQL database (jdbcMysql). When the connection is established then sql statement (?INSERT INTO Roseindia SELECT * FROM jdbc4.Copyemployee?) is executed and rows get copied. Once the rows get copied then it will display a message - ?number of row(s) affected!?. Whenever any row is not copied then it shows a message - ?Don?t add any row!?. Syntax for copy table: ?INSERT INTO <new_table_name> SELECT * FROM <Database_name.old_table_name> Here is the code of program:
import java.sql.*; public class CopyOneDatabaseTableToAnother { public static void main(String[] args) { System.out.println("Copy data from one database table to another!"); Connection conn = null; String url = "jdbc:mysql://localhost:3306/"; String dbName = "jdbcMysql"; String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String password = "root"; try { Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url+dbName,userName,password); Statement st = conn.createStatement(); //Copy table int rows = st.executeUpdate("INSERT INTO Roseinda SELECT * if (rows == 0){ System.out.println("Don't add any row!"); FROM jdbc4.Copyemployee");

110

} else{ System.out.println(rows + " row(s)affected."); conn.close(); } } catch (Exception e) { e.printStackTrace(); } } }

Table Name: Copyemployee(jdbc4)


empId 8 7 1 2 empName AmarDeep Noor Vinod Sushil empSal 10000 50000 50000 80000

Table Name: Roseindia(jdbcMysql)


empId 10 11 empName Suman saurabh Ravi empSal 19000 25000

111

Output of this program:


C:\vinod>javac CopyOneDatabaseTableToAnother.java C:\vinod>java CopyOneDatabaseTableToAnother Copy data from one database table to another! 4 row(s)affected. C:\vinod>

After copy table: Roseindia(jdbcMysql)


empId 10 11 8 7 1 2 empName Suman saurabh Ravi AmarDeep Noor Vinod Sushil empSal 19000 25000 10000 50000 50000 80000

112

In this example we are inserting data into a table using stored procedure. Steps: 1.Create database: To create database we use syntax: create database database_name. We can create database with the name "Employee" as
mysql> create database Employee; Query OK, 1 row affected (0.09 sec)

2.Change the database: We are using use database_name; to change the database
mysql> use employee; Database changed

3.Create the table:


mysql> create table emp(name char(12),fathername char(12),password char(12)); Query OK, 0 rows affected (0.55 sec)

4.Create procedure : 1.We can use delimiter to create multiple statements. To create delimiter we can use following syntax. mysql> DELIMITER // 2.To create procedure we use following syntax: mysql>create procedure procedure_name(IN |OUT | INOUT) param_name type) 3.We write sql statement into begin......end body. To start begin use mysql>begin and to end

113

use: mysql>end; 4.To finish the procedure use mysql>// delimiter.


mysql> delimiter // mysql> create procedure empproc(in name char(12),in fathername char(12),in password char(12)) -> begin -> insert into emp values(name,fathername,password); -> end; -> // Query OK, 0 rows affected (0.22 sec)

5.Step to load driver: To load the driver we are using syntax: Class.forName("com.mysql.jdbc.Driver").newInstance(); 6.Steps to make connection: We are using getConnection("url/database","user","password") method to create a connection. Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/employee","ro ot","root"); 7.Step to call procedure: We are using CallableStatement to execute a stored procedure into java code. The following syntax is used to create an object of CallableStatement interface. CallableStatement calstat=conn.prepareCall("{call empproc(?,?,?)}"); 8.Step to pass the values into procedure: To set the values we are using setXXX(). Here XXX is data type Object class name, e.g setString() to pass string in procedure. 9.Step to execute query : To execute query we can use: ResultSet rs = calstat.executeQuery(); 10.Close connection : calstat.close();

114

The code of the program is given below:


import java.sql.*; public class Insert_EMP{ public static void main(String a[])throws Exception { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn=DriverManager.getConnection("jdbc:mysql: //localhost:3306/employee","root","root"); CallableStatement calstat=conn.prepareCall("{call empproc(?,?,?)}"); calstat.setString(1,a[0]); calstat.setString(2,a[1]); calstat.setString(3,a[2]); ResultSet rs = calstat.executeQuery(); conn.close(); calstat.close(); System.out.println("Your data has been inserted into table."); } }

The code of the stored procedure is given below:


delimiter // create procedure empproc(in name char(12),in fathername char(12),in password char(12)) begin insert into emp values(name,fathername,password); end; //

The output of the program is given below:


C:\rajesh\mysql>javac Insert_EMP.java C:\rajesh\mysql>java Insert_EMP Rajesh Ram Your data has been inserted into table.

Raju

115

In this section, you will learn to insert an image to the MySQL database table. Flow of the process :
This program helps the user to insert an image in the MySQL database table. To insert an image, you need to establish a connection with MySQL database. Lets' take a database hibernatetutorial, in our case. This database has a table (Image table). For inserting an image in table, we have used the SQL statement ?INSERT INTO Image values(?,?,?)? with the prepareStatement() method. Whenever an image is inserted into the database, it displays ?Inserting Successfully?. If it fails to insert an image then it throws an exception. [Note: The table has a specified field (or data type) to store an image of type e.g. Blob]

Here is the Code of Program :


import java.sql.*; import java.io.*; public class insertImage{ public static void main(String[] args) { System.out.println("Insert Image Example!"); String driverName = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/"; String dbName = "hibernatetutorial"; String userName = "root"; String password = "root"; Connection con = null; try{ Class.forName(driverName); con = DriverManager.getConnection(url+dbName,userName,password); Statement st = con.createStatement(); File imgfile = new File("images.jpg"); FileInputStream fin = new FileInputStream(imgfile); PreparedStatement pre = con.prepareStatement("insert into Image values(?,?,?)"); pre.setInt(1,5); pre.setString(2,"Durga"); pre.setBinaryStream(3,fin,(int)imgfile.length()); pre.executeUpdate(); System.out.println("Inserting Successfully!"); pre.close(); con.close(); } catch (Exception e){ System.out.println(e.getMessage()); }}}

116

Output of this Program:


C:\Roseindia\vinod\jdbc4.0>javac insertImage.java C:\Roseindia\vinod\jdbc4.0>java insertImage Insert Image Example! Inserting Successfully! C:\Roseindia\vinod\jdbc4.0>

Table Name: Image

Durga.jpg

117

In this Tutorial we want to explain you a code that makes you to understand JDBC MysqlConnection String. The code include a class JdbcMysqlConnectionString,Inside this class we have a main method that follow the list of steps 1)The first step is to import a package java.sql.* - This provides you a network interface that communicate between front end application in java and database. 2)Loading a driver is the next step by calling a class class.forname( ) and accept driver class as argument. 3)DriverManager.getConnection( ) - This is used to built a connection between url and database. Finally the print ln print the connection value, username and password. In case there is an exception in try block, the subsequent catch block caught and handle the exception occurred in try block. 4)e,printStacktrace( ) - This method print the list of all methods that are currently executed at that time. It also contain message string information about the error.
JdbcMysqlConnectionString.java.java
import java.sql.*; public class JdbcMysqlConnectionString { static public final String driver = "com.mysql.jdbc.Driver"; static public final String connection = "jdbc:mysql://localhost:3306/komal"; static public final String user = "root"; static public final String password = "root"; public static void main(String args[]) { try { Class.forName(driver); Connection con = DriverManager.getConnection(connection, user, password); System.out.println("Jdbc Mysql Connection String :"); System.out.println(connection); System.out.println("User Name :" + user); System.out.println("Password :" + password); if (!con.isClosed()) { con.close(); }

118

} catch (Exception e) { e.printStackTrace(); } } }

Output
Jdbc Mysql Connection String : jdbc:mysql://localhost:3306/komal User Name :root Password :root

Das könnte Ihnen auch gefallen