连接先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。Mysql数据库为例,连接池在Tomcat中的配置与使用。
1、创建数据库Student,表student
2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定连接池的名称
type:指定连接池的类,他负责连接池的事务处理
url:指定要连接的数据库
driverClassName:指定连接数据库使用的驱动程序
username:数据库用户名
password:数据库密码
maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常
maxIdle:指定连接池中连接的最大空闲数
maxActive:指定连接池最大连接数
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql数据库连接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
与server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、测试
DataSource pool = null
Context env = null
Connection conn = null
Statement st = null
ResultSet rs = null
try{
env = (Context)new InitialContext().lookup("java:comp/env")
//检索指定的对象,返回此上下文的一个新实例
pool = (DataSource)env.lookup("jdbc/DBPool")
//获得数据库连接池
if(pool==null){out.printl("找不到指定的连接池!")}
con = pool.getConnection()
st = con.createStatement()
rs = st.executeQuery("select * from student")
}catch(Exception ex){out.printl(ne.toString())}
导入java.sql包 \x0d\x0a一、加载要连接数据库的驱动程序 \x0d\x0a//Jdbc-Odbc桥 和 Microsoft Access 数据库 \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver")\x0d\x0a// SQL Server 驱动程序: \x0d\x0aClass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")\x0d\x0a注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常 \x0d\x0a二、通过驱动程序管理器得到连接实例 \x0d\x0aConnection conn=null\x0d\x0a//1. \x0d\x0a//1.1建立数据源 \x0d\x0aconn=DriverManager.getConnection("jdbc:odbc:MyDataSource")//MyDataSource是数据源名称 \x0d\x0a//1-2、不建立数据源 \x0d\x0aconn=DriverManager.getConnection("jdbc:odbc:Driver=Microsoft Access Driver (*.mdb)DBQ=C:\\VBTest.mdb")\x0d\x0a//2.SQL Server \x0d\x0aconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433databasename=mydb","sa","")\x0d\x0a\x0d\x0a注:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序 \x0d\x0a它接收三个参数, 分别表示1 数据源的名称、类型 2 用户名(可选) 3 密码(可选) \x0d\x0a三、基于连接对象建立处理器对象 \x0d\x0aStatement stmt=conn.createStatement()\x0d\x0a四、准备sql命令 \x0d\x0aString sql="select * from Student"\x0d\x0a五、执行命令返回结果集 \x0d\x0aResultSet rs=stmt.executeQuery(sql)\x0d\x0a六、显示结果集 \x0d\x0awhile(rs.next())//只要后面有记录 \x0d\x0a{ \x0d\x0a//对当前行的所有字段遍历 \x0d\x0afor(int i=1i 回答于 2022-12-11欢迎分享,转载请注明来源:内存溢出
评论列表(0条)