Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Reducing commits and inserting bulk records at a time in jdbc call?
- public final class RequestFilter implements Filter{
- public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
- try {
- ((HttpServletResponse) response).sendRedirect(redirectUrl);
- if (chain != null) {
- chain.doFilter(request, response);
- }
- }
- finally { // commit transaction here }
- }
- }
- DBLog.logService(param1, param2); // static method call
- public static void logService(String param1, String param2) {
- try {
- con=getConnection();
- stmt = con.prepareCall("{call DB_LOG_SP (?, ?}");
- stmt.setString(1, param1);
- stmt.setString(2, param2);
- stmt.execute();
- stmt.close();
- }finally {
- stmt.close();
- con.close();
- }
- }
- public class DBLog {
- static Connection con = null;
- static PreparedStatement stmt = null;
- static {
- try{
- new net.verizon.whatsnext.dblog.JDCConnectionDriver("oracle.jdbc.driver.OracleDriver",
- "jdbc:oracle:thin:@localhost:7001:xe","user", "password");
- con=getConnection(); // Getting connection from Connection pool
- }catch(Exception e){}
- }
- public static Connection getConnection() throws SQLException {
- return DriverManager.getConnection("jdbc:jdc:jdcpool");
- }
- public static void logService(String param1, String param2) {
- ...
- finally {
- stmt.close();
- }
- }
- public static void closeTrans() {
- con.commit();
- con.close();
- }
- } //End of DBLog class
- public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
- ...
- finally {
- DBLog.closeTrans();
- }
- }
- public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
- Connection conn = obtainConnection(); // obtain connection and store it ThreadLocal
- conn.setAutoCommit(false);
- try {
- chain.doFilter(request, response);
- } finally {
- conn.commit();
- }
- }
- public static void logService(String param1, String param2) {
- Connection conn = getConnection(); // obtain thread-local connection
- // your database statements go here
- }
- public interface BusinessTask {
- public void doWork();
- }
- public class TransactionDecorator implements BusinessTask{
- private final BusinessTask task;
- public TransactionDecorator(BusinessTask task){
- this.task = task;
- }
- @Override
- public void doWork() {
- //beging transaction
- task.doWork();
- //commit or rollback
- }
- }
- final AddSavingsAccount addSavingsAccountTask = new AddSavingsAccount();
- final TransferFunds transferFundsTask = new TransferFunds();
- BusinessTask transaction = new TransactionDecorator(new BusinessTask(){
- @Override
- public void doWork() {
- addSavingsAccountTask.doWork();
- transferFundsTask.doWork();
- }
- });
- transaction.doWork(); //all the magic happens here
Add Comment
Please, Sign In to add comment