部分参数解释:name--------------------jdbc/myoracle中myoracle为你要连接的数据库的名字。
driverClassName----JDBC驱动类的完整的名称;
maxActive---------------同时能够从连接池中被分配的可用实例的最大数
maxIdle------------------可以同时闲置在连接池中的连接的最大数;
maxWait------------------最大超时时间,以毫秒计;
password----------------用户密码;
url--------------------------到JDBC的URL连接,最后面的mysid为你安装时数据库实例的名称;
username---------------用户名称
validationQuery--------用来查询池中空闲的连接。
1. 修改tomcat的conf文件夹下的context.xml文件
<Resource name="jdbc/orcl" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="javakc"
password="javakc"
maxActive="20" maxIdle="10"maxWait="-1"/>
2. 修改web.xml文件
<description>Oracle Datasourceexample</description>
<res-ref-name>jdbc/orcl</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
程序实验
int i=1;
Connection conn=null;
PreparedStatementpstmt=null;
try {
// Class.forName("oracle.jdbc.driver.OracleDriver");
// String url="jdbc:oracle:thin:@localhost:1521:orcl";
// String username="javakc";
// String password="javakc";
//String JNDI="test";
//viewplaincopy toclipboardprint?
ContextinitContext;
try {
initContext =new InitialContext();
Context envContext=(Context)initContext.lookup("java:/comp/env");
DataSource ds=(DataSource)envContext.lookup("jdbc/orcl");
if(ds!=null)
{
conn=ds.getConnection();
}
} catch (NamingException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
String sql="insert into My_User(Name,Password,Age,Address) values(?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, um.getName());
pstmt.setString(2, um.getPassword());
pstmt.setInt(3, um.getAge());
pstmt.setString(4, um.getAddress());
pstmt.executeUpdate();
conn.close();
pstmt.close();
}
catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if(pstmt!=null&&pstmt.toString().trim().length()>0)
{
try {
pstmt.close();
} catch (SQLException e) {
//TODO Auto-generatedcatch block
e.printStackTrace();
}
}
if(conn!=null&&conn.toString().trim().length()>0)
{
try {
conn.close();
} catch (SQLException e) {
//TODO Auto-generatedcatch block
e.printStackTrace();
}
}
}
return i;
}