使用服务器实现将数据库内容输出到word文档中显示

10 篇文章 0 订阅
5 篇文章 0 订阅
  1. 数据库内容
    在这里插入图片描述
  2. 展示查询页面
<%@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("数据库关闭失败");
	}
}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值