使用服务器实现将数据库内容输出到word文档中显示
- 数据库内容
- 展示查询页面
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="useDao.UseDao" %>
<!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>
<%
UseDao con=new UseDao();
ResultSet rs=con.selectStatic("select distinct tb_name from tb_book");
%>
<form action="Servletword" method="post">
<table width="40% " height="300">
<tr align="center">
<td><strong>按书名查询</strong></td>
</tr>
<br>
<tr align="center">
<td width="200" height="30"><select name="tb_name">
<%
try{
while(rs.next()){%>
<option value="<%=rs.getString("tb_name") %>"><%=rs.getString("tb_name") %></option>
<%
}
}catch(Exception e){
System.out.print(e);
} %>
</select>
</td>
</tr>
<br>
<tr align="center">
<td><input type="submit" name="submit1" value="查询"></td>
</tr>
</table>
</form>
</body>
</html>
运行效果:
3. selvet功能实现类
package useDao;
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Servletword
*/
@WebServlet("/Servletword")
public class Servletword extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Servletword() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("application/msword;charset=UTF-8"); //定义文件输出样式
UseDao connection = new UseDao();
request.setCharacterEncoding("UTF-8");
String profession = request.getParameter("tb_name"); //获取查询条件
PrintWriter out = response.getWriter();
try {
String sql= "select distinct * from tb_book where tb_name='"+profession+"'";
ResultSet rs = connection.selectStatic(sql);
while(rs.next()) {
out.print(rs.getInt("tb_id"));
out.print(" ");
out.print(rs.getString("tb_name"));
out.print(" ");
out.print(rs.getDouble("tb_price"));
out.print(" ");
out.print(rs.getInt("tb_bookCount"));
out.println(" ");
out.print(rs.getString("tb_author"));
out.println(" ");
}
} catch (Exception e) {
System.out.println(e);
connection.closeConnection();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
实现效果:
web.xml配置
<servlet>
<servlet-name>UseDao</servlet-name>
<servlet-class>useDao.UseDao</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UseDao</servlet-name>
<url-pattern>/useDao</url-pattern>
</servlet-mapping>
包和文件所在位置:
补充:UseDao.java封装了数据库连接操作、查询、更新、关闭操作,代码如下:
package useDao;
import java.sql.*;
public class UseDao {
String url="jdbc:mysql://localhost:3306/text";
String user="root";
String passward="yj5211";
private Connection con=null;
private Statement stm=null;
private ResultSet res=null;
public UseDao() {
try {
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e) {
System.out.println("数据库加载失败");
}
}
public boolean Connection() {//数据库连接
try {
con=DriverManager.getConnection(url, user, passward);
}catch(Exception e) {
System.out.println(e.getMessage());
}
return true;
}
public ResultSet selectStatic(String sql) {//数据库查询
if(con==null) {
Connection();
}
try {
stm=con.createStatement();
res=stm.executeQuery(sql);
}catch(Exception e){
System.out.println(e.getMessage());
closeConnection();//关闭数据库连接
}
return res;
}
public boolean excuteUpdate(String sql) {//更新数据库
if(con==null) {
Connection();
}
try {
stm=con.createStatement();
int iCount=stm.executeUpdate(sql);
System.out.println("影响的行数" + iCount);
}catch(Exception e) {
System.out.println(e.getMessage());
closeConnection();
return false;
}
return true;
}
public void closeConnection() {//关闭数据库连接
try {
System.out.println("数据库关闭");
res.close();
stm.close();
con.close();
}catch(Exception e) {
System.out.println(e.getMessage());
System.out.println("数据库关闭失败");
}
}
}