1 23 24 package org.dbforms.conprovider; 25 26 import java.sql.Connection ; 27 import java.sql.DriverManager ; 28 import java.sql.SQLException ; 29 30 import java.util.Properties ; 31 32 33 34 39 public class SinglePerThreadConnectionProvider extends ConnectionProvider { 40 private static final ThreadLocal singlePerThread = new ThreadLocal (); 41 42 49 public SinglePerThreadConnectionProvider() throws Exception { 50 super(); 51 } 52 53 60 protected synchronized Connection getConnection() throws SQLException { 61 Connection con = (Connection ) singlePerThread.get(); 62 63 if (con == null) { 64 Properties props = getPrefs() 65 .getProperties(); 66 67 if ((props != null) && !props.isEmpty()) { 69 props.put("user", getPrefs().getUser()); 70 props.put("password", getPrefs().getPassword()); 71 con = DriverManager.getConnection(getPrefs().getJdbcURL(), props); 72 } 73 else { 75 con = DriverManager.getConnection(getPrefs().getJdbcURL(), 76 getPrefs().getUser(), 77 getPrefs().getPassword()); 78 } 79 80 singlePerThread.set(con); 81 } 82 83 return new SingleConnectionWrapper(con); 84 } 85 86 87 92 protected void init() throws Exception { 93 Class.forName(getPrefs().getJdbcDriver()) 94 .newInstance(); 95 } 96 } 97 | Popular Tags |