数据库连接池连接成功后面,SQL语句输出的是????
数据库连接池程序没有没有问题的
问题出在这个Test.java文件上,代码如下:
import db.DBConnectionManager;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.util.Date;
//对TestServlet进行出始化//
public class TestServlet extends HttpServlet {
private DBConnectionManager connMgr;
public void init(ServletConfig config)throws ServletException {
super.init(config);
connMgr = DBConnectionManager.getInstance();
}
//对数据库进行操作//
public void service(HttpServletRequest req,HttpServletResponse res)
throws IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
Connection con = connMgr.getConnection("idb");
if(con == null) {
out.println("不能获取数据库连接");
return;
}
ResultSet rs = null;
ResultSetMetaData md = null;
Statement stmt = null;
try {
stmt = con.createStatement();
rs = stmt.executeQuery("select * from EMPLOYEE");
md = rs.getMetaData();
out.println("<h1>职工数据</h1>");
while (rs.next()){
out.println("<br>");
for(int i = 1; i < md.getColumnCount(); i++) {
String data = new String(rs.getString(i).getBytes("8859_1"),"GB2312");
out.print(data + " ");
}
}
stmt.close();
rs.close();
} catch(SQLException e) {
e.printStackTrace(out);
}
//将这个连接加入到数据库连接池//
connMgr.freeConnection("idb",con);
}
public void destroy() {
connMgr.release();
super.destroy();
}
}
如果表EMPLOYEE里面的数值是中文就是这样的结果:
职工数据
??? ?
?? ?
?? ?
?? ?
?? ?
数据如果是英文就没有问题,不知道数据库的默认字符编码是什么?
有什么方法可以改变没有啊?
大家帮帮我啊:)