import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DBUtil { /** * 在tomcat的server.xml中配置datasource
* / <Context path="/vote" docBase="D:\tomcat6.0.13\vote\WebRoot" crossContext="true" reloadable="true" debug="1"> <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/vote?characterEncoding=UTF-8"/> </Context> */ private static DataSource ds = null; private Connection conn; public Connection getConnection () throws Exception{ try { if (ds == null) { initDS(); } conn = ds.getConnection(); conn.setAutoCommit(false); return conn ; } catch (SQLException e) { e.printStackTrace(); throw e; } } //經過jndi獲取ds private void initDS () throws Exception { try { Context initContext = new InitialContext (); Context envContext= (Context) initContext.lookup("java:/comp/env"); ds = (DataSource) envContext.lookup("jdbc/MySQL"); //return ds ; }catch (NamingException e){ e.printStackTrace(); }catch (ClassCastException e2){ e2.printStackTrace(); } } }