यह लेख आपको java.sql.Statement . का उपयोग करने का तरीका दिखाएगा उदाहरण के साथ SQL DML कमांड को इंसर्ट, अपडेट, डिलीट और सिलेक्ट करने के लिए।
<एच3>1. कमांड डालने, अपडेट करने और हटाने के लिए java.sql.Statement.execute(String sql) का उपयोग करें।
/* This method can be used to execute insert, update, delete dml command. */
public void executeSql(String ip, int port, String dbName, String userName, String password, String sql)
{
/* Declare the connection and statement object. */
Connection conn = null;
Statement stmt = null;
try
{
/* Get connection object. */
conn = this.getMySqlConnection(ip, port, dbName, userName, password);
/* Get statement object. */
stmt = conn.createStatement();
/* The method can execute insert, update and delete dml command. */
stmt.execute(sql);
System.out.println("Execute sql successfuly, " + sql);
}catch(Exception ex)
{
ex.printStackTrace();
}finally
{
this.closeDBResource(stmt, conn);
}
}
/* Close statement and connection after use, this can avoid resource waste. */
public void closeDBResource(Statement stmt, Connection conn)
{
try
{
if(stmt!=null)
{
stmt.close();
stmt = null;
}
if(conn!=null)
{
conn.close();
conn = null;
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
<एच3>2. ऑटो-जेनरेटेड कुंजियाँ डालें और वापस करें।
इन्सर्ट कमांड के लिए, java.sql.Statement.execute(String sql, int autoGeneratedKeys) का उपयोग करें। ऑटो-इन्क्रीमेंट कुंजी का मान डालने और वापस करने के लिए, यह इस उदाहरण में आईडी मान है।
/* Execute insert command and return the auto generated record id. */
public int executeInsertSql(String ip, int port, String dbName, String userName, String password, String sql)
{
int ret = -1;
/* Declare the connection and statement object. */
Connection conn = null;
Statement stmt = null;
try
{
/* Get connection object. */
conn = this.getMySqlConnection(ip, port, dbName, userName, password);
/* Get statement object. */
stmt = conn.createStatement();
/* The method can execute insert dml command and return auto generated key values. */
stmt.execute(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
if(rs.next())
{
/* Please note the index start from 1 not 0. */
ret = rs.getInt(1);
}
System.out.println("Execute sql successfuly, " + sql);
}catch(Exception ex)
{
ex.printStackTrace();
}finally
{
this.closeDBResource(stmt, conn);
return ret;
}
}
<एच3>3. चयनित SQL कमांड निष्पादित करें। /* This method can be used to execute select dml command. */
public List executeSelectSql(String ip, int port, String dbName, String userName, String password, String selectSql)
{
List ret = new ArrayList();
/* Declare the connection and statement object. */
Connection conn = null;
Statement stmt = null;
try
{
/* Get connection object. */
conn = this.getMySqlConnection(ip, port, dbName, userName, password);
/* Get statement object. */
stmt = conn.createStatement();
/* The method can execute select dml command. */
ResultSet rs = stmt.executeQuery(selectSql);
if(rs!=null)
{
while(rs.next())
{
int teacherId = rs.getInt("id");
String teacherName = rs.getString("name");
String teahcerEmail = rs.getString("email");
TeacherDTO teacherDto = new TeacherDTO();
teacherDto.setId(teacherId);
teacherDto.setName(teacherName);
teacherDto.setEmail(teahcerEmail);
ret.add(teacherDto);
System.out.println("id = " + teacherDto.getId());
System.out.println("name = " + teacherDto.getName());
System.out.println("email = " + teacherDto.getEmail());
System.out.println("**************************************");
}
}
System.out.println("Execute sql successfuly, " + selectSql);
}catch(Exception ex)
{
ex.printStackTrace();
}finally
{
this.closeDBResource(stmt, conn);
return ret;
}
}
<एच3>4. TeacherDTO.java. इस कक्षा का उपयोग शिक्षक तालिका में डेटा के एक रिकॉर्ड को सहेजने के लिए किया जाता है।
package com.dev2qa.java.jdbc;
/* This class represent one record in database teacher table. */
public class TeacherDTO {
private int id;
private String name;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
5. पूरा उदाहरण कोड।
- यह उदाहरण एक MySQL डेटाबेस का उपयोग करेगा परीक्षण और टेबल शिक्षक , शिक्षक तालिका में तीन स्तंभ हैं, वे id . हैं , नाम, और ईमेल . अधिक जानने के लिए आप JDBC क्रिएट टेबल उदाहरण यूज स्टेटमेंट का संदर्भ ले सकते हैं।
- आप तालिका बना सकते हैं शिक्षक phpMyAdmin में। आपको एक कॉलम नाम जोड़ने की जरूरत है id , प्रकार int, . है और A_I . की जांच करता है इसे ऑटो-इन्क्रीमेंट बनाने के लिए चेकबॉक्स।
5.1 उदाहरण कोड चरण:
- एक रिकॉर्ड डालें (नमस्ते, example@sqldat.com)।
- एक और रिकॉर्ड डालें (hello1, example@sqldat.com) और ऑटो-जेनरेटेड रिकॉर्ड आईडी लौटाएं।
- जेरी के लिए नाम अपडेट करें दूसरी रिकॉर्ड आईडी का उपयोग करता है।
- शिक्षक में सभी रिकॉर्ड की क्वेरी करें टेबल.
- रिकॉर्ड हटाएं कि कौन सा ईमेल है example@sqldat.com
- सभी रिकॉर्ड को शिक्षक में सूचीबद्ध करें तालिका फिर से।
public static void main(String[] args) {
/* Below are db connection required data. */
String ip = "localhost";
int port = 3306;
String dbName = "test";
String userName = "root";
String password = "";
/* Create an instance. */
JDBCStatementExample jdbcStatementExample = new JDBCStatementExample();
/* Insert one record. */
String insertSql = "insert into teacher(name, email) values('hello','example@sqldat.com')";
/* Execute the insert command. */
jdbcStatementExample.executeSql(ip, port, dbName, userName, password, insertSql);
/* Insert another record. */
insertSql = "insert into teacher(name, email) values('hello1','example@sqldat.com')";
/* Execute the insert command. */
int autoGenId = jdbcStatementExample.executeInsertSql(ip, port, dbName, userName, password, insertSql);
/* update record. */
String updateSql = "update teacher set name = 'jerry' where id = " + autoGenId;
/* Execute the update command. */
jdbcStatementExample.executeSql(ip, port, dbName, userName, password, updateSql);
/* select records. */
String selectSql = "select * from teacher";
jdbcStatementExample.executeSelectSql(ip, port, dbName, userName, password, selectSql);
String deleteSql = "delete from teacher where email = 'example@sqldat.com'";
jdbcStatementExample.executeSql(ip, port, dbName, userName, password, deleteSql);
/* select records after delete. */
selectSql = "select * from teacher";
jdbcStatementExample.executeSelectSql(ip, port, dbName, userName, password, selectSql);
}
/* This method return java.sql.Connection object from MySQL server. */
public Connection getMySqlConnection(String ip, int port, String dbName, String userName, String password)
{
/* Declare and initialize a sql Connection variable. */
Connection ret = null;
try
{
/* Register for mysql jdbc driver class. */
Class.forName("com.mysql.jdbc.Driver");
/* Create mysql connection url. */
String mysqlConnUrl = "jdbc:mysql://" + ip + ":" + port + "/" + dbName;
/* Get the mysql Connection object. */
ret = DriverManager.getConnection(mysqlConnUrl, userName , password);
}catch(Exception ex)
{
ex.printStackTrace();
}finally
{
return ret;
}
}
आउटपुट
<terminated> JDBCStatementExamp|e [Java Application] C:\Java\jrel.B.O_131\bin\javaw.exe [Aug 28, 2017, 7:59:53 PM]
Execute sql successfuly, insert into teacher(name, email) values('hello','example@sqldat.com')
Execute sql successfuly, insert into teacher(name, email) values('hello1','example@sqldat.com')
Execute sql successfuly, update teacher set name = 'jerry' where id = 22
id = 21
name = hello
email = example@sqldat.com
**************************************
id = 22
name = jerry
email = example@sqldat.com
**************************************
Execute sql successfuly, select * from teacher
Execute sql successfuly, delete from teacher where email = 'example@sqldat.com'
id = 21
name = hello
email = example@sqldat.com
**************************************
Execute sql successfuly, select * from teacher