Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JDBC स्टेटमेंट उदाहरण - डालें, हटाएं, अपडेट करें, रिकॉर्ड चुनें

यह लेख आपको 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. पूरा उदाहरण कोड।

  1. यह उदाहरण एक MySQL डेटाबेस का उपयोग करेगा परीक्षण और टेबल शिक्षक , शिक्षक तालिका में तीन स्तंभ हैं, वे id . हैं , नाम, और ईमेल . अधिक जानने के लिए आप JDBC क्रिएट टेबल उदाहरण यूज स्टेटमेंट का संदर्भ ले सकते हैं।
  2. आप तालिका बना सकते हैं शिक्षक phpMyAdmin में। आपको एक कॉलम नाम जोड़ने की जरूरत है id , प्रकार int, . है और A_I . की जांच करता है इसे ऑटो-इन्क्रीमेंट बनाने के लिए चेकबॉक्स।

5.1 उदाहरण कोड चरण:

  1. एक रिकॉर्ड डालें (नमस्ते, [email protected])।
  2. एक और रिकॉर्ड डालें (hello1, [email protected]) और ऑटो-जेनरेटेड रिकॉर्ड आईडी लौटाएं।
  3. जेरी के लिए नाम अपडेट करें दूसरी रिकॉर्ड आईडी का उपयोग करता है।
  4. शिक्षक में सभी रिकॉर्ड की क्वेरी करें टेबल.
  5. रिकॉर्ड हटाएं कि कौन सा ईमेल है [email protected]
  6. सभी रिकॉर्ड को शिक्षक में सूचीबद्ध करें तालिका फिर से।
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','[email protected]')";
	/* Execute the insert command. */
	jdbcStatementExample.executeSql(ip, port, dbName, userName, password, insertSql);
	
	/* Insert another record. */
	insertSql = "insert into teacher(name, email) values('hello1','[email protected]')";
	/* 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 = '[email protected]'";
	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','[email protected]')
Execute sql successfuly, insert into teacher(name, email) values('hello1','[email protected]')
Execute sql successfuly, update teacher set name = 'jerry' where id = 22
id = 21
name = hello
email = [email protected]
**************************************
id = 22
name = jerry
email = [email protected]
**************************************
Execute sql successfuly, select * from teacher
Execute sql successfuly, delete from teacher where email = '[email protected]'
id = 21
name = hello
email = [email protected]
**************************************
Execute sql successfuly, select * from teacher

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डीबी स्कीमा परिवर्तनों को ट्रैक करने के लिए तंत्र

  2. MySQL प्रदर्शन ट्यूनिंग पर 10 उपयोगी टिप्स

  3. MySQL व्यू कैसे बनाएं

  4. SQL प्रदर्शन यूनियन बनाम OR

  5. क्या कोई विदेशी कुंजी एक गैर-अद्वितीय अनुक्रमणिका का संदर्भ दे सकती है?