JDBC技术及错误提示

JDBC技术及错误提示

  采用JBDC驱动程序连接数据库,在每次访问数据库之前都要先建立与数据库的连接,这将消耗一定的资源,并延长访问数据库的时间。为了解决这一问题,引入了数据源技术。这种技术就是预先建立好一定数量的数据库连接,并将这些连接保存在连接池中,由连接池负责对这些数据库连接进行管理。

  使用连接池技术连接数据库需要两步处理:首先配置数据源,然后在程序中通过连接池建立数据库的连接,从而访问数据库。

一、在服务器上添加MySQL数据库驱动程序

  将MySQL数据库的驱动程序复制到Tomcat安装路径下的common\lib文件中。

二、数据源参数配置

  在配置数据源时,可以将其配置到Tomcat安装目录下的conf\server.xml文件中,也可以将其配置到web工程项目下的META-INF\context.xml文件中(若没有,可自行创建),建议采用后者,这样更有针对性。

  配置代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mysql"
type="javax.sql.DataSource"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/aaa"
username="root"
password="2411030483"
maxActive="4"
maxIdle="2"
maxWait="6000"/>
</Context>

  调用代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>输出信息页面</title>
</head>
<body>
<%
DataSource ds=null;
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
conn=ds.getConnection();
String sql="select * from biao1";//写出对数据库的操作语句,?表示占位符
pstmt=conn.prepareStatement(sql);//对象
rs=pstmt.executeQuery();//执行select,返回一个结果集
rs.last();
%>
你要查询的共有<%=rs.getRow()%>人
<table border="2" width="650"><%//建立表格,显示数据 %>
<tr>
<td>记录条数</td>
<td>学号</td>
<td>姓名</td>
<td>分数</td>
</tr>
<%
rs.beforeFirst();//将信息放入表格
while(rs.next()){
%><tr>
<td><%=rs.getRow()%></td>
<td><%=rs.getString("id")%></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getInt("grade")%></td>
</tr>
<%} %>
</table>
<%}
catch(Exception e){%>出现意外,信息是:<%=e.getMessage()%><%}
finally{
if(rs!=null){rs.close();}//释放资源,后创建的先释放
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close();}
}%>
</body>
</html>

  我测试测试过程中的错误:

系统提示conn=ds.getConnection()发生错误。(大多数情况)

1.对数据库的操作语句错误。

2.context.xml文件中有错误语句,极有可能是语句中有空格但你没发现,若多次测试仍未发现,建议重写。(注意:此处极易出现错误,请谨慎再谨慎。)

猜你喜欢

转载自blog.csdn.net/qq_43238335/article/details/105404329
今日推荐