Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

Demo PreparedStatement Set Reference

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DemoPreparedStatementSetRef {   public static Connection getConnection() throws Exception {     String driver = "org.gjt.mm.mysql.Driver";     String url = "jdbc:mysql://localhost/databaseName";     String username = "root";     String password = "root";     Class.forName(driver);     Connection conn = DriverManager.getConnection(url, username, password);     return conn;   }   public static void main(String[] args) throws Exception {     String deptName = "oldName";     String newDeptName = "newName";     ResultSet rs = null;     Connection conn = null;     PreparedStatement pstmt = null;     PreparedStatement pstmt2 = null;     try {       conn = getConnection();       // prepare query for getting a REF object and PrepareStatement object       String refQuery = "select manager from dept_table where dept_name=?";       pstmt = conn.prepareStatement(refQuery);       pstmt.setString(1, deptName);       rs = pstmt.executeQuery();       java.sql.Ref ref = null;       if (rs.next()) {         ref = rs.getRef(1);       }       if (ref == null) {         System.out.println("error: could not get a reference for manager.");         System.exit(1);       }       String query = "INSERT INTO dept_table(dept_name, manager)values(?, ?)";       pstmt2 = conn.prepareStatement(query);       pstmt2.setString(1, newDeptName);       pstmt2.setRef(2, ref);       // execute query, and return number of rows created       int rowCount = pstmt2.executeUpdate();       System.out.println("rowCount=" + rowCount);     } finally {       pstmt.close();       pstmt2.close();       conn.close();     }   } }