1 比较重要的一个包是
org.spring.jdbc.datasource 包括2个类 DatasourceTransactionManager ,SQLDataSourceSerlet
DatasourceTransactionManager 这个类功能:调用web.xml中数据库连接差数传递到 SQLDataSourceSerlet
建立连接
SQLDataSourceSerlet 从web.xml中得到连接差数设定数据原
web.xml在你jsp项目下面的文件:上添加SQLDataSourceSerlet 描述建立SQLDataSourceSerlet 实例
public class DatasourceTransactionManager
{
public static Connection conn;
public static DataSource ds;
public static DataSource dsSQL;
public static Connection connSQL;
public DatasourceTransactionManager(){};
public static Connection getConnectionSQL()
throws ClassNotFoundException, SQLException
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt";
Connection con = DriverManager.getConnection(url, "pt", "pt");
return con;
}
public static Connection Create(){
try {
connSQL=getSQLDataSource().getConnection();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return connSQL;
}
public static DataSource getSQLDataSource(){
try{
Context ctx = new InitialContext();
if(dsSQL == null)
dsSQL = (DataSource)ctx.lookup("mySQLData");
}
catch(Exception e){
System.out.println(e);
}
return dsSQL;
}
public static Connection getConn(){
return conn;
}
public static void setConn(Connection conn_){
conn = conn_;
}
public static Connection getConnSQL(){
return connSQL;
}
public static void setConnSQL(Connection conn_){
connSQL = conn_;
}
}
public class SQLDataSourceServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException
{
String DBUrl = config.getInitParameter("DBUrl");
if(DBUrl == null) DBUrl = "jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt";
String Username = config.getInitParameter("Username");
if(Username == null) Username = "pt";
String Password = config.getInitParameter("Password");
if(Password == null) Password = "pt";
String DriverClassName = config.getInitParameter("DriverClassName");
if(DriverClassName == null) DriverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String MaxWaitStr = config.getInitParameter("MaxWait");
if(MaxWaitStr == null) MaxWaitStr = "3000";
long MaxWait = (new Long(MaxWaitStr)).longValue();
String MaxIdleStr = config.getInitParameter("MaxIdle");
if(MaxIdleStr == null) MaxIdleStr = "10";
int MaxIdle = (new Integer(MaxIdleStr)).intValue();
String MaxActiveStr = config.getInitParameter("MaxActive");
if(MaxActiveStr == null) MaxActiveStr = "100";
int MaxActive = (new Integer(MaxActiveStr)).intValue();
String SQLName = config.getInitParameter("SQLName");
if(SQLName == null) SQLName = "mySQLData";
try{
Context initCtx = (Context)new InitialContext();
BasicDataSource bds = new BasicDataSource();
bds.setUrl(DBUrl);
bds.setUsername(Username);
bds.setPassword(Password);
bds.setDriverClassName(DriverClassName);
bds.setMaxWait(MaxWait);
bds.setMaxIdle(MaxIdle);
bds.setMaxActive(MaxActive);
bds.setDefaultAutoCommit(true);
bds.setRemoveAbandoned(true);
bds.setRemoveAbandonedTimeout(60);
initCtx.rebind(SQLName,bds);
}catch(Exception e){
e.printStackTrace();
}
}//end init(ServletConfig config)
}
web.xml
<servlet>
<servlet-name>SQLSource</servlet-name>
<servlet-class>org.spring.jdbc.datasource.SQLDataSourceServlet</servlet-class>
<init-param>
<param-name>DBUrl</param-name>
<param-value>jdbc:microsoft:sqlserver://10.20.1.21:1433;DatabaseName=pt</param-value>
</init-param>
<init-param>
<param-name>Username</param-name>
<param-value>pt</param-value>
</init-param>
<init-param>
<param-name>Password</param-name>
<param-value>pt</param-value>
</init-param>
<init-param>
<param-name>DriverClassName</param-name>
<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
</init-param>
<init-param>
<param-name>MaxWait</param-name>
<param-value>3000</param-value>
</init-param>
<init-param>
<param-name>MaxIdle</param-name>
<param-value>10</param-value>
</init-param>
<init-param>
<param-name>MaxActive</param-name>
<param-value>100</param-value>
</init-param>
<init-param>
<param-name>SQLName</param-name>
<param-value>mySQLData</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这里可以添加多个连接 注意 <servlet-name>SQLSource</servlet-name> 名字不能重复
<param-value>mySQLData</param-value>
为 dsSQL = (DataSource)ctx.lookup("mySQLData");中的mySQLData