Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Contoh Pernyataan JDBC – Sisipkan, Hapus, Perbarui, Pilih Rekam

Artikel ini akan menunjukkan cara menggunakan java.sql.Statement untuk menjalankan insert, update, delete dan pilih perintah SQL DML dengan contoh.

1. Gunakan java.sql.Statement.execute(String sql) untuk menjalankan perintah insert, update, dan delete.

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

2. Masukkan dan kembalikan kunci yang dibuat secara otomatis.

Untuk perintah insert, gunakan java.sql.Statement.execute(String sql, int autoGeneratedKeys) untuk menyisipkan dan mengembalikan nilai kunci peningkatan otomatis, itu adalah nilai id dalam contoh ini.

/* 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. Jalankan perintah SQL pilih.

/* 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;
	}

}

4. TeacherDTO.java.

Kelas ini digunakan untuk menyimpan satu record data di tabel guru.

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. Lengkapi kode contoh.

  1. Contoh ini akan menggunakan pengujian database MySQL dan tabel guru , guru tabel memiliki tiga kolom, yaitu id , nama, dan email . Anda dapat merujuk JDBC Buat Tabel Contoh Penggunaan Pernyataan untuk mempelajari lebih lanjut.
  2. Anda dapat membuat tabel guru di phpMyAdmin. Anda perlu menambahkan nama kolom id , jenisnya adalah int, dan memeriksa A_I kotak centang untuk membuatnya bertambah secara otomatis.

5.1 Contoh langkah kode:

  1. Sisipkan satu record (halo, [email protected]).
  2. Sisipkan catatan lain (halo1, [email protected]) dan kembalikan id catatan yang dibuat secara otomatis.
  3. Perbarui nama ke jerry menggunakan id rekaman kedua.
  4. Kueri semua catatan di guru meja.
  5. Hapus catatan email mana yang [email protected]
  6. Buat daftar semua catatan di guru meja lagi.
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;
	}
}

Keluaran

<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. Bagaimana cara mendapatkan id setelah INSERT ke database MySQL dengan Python?

  2. Cara Menghitung Rata-Rata Penjualan Per Minggu di MySQL

  3. Cara menginstal MySQL di macOS

  4. Cara Mendapatkan Meta Data Basis Data

  5. Konversi MySQL ke SQLite