
<Context path="/Manager" reloadable="true">
<Resource
name="hello"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="123456"
maxIdle="4"
maxActive="4"
maxWait="5000"
url="jdbc:mysql://127.0.0.1/jspdev"
/>
</Context>
其中:
name:指定Resource的JNDI名字
type:指定Resource所属的Java类名
driverClassName:指定连接数据库的JDBC驱动程序
username:指定连接数据库的用户名
password:指定连接数据库的口令
maxIdle:指定数据库连接池中的最大空闲连接数目,0表示不受限制
maxActive:指定数据库连接池中的最大活动连接数目,0表示不受限制
maxWait:指定连接池中连接处于空闲状态的最长时间,超过会抛出异常,-1表示无限
url:指定连接数据库的URL
二 在Web应用中使用数据源:
javax.naming.Context提供了查找JNDI Resource的接口,可以通过三个步骤来使用数据源对象:
A.获得对数据源的引用:
Context ctx = new InitalContext()
DataSource ds =
(DataSource)ctx.lookup("java:comp/env/hello")
B.获得数据库连接对象:
Connection con = ds.getConnection()
C.返回数据库连接到连接池:
con.close()
在连接池中使用close()方法和在非连接池中使用close()方法的区别是:前者仅仅是把数据库连接对象返回到数据库连接池中,是连接对象又恢复到空闲状态,而非关闭数据库连接,而后者将直接关闭和数据库的连接。
三 如果通过数据源访问数据库,由于数据源由Servlet容器创建并维护,所以必须把JDBC驱动程序拷贝到Tomcat安装目录下的common/lib目录下,确保Servlet容器能够访问驱动程序。
是JDBC数据库连接吧?先建立ODBC
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()
String url="jdbc:oracle:thin:@localhost:1521:orcl"
//orcl为你的数据库的SID
String user="scott"
String password="tiger"
Connection conn= DriverManager.getConnection(url,user,password)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
二、jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance()
String url="jdbc:microsoft:sqlserver://localhost:1433DatabaseName=pubs"
//pubs为你的数据库的
String user="sa"
String password=""
Connection conn= DriverManager.getConnection(url,user,password)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
三、jsp连接DB2数据库
testdb2.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance()
String url="jdbc:db2://localhost:5000/sample"
//sample为你的数据库名
String user="admin"
String password=""
Connection conn= DriverManager.getConnection(url,user,password)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
四、jsp连接Informix数据库
testinformix.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance()
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver
user=testuserpassword=testpassword"
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
五、jsp连接Sybase数据库
testmysql.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.sybase.jdbc.SybDriver").newInstance()
String url =" jdbc:sybase:Tds:localhost:5007/tsdata"
//tsdata为你的数据库名
Properties sysProps = System.getProperties()
SysProps.put("user","userid")
SysProps.put("password","user_password")
Connection conn= DriverManager.getConnection(url, SysProps)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
六、jsp连接MySQL数据库
testmysql.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance()
String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
七、jsp连接PostgreSQL数据库
testmysql.jsp如下:
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.postgresql.Driver").newInstance()
String url ="jdbc:postgresql://localhost/soft"
//soft为你的数据库名
String user="myuser"
String password="mypassword"
Connection conn= DriverManager.getConnection(url,user,password)
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from test"
ResultSet rs=stmt.executeQuery(sql)
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库 *** 作成功,恭喜你")%>
<%rs.close()
stmt.close()
conn.close()
%>
</body>
</html>
方法/步骤
打开tomcat目录,进入conf配置目录,有个context.xml文件,一般建议把数据源配置放在这个文件里进行配置,放在server.xml也是可以的,但不建议这么做,server.xml文件一般是tomcat服务相关的配置
添加Resource节点,name就是JNDI资源访问的名称,注意和应用程序中保持一致,然后配置用户名和密码信息,如果是mysql,配置driverClass的就是mysql的驱动程序的类路径,如果是oracle,就配置对应的oracle驱动类路径。
maxPoolSize,minPoolSize,initialPoolSize这些是连接池相关的配置,可以根据应用的需要配置,一次配置不合适,可以多次调整
<Resource
name="jdbc/chargeService"
auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory"
user="root"
password="xxx"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://xxx:3306/bus"
maxPoolSize="5"
minPoolSize="2"
initialPoolSize="3"
acquireIncrement="1"
maxIdleTime="300"
acquireRetryAttempts="30"
acquireRetryDelay="1000"
unreturnedConnectionTimeout="3000"
debugUnreturnedConnectionStackTraces="true"
checkoutTimeout="5000"
idleConnectionTestPeriod="60"
preferredTestQuery="SELECT CURRENT_USER"
/>
这里我们使用的数据源连接池是c3p0,所以得引入c3p0的c3p0-0.9.1.2.jar包,连接池的jar可以按照自己的需要选择,相关的实现方式有(dbcp,c3p0,proxool,druid)
这里我们使用的mysql数据库,所以引入的是mysql-connector-java-5.1.30.jar驱动包,如果是oracle或其它数据库,引入对于数据库的驱动包即可,然后在driverClass配置对于的驱动程序的类路径
tomcat数据源配置上之后,就可以在我们的应用程序中来获取数据源了。通过spring的
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/chargeService</value>
</property>
</bean>
方法来获取
高版本的spring为我们提供了
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/chargeService"/>
方式配置,这种方式更为简洁方便,使用方式是一样的
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)