1 16 17 package org.apache.cocoon.components.modules.database; 18 19 import java.lang.Integer ; 20 import java.sql.PreparedStatement ; 21 import java.sql.Connection ; 22 import java.sql.ResultSet ; 23 import java.sql.Statement ; 24 import java.sql.SQLException ; 25 import java.util.Map ; 26 import org.apache.avalon.framework.configuration.Configuration; 27 import org.apache.avalon.framework.configuration.ConfigurationException; 28 import org.apache.avalon.framework.thread.ThreadSafe; 29 30 42 public class PgsqlAutoIncrementModule implements AutoIncrementModule, ThreadSafe { 43 44 public Object getPostValue( Configuration tableConf, Configuration columnConf, Configuration modeConf, 45 Connection conn, Statement stmt, Map objectModel ) throws SQLException , ConfigurationException { 46 47 Integer id = null; 48 55 56 String sequence = modeConf.getAttribute("sequence",null); 57 58 StringBuffer queryBuffer = new StringBuffer ("SELECT currval('"); 59 if (sequence != null) { 60 queryBuffer.append(sequence); 61 } else { 62 queryBuffer.append(tableConf.getAttribute("name","")); 63 queryBuffer.append('_'); 64 queryBuffer.append(columnConf.getAttribute("name")); 65 queryBuffer.append("_seq"); 66 } 67 queryBuffer.append("')"); 68 69 PreparedStatement pstmt = conn.prepareStatement(queryBuffer.toString()); 70 ResultSet resultSet = pstmt.executeQuery(); 71 while ( resultSet.next() ) { 72 id = new Integer (resultSet.getInt(1)); 73 } 74 resultSet.close(); 75 76 return id; 77 } 78 79 80 public boolean includeInQuery() { return false; } 81 82 83 public boolean includeAsValue() { return false; } 84 85 86 public Object getPreValue( Configuration tableConf, Configuration columnConf, Configuration modeConf, 87 Connection conn, Map objectModel ) throws SQLException , ConfigurationException { 88 89 return null; 90 } 91 92 public String getSubquery( Configuration tableConf, Configuration columnConf, Configuration modeConf ) 93 throws ConfigurationException { 94 95 return null; 96 } 97 } 98 | Popular Tags |