sequencekeygenerator.java

来自「Persistence Layer s ebook and source cod」· Java 代码 · 共 60 行

JAVA
60
字号
package pl.test;
import java.sql.*;
import java.util.*;

import pl.*;
import pl.map.*;
import pl.sql.*;

public class SequenceKeyGenerator  implements IdGenerator
{

  String sequenceName=null;
  public SequenceKeyGenerator()
  {

  }


  public Object getNewId(pl.map.ClassMap classMap) throws PlException
  {

    String select = "select nextval('"+ sequenceName +"')";
    RelationalDatabase dataBase = classMap.getRelationalDatabase();
    PreparedStatement pstmt = null;
 	  Connection conn = null;
	  try
	  {
      conn = dataBase.getConnection();
      pstmt = conn.prepareStatement(select);
		  ResultSet rs = pstmt.executeQuery();

		  if(rs.next())
		  {
			  return rs.getObject(1);
		  }else{
        return null;
      }
	  }
	  catch (Throwable e)
	  {
		  throw new pl.PlException(e.getMessage());
    }
	  finally
	  {
      try {
 		    pstmt.close();
      }catch (SQLException ex){}
		  dataBase.freeConnection(conn);
    }
  }
  /**
  * Init ID generator.
  *
  * @param properties properties for this ID generator
  */
  public void init(Properties parameters) throws PlException
  {
    sequenceName = (String)parameters.get("sequence");
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?