笔者只实现了查询的存储过程:
白色部分用的是Navicat for MySQL命令行写的存储过程函数:
- create procedure 函数名(参数1,参数2……)
- 这里的简单查询(select * from 表名)没有用到参数,如果实现插入的话,是需要参数的;
- 最后在Java中用下面的代码调用存储过程;用{call 存储过程函数名()}的形式;
CallableStatement cs = conn.prepareCall("{call find_stu()}"); ResultSet rs = cs.executeQuery();
完整代码:servlet(.java)
package mysql; import java.sql.*; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/link_mysql") public class link_mysql extends HttpServlet { private static final long serialVersionUID = -1450812728074523352L; Connection conn=null;//连接 Statement stat=null;//建立状态 PreparedStatement ps=null;//准备状态 ResultSet rs=null;//返回结果 public link_mysql() { super(); try{ //加载jdbc驱动程序 Class.forName("com.mysql.jdbc.Driver").newInstance(); System.out.println("驱动程序加载成功!"); }catch(Exception e){ System.out.println("找不到驱动程序!"); } try { //建立连接 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","123456");//book指连接的数据库名称, System.out.println("连接成功!"); }catch(Exception e){ System.out.println("连接失败!"); } } public void release() { try { if(rs!=null) { rs.close(); } if(stat!=null) { stat.close(); } if(conn!=null) { conn.close(); } }catch(SQLException e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); int id=Integer.parseInt(request.getParameter("id")); try { CallableStatement cs = conn.prepareCall("{call find_stu()}"); ResultSet rs = cs.executeQuery(); while(rs.next()) {//集合不为空时,实例化 int num=rs.getInt("id"); String stu_name=rs.getString("name"); String stu_sex=rs.getString("sex"); String stu_profession=rs.getString("profession"); String stu_classis=rs.getString("classis"); int stu_age=rs.getInt("age"); request.setAttribute("num", num); request.setAttribute("stu_name", stu_name); request.setAttribute("stu_sex",stu_sex); request.setAttribute("stu_profession", stu_profession); request.setAttribute("stu_age", stu_age); request.setAttribute("stu_classis", stu_classis); while(num==id) {//条件查询 RequestDispatcher requestDispatcher =request.getRequestDispatcher("userview.jsp"); requestDispatcher.forward(request,response); release(); } } } catch (SQLException e1) { e1.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
JSP文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Insert title here 学号 姓名 性别 年龄 专业 班级 ${num } ${stu_name} ${stu_sex} ${stu_profession} ${stu_age} ${stu_classis}
效果图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)