精华内容
下载资源
问答
  • 通过Java,jdbc,mysql,实现后端对数据库的操作
  • </td><td><a href='edit.jsp?bno= " + bno + " '>修改</a> <a href='del.jsp?bno= " + bno + " '>删除</a></td> " ); } rs.close(); stmt.close(); con.close(); %> table > div > < br > ...

     

    登录(指定登录号密码的简单判断):

     1 <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     5 <title>登录</title>
     6 </head>
     7 <script type="text/javascript">
     8 function check()// JavaScript Document
     9 {
    10     var flag = true;
    11     if (document.form.no.value == "") {
    12         alert("用户名或密码不能为空");
    13         form.no.focus();
    14         flag = false; 
    15     } else if (document.form.psw.value == "") {
    16         alert("用户名或密码不能为空");
    17         form.psw.focus();
    18         flag = false;
    19     }
    20     if (flag) {
    21         document.form.submit();
    22     }
    23 }
    24 </script>
    25 <style type="text/css">
    26 body {
    27     background-repeat: no-repeat;
    28     background-attachment: fixed;
    29     background-position: center;
    30     text-align: center;
    31     margin: 0px auto;
    32 }
    33 
    34 div {
    35     left: 80%;
    36     margin-left: -530px;
    37     position: absolute;
    38 }
    39 </style>
    40 <body background="images\1.jpeg">
    41     <br>
    42     <br>
    43     <br>
    44     <br>
    45     <br>
    46     <br>
    47     <br>
    48     <br>
    49     <br>
    50     <br>
    51     <br>
    52     <br>
    53     <div>
    54         <font face="华文新魏">登录图书管理系统</font>
    55         <p>
    56         <form name="form" method="post" action="judge.jsp" align="center">
    57             <table width="256" border="1">
    58                 <tr>
    59                     <td width="68" height="43"><font color="#003399">登录号:</font></td>
    60                     <td><input type="text" name="no"></td>
    61                 </tr>
    62                 <tr>
    63                     <td height="43"><font color="#003399">密码:</font></td>
    64                     <td><input type="password" name="psw"></td>
    65                 </tr>
    66             </table>
    67             <br /> <input type="button" value="登录" onClick="check()"
    68                 style="width: 130px;" />
    69         </form>
    70     </div>
    71 </body>
    72 </html>
    login.jsp
    judge.jsp

    首页:

    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
    <html>
    <head>
    <title>图书管理系统</title>
    </head>
    <body bgcolor="#FFA500">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <center>
            <div>
                <img src="images\2.jpeg" width=80%>
                </tr>
            </div>
            <div>
                <table align="center" width="80%" border=1 bgcolor="#3CC4C4">
                    <tr>
                        <th>书号</th>
                        <th>书名</th>
                        <th>作者</th>
                        <th>出版社</th>
                        <th>操作</th>
                    </tr>
                    <%
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.129:1521:orcl2","system","orcl");
        Statement stmt=con.createStatement();
        String s="select * from Book";
        ResultSet rs=stmt.executeQuery(s);
        while(rs.next())
        {
        String bno=rs.getString(1);
        out.println("<tr><td>"+rs.getString(1)+"</td><td>《"+rs.getString(2)+"》</td><td>"+rs.getString(3)+"</td><td>"+rs.getString(4)+"</td><td><a href='edit.jsp?bno="+bno+"'>修改</a>&nbsp;<a href='del.jsp?bno="+bno+"'>删除</a></td></tr>");
        }
        rs.close();
        stmt.close();
        con.close();
         %>
                </table>
            </div>
            <br> <br>
            <table width="80%" bgcolor="#3CC4C4">
                <tr>
                    <a href=add.jsp><font face="华文新魏" style="font-size: 20px"
                        >添加图书信息</font></a>
                        ********
                    <a href=select.jsp><font face="华文新魏" style="font-size: 20px"
                        >按条件查询</font></a>
                </tr>
            </table>
    </body>
    </html>
    index.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java"
        import="java.sql.*" pageEncoding="gb2312"%>
    <html>
    <head>
    <title>删除图书</title>
    </head>
    <body bgcolor="#EEEE00">
        <%
        request.setCharacterEncoding("gb2312");
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.129:1521:orcl2","system","orcl");
        Statement stmt=con.createStatement();
        String bno=request.getParameter("bno");
        int i=stmt.executeUpdate("delete from Book where bno='"+bno+"'");
        if(i==1)
            {out.println("<script language='javaScript'> alert('删除成功,点击确定后自动跳到主页!');</script>");
            response.setHeader("refresh","1;url=index.jsp");
            }
            else{
            out.println("<script language='javaScript'> alert('删除失败,点击确定后自动跳到主页!');</script>");
            response.setHeader("refresh","1;url=index.jsp");
            }
            con.close();
            stmt.close();
        %>
    </body>
    </html>
    del.jsp

    修改:

    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
    <html>
    <head>
    <title>修改图书信息</title>
    </head>
    <style type="text/css">
    body {
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-position: center;
        text-align: center;
        margin: 0px auto;
    }
    </style>
    <body bgcolor="#FFA500" background="images\3.jpg">
    
        <%
      request.setCharacterEncoding("gb2312");
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.129:1521:orcl2","system","orcl");
      Statement stmt=con.createStatement();
      String bno=request.getParameter("bno");
      String s="select * from Book where bno='"+bno+"'";
      ResultSet rs=stmt.executeQuery(s);
      rs.next();
       %>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <form action="update.jsp" method="post">
            <table align="center" width="30%" border="1">
                <caption>
                    <font face="华文新魏">修改图书信息</font>
                </caption>
                <tr>
                    <th width="30%">书号:</th>
                    <td width="70%"><input name="bno" type="text"
                        value="<%=rs.getString(1)%>" readonly="readonly">不可更改</td>
                </tr>
                <tr>
                    <th>书名:</th>
                    <td><input name="name" type="text" value="<%=rs.getString(2)%>">*</td>
                </tr>
                <tr>
                    <th>作者:</th>
                    <td><input name="author" type="text"
                        value="<%=rs.getString(3)%>"></td>
                </tr>
                <tr>
                    <th>出版社:</th>
                    <td><input name="publisher" type="text"
                        value="<%=rs.getString(4)%>"></td>
                </tr>
                <tr>
                    <th colspan="2"><input type="hidden" name="bno"
                        value="<%=bno%>"> <input type="submit" value="修改"
                        style="width: 50px;"> <input type="reset" value="重置"
                        style="width: 50px;"> <a href=index.jsp> 返回</a></th>
                </tr>
            </table>
        </form>
        <%
      rs.close();
      stmt.close();
      con.close();
     %>
    </body>
    </html>
    edit.jsp
    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
    <html>
    <head>
    <title>修改完成</title>
    </head>
    <body>
        <%
      request.setCharacterEncoding("gb2312");
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.129:1521:orcl2","system","orcl");
      Statement stmt=con.createStatement();
      String sql="update Book set bno='"+request.getParameter("bno")+"',name='"+request.getParameter("name")+"',author='"+request.getParameter("author")+"',publisher='"+request.getParameter("publisher")+"' where bno='"+request.getParameter("bno")+"'";
     System.out.println(sql);
      int i=stmt.executeUpdate(sql);
        if(i==1)
        {out.println("<script language='javaScript'> alert('修改成功,点击确定后自动跳到主页。');</script>");
        response.setHeader("refresh","1;url=index.jsp");
        }
        else{
            out.println("<script language='javaScript'> alert('修改失败,点击确定返回主页!');</script>");
            response.setHeader("refresh","1;url=index.jsp");
            }
      stmt.close();
      con.close();
       %>
    </body>
    </html>
    update.jsp

    添加:

    <%@ page contentType="text/html; charset=gb2312" import="java.sql.*"%>
    <html>
    <head>
    <title>添加图书信息</title>
    </head>
    <style type="text/css">
    body {
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-position: center;
        text-align: center;
        margin: 0px auto;
    }
    </style>
    <body bgcolor="#EEEE00" background="images\3.jpg">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <form action="add.jsp" method="post">
            <div align="center"></div>
            <table align="center" width="30%" border="1">
                <caption>
                    <font face="华文新魏">添加信息</font>
                </caption>
                <tr>
                    <th width="30%">书号:</th>
                    <td width="30%"><input name="bno" type="text">*</td>
                </tr>
                <tr>
                    <th>书名:</th>
                    <td><input name="name" type="text">*</td>
                </tr>
                <tr>
                    <th>作者:</th>
                    <td><input name="author" type="text"></td>
                </tr>
                <tr>
                    <th>出版社:</th>
                    <td><input name="publisher" type="text"></td>
                </tr>
                <tr>
                    <th colspan="2"><input type="submit" name="submit" value="添加"
                        style="width: 50px;"> <input type="reset" value="重置"
                        style="width: 50px;"> <a href=index.jsp> 返回</a></th>
                </tr>
            </table>
        </form>
    
        <%
    request.setCharacterEncoding("gb2312");
    String submit=request.getParameter("submit");
    if(submit!=null&&!submit.equals(""))
    {
          String name=request.getParameter("name");
          String author=request.getParameter("author");  
          String publisher=request.getParameter("publisher");   
          String bno=request.getParameter("bno"); 
        if(bno!=""&&name!="")
        {
            if(bno.length()<8 && name.length()<20 && author.length()<20 && publisher.length()<20)
            {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.129:1521:orcl2","system","orcl");
                Statement stmt=con.createStatement();
                String sql="insert into Book(bno,name,author,publisher) values('"+bno+"','"+name+"','"+author+"','"+publisher+"')";
                int i=stmt.executeUpdate(sql);
                if(i==1)
                {
                    out.println("<script language='javaScript'> alert('添加成功');</script>");
                }
                else
                {
                    out.println("<script language='javaScript'> alert('添加失败,点击确定返回添加页面!');</script>");
                    response.setHeader("refresh","1;url=add.jsp");
                }
            stmt.close();
            con.close();
            }
            else
            {
                out.println("<script language='javaScript'> alert('添加失败,请确保正确填写!');</script>");
                response.setHeader("refresh","1;url=add.jsp");
            }
        }
        else
        {
            out.println("<script language='javaScript'> alert('添加失败,请将带*的信息填写完整!');</script>");
            response.setHeader("refresh","1;url=add.jsp");
        }
    }
    %>
    </body>
    </html>
    add.jsp

     

    转载于:https://www.cnblogs.com/candy-yyn/p/4099147.html

    展开全文
  • 使用SSH框架实现增删改查例子源码,使用JSP页面和Oracle数据库开发
  • 实现日志的增删改查,适合java初学者
  • 使用简单的jsp+mysql技术实现对数据库增删改查操作,以及权限控制
  • Oracel的期末作业,写一个简单的web页面连接oracle数据库实现增删改查 完整源码链接:https://pan.baidu.com/s/1f2TfFt-5NFNspYM43J2muA 提取码: mfdh 开发环境: 编译器:Eclipse 数据库:Oracle 数据库管理...

    Oracel的期末作业,写一个简单的web页面连接oracle数据库实现增删改查

    完整源码链接:https://pan.baidu.com/s/1f2TfFt-5NFNspYM43J2muA

    提取码: mfdh 

    开发环境:

    编译器:Eclipse

    数据库:Oracle

    数据库管理器:Navicat

    效果展示:

     文件目录:

    功能: 

    添加:添加新的学生信息,包括学号、姓名、性别、电话

    删除:删除已有学生信息

    更新:更改已有学生信息,包括姓名、性别、电话

    查找:通过关键字查找相关学生信息

    数据库设计:

     学生表Student

    列名类型约束备注
    idNUMBER(38,0)非空、主键学号
    nameNVARCHAR2(20)非空姓名
    sexNVARCHAR2(2)非空性别
    phoneNVARCHAR2(25)非空电话

    代码部分:

    数据库

    -- ----------------------------
    -- Table structure for STUDENT
    -- ----------------------------
    DROP TABLE "SYSTEM"."STUDENT";
    CREATE TABLE "SYSTEM"."STUDENT" (
      "ID" NUMBER(38) NOT NULL ,
      "NAME" NVARCHAR2(20) NOT NULL ,
      "SEX" NVARCHAR2(2) ,
      "PHONE" NVARCHAR2(25) ,
      "CLASSSID" NUMBER(38) 
    )
    TABLESPACE "SYSTEM"
    LOGGING
    NOCOMPRESS
    PCTFREE 10
    INITRANS 1
    STORAGE (
      INITIAL 65536 
      NEXT 1048576 
      MINEXTENTS 1
      MAXEXTENTS 2147483645
      FREELISTS 1
      FREELIST GROUPS 1
      BUFFER_POOL DEFAULT
    )
    PARALLEL 1
    NOCACHE
    DISABLE ROW MOVEMENT
    ;
    
    -- ----------------------------
    -- Records of STUDENT
    -- ----------------------------
    INSERT INTO "SYSTEM"."STUDENT" VALUES ('10001', '张三', '男', '10086', NULL);
    INSERT INTO "SYSTEM"."STUDENT" VALUES ('10002', '李四', '女', '10010', NULL);
    INSERT INTO "SYSTEM"."STUDENT" VALUES ('10003', '王五', '男', '10001', NULL);
    INSERT INTO "SYSTEM"."STUDENT" VALUES ('10004', '赵四', '男', '10000', NULL);
    
    -- ----------------------------
    -- Checks structure for table STUDENT
    -- ----------------------------
    ALTER TABLE "SYSTEM"."STUDENT" ADD CONSTRAINT "SYS_C0010908" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
    ALTER TABLE "SYSTEM"."STUDENT" ADD CONSTRAINT "SYS_C0010909" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
    

    信息列表

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    request.setCharacterEncoding("utf-8");
    
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    显示student所有数据
    1 从数据库取出student表所有的数据
    2 展示数据
    */
    
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    //执行查询
    PreparedStatement pst =  conn.prepareStatement("select * from student");
    ResultSet rst = pst.executeQuery();
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>index</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
        <table class="gridtable" style="width: 100%;">
        <tr>
        		<th><a href="<%=basePath%>student/add.jsp">添加</a></th>
        		<th>
        			<form action="${basePath}student/findProcess.jsp" method="post">
        				<input type="text" name="findtext"/>
        				<input type="submit" value="查找" />
        			</form>
        		</th>
        </tr>
        <tr>
        		<th>学号</th>
        		<th>姓名</th>
        		<th>性别</th>
        		<th>电话</th>
        		<th>操作</th>
        	</tr>
        <%
        while(rst.next()) {
        %>
        	<tr align="center">
        		<td><%=rst.getInt("id") %></td>
        		<td><%=rst.getString("name") %></td>
        		<td><%=rst.getString("sex") %></td>
        		<td><%=rst.getLong("phone") %></td>
        		<td>
        			<a href="<%=basePath%>student/update.jsp?id=<%=rst.getInt("id")%>">更新</a>&nbsp;
        			<a href="<%=basePath%>student/delete.jsp?id=<%=rst.getInt("id")%>">删除</a>
        		</td>
        	</tr>
        <%
        
        }
        rst.close();
        pst.close();
        conn.close();
        %>
        	
        </table>
      </body>
    </html>

    添加

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    接受用户输入
    将数据传递给 process页面处理
    */
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
        <form action="${basePath}student/addProcess.jsp" method="post">
    			<table id="datagrid" class="gridtable" style="width: 100%;">
    				<tr>
    					<th>
    						学号
    					</th>
    					<td>
    						<input type="text" name="id" value="" />
    					</td>
    				</tr>
    				<tr>
    					<th>
    						姓名
    					</th>
    					<td>
    						<input type="text" name="name" value="" />
    					</td>
    				</tr>
    				<tr>
    					<th>
    						性别
    					</th>
    					<td>
    						<input type="text" name="sex" value="" />
    					</td>
    				</tr>
    				<tr>
    					<th>
    						电话
    					</th>
    					<td>
    						<input type="text" name="phone" value="" />
    					</td>
    				</tr>
    				<tr>
    					<td colspan="2">
    						<input type="submit" name="sub" value="提交" />
    					</td>
    				</tr>
    
    				<!-- Data End-->
    			</table>
    		</form>
    		<tr>
        		<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
      	 	</tr>
      </body>
    </html>
    

     处理添加信息

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    1 接收传递新增数据需要的参数
    2 存入数据库
    */
    request.setCharacterEncoding("utf-8");
    int id = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    
    String sex = request.getParameter("sex");
    long phone = Long.parseLong(request.getParameter("phone"));
    
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    //执行查询
    PreparedStatement pst =  conn.prepareStatement("insert into student(id,name,sex,phone) values(?,?,?,?)");
    //处理参数
    //pst.setInt(1,id);
    //pst.setString(2,name);
    //pst.setString(3,sex);
    //pst.setInt(4,phone);
    
    //setObject 用于做封装处理
    pst.setObject(1,id);
    pst.setObject(2,name);
    pst.setObject(3,sex);
    pst.setObject(4,phone);
    
    int row = pst.executeUpdate();
    
    
    pst.close();
    conn.close();
    
    out.print("<h1>更新行数 :"+row+"</h1>");
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
      	<tr>
        	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
        </tr>
      </body>
    </html>

     删除

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    1 接收传递修改数据需要的参数
    2 执行删除
    */
    
    int id = Integer.parseInt(request.getParameter("id"));
    
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    //执行查询
    PreparedStatement pst =  conn.prepareStatement("delete from student where id=?");
    //处理参数
    
    //setObject 用于做封装处理
    pst.setObject(1,id);
    
    int row = pst.executeUpdate();
    
    pst.close();
    conn.close();
    
    out.print("<h1>更新行数 :"+row+"</h1>");
    %>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
      	<tr>
        	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
        </tr>
      </body>
    </html>
    
    

    处理查找信息

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ page import="java.sql.*"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    //取得参数
    request.setCharacterEncoding("UTF-8");
    String find = request.getParameter("findtext");
    
    //查询数据库 
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    Statement stmt = conn.createStatement();               //注意Statement与PreparedStatement的区别
    String sql="select * from student where id like '%"+find+"%' or name like '%"+find+"%' or sex like '%"+find+"%' or phone like '%"+find+"%'";
    ResultSet rs=stmt.executeQuery(sql);
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>index</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
      	<table class="gridtable" style="width: 100%;">
    	    <tr>
    	    		<th><a href="<%=basePath%>student/add.jsp">添加</a></th>
    	    		<th>
    	    			<form action="${basePath}student/findProcess.jsp" method="post">
    	    				<input type="text" name="findtext"/>
    	    				<input type="submit" value="查找" />
    	    			</form>
    	    		</th>
    	    </tr>
    	    <tr>
    	    		<th>学号</th>
    	    		<th>姓名</th>
    	    		<th>性别</th>
    	    		<th>电话</th>
    	    		<th>操作</th>
    	    	</tr>
    	    <%
    	    while(rs.next()) {
    	    %>
    	    	<tr align="center">
    	    		<td><%=rs.getInt("id") %></td>
    	    		<td><%=rs.getString("name") %></td>
    	    		<td><%=rs.getString("sex") %></td>
    	    		<td><%=rs.getLong("phone") %></td>
    	    		<td>
    	    			<a href="<%=basePath%>student/update.jsp?id=<%=rs.getInt("id")%>">更新</a>&nbsp;
    	    			<a href="<%=basePath%>student/delete.jsp?id=<%=rs.getInt("id")%>">删除</a>
    	    		</td>
    	    	</tr>
    	    <%
    	    
    	    }
    	    rs.close();
    	    stmt.close();
    	    conn.close();
    	    %>
    	    	
    	  </table>
      </body>
    </html>
    

     更新

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    0 接收 修改数据的id
    1 将原来的数据 显示(数据库查询)
    2 接收修改数据
    3 将修改后的数据提交给 process页面
    */
    
    //取得参数
    int id = Integer.parseInt(request.getParameter("id"));
    
    
    //查询数据库 (按id查询)
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    //执行查询
    PreparedStatement pst =  conn.prepareStatement("select * from student where id=?");
    //处理参数
    pst.setObject(1,id);
    ResultSet rst = pst.executeQuery();
    //rst  默认指向MetaData
    //next 之后 指向第一行数据
    rst.next();
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>index</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
        <form action="${basePath}student/updateProcess.jsp" method="post">
    			<table id="datagrid" class="gridtable" style="width: 100%;">
    				<input type="hidden" name="id" value="<%=rst.getInt("id")%>" />
    				<tr>
    					<th>
    						name
    					</th>
    					<td>
    						<input type="text" name="name" value="<%=rst.getString("name")%>" />
    					</td>
    				</tr>
    				<tr>
    					<th>
    						sex
    					</th>
    					<td>
    						<input type="text" name="sex" value="<%=rst.getString("sex")%>" />
    					</td>
    				</tr>
    				<tr>
    					<th>
    						phone
    					</th>
    					<td>
    						<input type="text" name="phone" value="<%=rst.getLong("phone")%>" />
    					</td>
    				</tr>
    				<tr>
    					<td colspan="2">
    						<input type="submit" name="sub" value="提交" />
    					</td>
    				</tr>
    
    				<!-- Data End-->
    			</table>
    		</form>
      </body>
    </html>
    <%
    rst.close();
    pst.close();
    conn.close();
    %>
    

     处理更新信息

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.ResultSet"%>
    
    
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    /**
    1 接收传递修改数据需要的参数
    2 执行更新
    */
    request.setCharacterEncoding("utf-8");
    int id = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    String sex = request.getParameter("sex");
    long phone = Long.parseLong(request.getParameter("phone"));
    
    //获取数据库连接
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Connection conn =  DriverManager.getConnection(url,"system","123");
    
    //执行查询
    PreparedStatement pst =  conn.prepareStatement("update student set name=?,sex=?,phone=? where id=?");
    //处理参数
    
    //setObject 用于做封装处理
    pst.setObject(4,id);
    pst.setObject(1,name);
    pst.setObject(2,sex);
    pst.setObject(3,phone);
    
    int row = pst.executeUpdate();
    
    pst.close();
    conn.close();
    
    out.print("<h1>更新行数 :"+row+"</h1>");
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>index</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<link rel="stylesheet" type="text/css"  href="${basePath}css/grid.css" />
      </head>
      
      <body>
      	<tr>
        	<th><a href="<%=basePath%>student/list.jsp">返回</a></th>
        </tr>
      </body>
    </html>

     

    展开全文
  • 适合学生交项目,满足增删改查
  • 项目使用技术:EasyUI、Jquery、Ajax、Jsp、Servlet、JDBC连接Mysql数据库。 这么好的东西,怎么能不分享出去呢?大家觉得不错,请分享给你的朋友们。
  • jsp增删改查源代码

    2016-08-31 20:56:17
    jsp简单的web增删改查代码,附上mysql数据库
  • JT项目数据库查询和页面回显1. 查询页面显示2. 叶子目录显示3. 弹出框,树形结构展现 1. 查询页面显示 在item-list.jsp中可以看到 <table class="easyui-datagrid" id="itemList" title="商品列表" data-...

    JT项目数据库增删改查和页面回显

    1. 查询页面显示

    1.1 在item-list.jsp中可以看到

    <table class="easyui-datagrid" id="itemList" title="商品列表" 
           data-options="singleSelect:false,fitColumns:true,collapsible:true,pagination:true,url:'/item/query',method:'get',pageSize:20,toolbar:toolbar">
        定义表格,并且通过url访问json数据, `fitColumns:true`表示自动适应,`singleSelect:true` 表示选中单个
    

    url中需要调用json数据,如
    在这里插入图片描述
    在这里插入图片描述
    要显示商品信息,需要根据item-list.jsp中的url:'/item/query',通过查询数据库返回一个data.json,即需要两个属性,一个是totalrows,rows是一个List列表。
    所以,创建com.jt.vo.EasyUIData,如下

    package com.jt.vo;
    import java.io.Serializable;
    import java.util.List;
    import com.jt.pojo.Item;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.experimental.Accessors;
    @Data
    @Accessors
    @NoArgsConstructor
    @AllArgsConstructor
    public class EasyUIData implements Serializable {
    	private Integer total;	//记录总数
    	private List<Item> rows;//展现数据集合
    }
    
    

    1.2. 编辑ItemController

    根据页面访问的数据//localhost:8090/item/query?page=1&rows=20,需要传入参数pagerows

    //localhost:8090/item/query?page=1&rows=20
    //查询商品信息,返回EasyUIData
    @RequestMapping("/query")
    //需要返回json数据,所以加@ResponseBody或者直接用@RestController
    @ResponseBody
    public EasyUIData findItemByPage(Integer page,Integer rows) {
    	return itemService.findItemByPage(page,rows);
    }
    

    1.3. 编辑ItemServiceImpl

    @Override
    public EasyUIData findItemByPage(Integer page, Integer rows) {
    	//查询总数
    	Integer total = itemMapper.selectCount(null);
    	//分页查询,保存到List中
    	/**
    	 * 分页之后回传数据
    	 * 查询的sql : select * from tb_item limit startIndex(起始位置),rows(查询行数);
    	 * 第1页:  20
    	 * 	select * from tb_item limit 0,20
    	 * 第2页:  
    	 * 	select * from tb_item limit 20,20
    	 * 第3页:
    	 *  select * from tb_item limit 40,20
    	 * 第N页:
    	 * 	 select * from tb_item 
    	 * 			limit (page-1)rows,rows
    	 */
    	//计算起始位置
    	Integer startIndex = (page-1)*rows;
    	List<Item> itemList = itemMapper.findItemByPage(startIndex,rows);
    	return new EasyUIData(total,itemList);
    }
    

    1.4. 编辑ItemMapper

    @Select("select * from tb_item limit #{startIndex},#{rows}")
    	List<Item> findItemByPage(@Param("startIndex") Integer startIndex, @Param("rows")Integer rows);
    	
    

    1.5. 启动项目,在浏览器查询

    在这里插入图片描述
    可以根据更新日期来排序。
    只用修改Mapper中的查询语法即可

    select * from tb_item order by updated desc limit #{startIndex},#{rows};
    

    商品查询完成!!!开香槟!等会儿,为什么叶子目录是空白的?

    2. 叶子目录显示

    在浏览器页面打开开发者工具,启动项目一看,原来报了一堆错
    在这里插入图片描述
    这个queryItemName是什么玩意儿?
    经过一番搜索,原来在webapp/js/common.js
    在这里插入图片描述
    在这儿干嘛,热不热啊?
    原来在查询叶子目录的时候,用户发起了post请求,请求中携带了参数,如
    在这里插入图片描述
    然后根据itemCatId=560common.js中格式化名称,common.js中val表示当前td值

    2.1 创建ItemCat对象

    从商品分类表中查询数据,首先创建ItemCat对象,在jt-common的pojo中创建
    根据tb_item_cat创建
    在这里插入图片描述

    package com.jt.pojo;
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.Data;
    import lombok.experimental.Accessors;
    @Data
    @Accessors(chain = true)
    @TableName("tb_item_cat")
    public class ItemCat extends BasePojo {	
    	@TableId(type = IdType.AUTO)
    	private Long id;
    	private Long parentId;		//父级Id
    	private String name;		//名称
    	private Integer status;		//状态信息
    	private Integer sortOrder;	//排序号
    	private Boolean isParent;	//是否为父级
    }
    
    

    2.2. 编辑ItemCatController

    package com.jt.controller;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    @RequestMapping("/item/cat")
    public class ItemCatController {
    	@Autowired
    	private ItemCatService itemCatService;
    	/**
    	 * 1.用户发起post请求携带了itemCatId=560
    	 * 2.servlet request  response
    	 * @return
    	 */
    	//实现根据id查询商品分类信息
    	//localhost:8090/item/cat/queryItemName
    	@RequestMapping("/queryItemName")
    	public String findItemCatNameById(Long itemCatId) {
    		return itemCatService.findItemCatNameById(itemCatId);
    	}
    }
    

    2.3. 编辑ItemCatService

    package com.jt.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import com.jt.mapper.ItemCatMapper;
    import com.jt.pojo.ItemCat;
    @Service
    public class ItemCatServiceImpl implements ItemCatService {
    	@Autowired
    	private ItemCatMapper itemCatMapper;
    	@Override
    	public String findItemCatNameById(Long itemCatId) {
    		ItemCat itemCat = itemCatMapper.selectById(itemCatId);
    		return itemCat.getName();
    	}
    }
    
    

    2.4. 启动查询,搞定!

    在这里插入图片描述

    3. 弹出框,树形结构展现

    3.1 加载树形结构

    商品新增——选择类目这里是弹出框形式,需要加载树形结构,通过easyui-7-tree.html可以看出,加载的树形结构也是一段外部的json
    在这里插入图片描述
    查询对应的tree.json可以看出,json的格式为:[{id:编号,text:节点名称,state:”open/closed”}]
    所以新建vo对象,定义EasyUITree,如下

    package com.jt.vo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.experimental.Accessors;
    @Data
    @Accessors(chain = true)
    @NoArgsConstructor
    @AllArgsConstructor
    public class EasyUITree {
    	private Long id;		//节点id值
    	private String text;	//名称
    	private String state;	//closed,open
    }
    
    

    3.2.查看页面js,查询对应url请求地址

    根据树形结构加载,查看页面js,查询对应url请求地址,返回值为vo对象的json数据
    在这里插入图片描述

    3.3. 编辑ItemCatController

    //根据parentId查询商品分类信息
    //localhost:8090/item/cat/list
    @RequestMapping("/list")
    public List<EasyUITree> findItemCatByParentId(){
    	Long parentId = 0L;	//先写死一个parentId
    	return itemCatService.findItemCatByParentId(parentId);
    }
    

    3.4. 编辑ItemCatService

    /**
    * 1.根据parentId查询数据库记录返回itemCatList集合
     * 2.将itemCatList集合中的数据按照指定的格式封装为List<EasyUITree>
     */
    @Override
    public List<EasyUITree> findItemCatByParentId(Long parentId) {
    	List<ItemCat> catList = findItemCatList(parentId);
    	List<EasyUITree> treeList = new ArrayList<>();
    	for(ItemCat itemCat : catList) {
    		EasyUITree uiTree = new EasyUITree();
    		uiTree.setId(itemCat.getId());
    		uiTree.setText(itemCat.getName());
    		//如果父级is_parent是true则closed, 不是则open
    		String state = itemCat.getIsParent()?"closed":"open";
    		uiTree.setState(state);
    		treeList.add(uiTree);
    	}
    	return treeList;
    }
    
    private List<ItemCat> findItemCatList(Long parentId) {
    	QueryWrapper<ItemCat> queryWrapper = new QueryWrapper<ItemCat>();
    	//查看源码,eq(字段名,值);
    	queryWrapper.eq("parent_id", parentId);
    	return itemCatMapper.selectList(queryWrapper);
    }
    

    3.5. 完成,启动运行,

    走你,哎,哎,这是怎么回事
    在这里插入图片描述

    3.6. 动态获取parentId

    原来是我们把parentId = 0L写死,一直查询的是固定的数据,这里要把它改为动态获取值。比如这里要再点击图书、音响、电子书刊,会继续查询对应的parent_id,即查询select * from tb_item_cat where parent_id=1;
    在这里插入图片描述
    修改ItemCatController如下

    //根据parentId查询商品分类信息
    //localhost:8090/item/cat/list
    //查询全部数据的商品分类信息   id=560
    //需要获取任意名称的参数,为指定的参数赋值.
    //@RequestParam  value/name 接收参数名称   defaultValue="默认值"  
    // required = true/false 是否必须传值
    @RequestMapping("/list")
    public List<EasyUITree> findItemCatByParentId(
    		@RequestParam(defaultValue="0",value="id") Long parentId){
    //		Long parentId = 0L;
    	return itemCatService.findItemCatByParentId(parentId);
    }
    //这里的value="id",即上图中的id
    

    3.7. 启动运行,树形结构完美展现!

    4. 商品新增

    4.1. 查询页面js

    根据页面js,查询到item-add.jsp中的提交属性如下
    在这里插入图片描述
    在这里插入图片描述
    查询到url=/item/save

    4.2. 封装系统的vo对象(SysResult)

    因为前后台是一个统一的项目,需要给前后台一个友好的回执,在jt-common中添加SysResult

    package com.jt.vo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.experimental.Accessors;
    @Data
    @Accessors(chain = true)
    @NoArgsConstructor
    @AllArgsConstructor
    public class SysResult {
    	private Integer status; //200表示成功  201表示失败
    	private String msg;		//后台返回值数据提示信息
    	private Object data;	//后台返回任意数据	
    	public static SysResult ok() {
    		return new SysResult(200,null,null);
    	}	
    	public static SysResult ok(Object data) {
    		return new SysResult(200, null, data);
    	}
    	public static SysResult ok(String msg,Object data) {
    		return new SysResult(200, msg, data);
    	}
    	public static SysResult fail() {
    		return new SysResult(201, null, null);
    	}
    	public static SysResult fail(String msg) {
    		return new SysResult(201, msg, null);
    	}
    }
    

    4.3. 编辑ItemController

    //localhost:8090/item/save
    	@RequestMapping("/save")
    	public SysResult saveItem(Item item) {
    		try {
    			itemService.saveItem(item);
    			return SysResult.ok();
    		} catch (Exception e) {
    			e.printStackTrace();
    			return SysResult.fail();
    		}
    	}
    

    4.4. 编辑ItemService

    @Transactional//添加事务控制
    	@Override
    	public void saveItem(Item item) {
    		item.setStatus(1)
    			.setCreated(new Date())
    			.setUpdated(item.getCreated());
    		itemMapper.insert(item);
    	}
    

    4.5. 启动运行!

    在编辑页面填写信息,上传图片和商品详情还需要别的业务,暂时先不填,点击提交,查询商品显示新增的信息,表示成功!

    5.新增商品详情

    5.1. 富文本编辑器

    在这里插入图片描述

    5.2. 查询item-add.jsp页面

    在这里插入图片描述

    5.3. 创建ItemDesc对象

    在jt-common中创建ItemDesc对象,根据tb_item_desc添加属性
    在这里插入图片描述

    package com.jt.pojo;
    
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.Data;
    import lombok.experimental.Accessors;
    @TableName("tb_item_desc")
    @Data
    @Accessors(chain = true)
    public class ItemDesc extends BasePojo {
    
    	@TableId
    	private Long itemId;
    	private String itemDesc;
    }
    

    5.4. 编辑ItemController

    //localhost:8090/item/save
    @RequestMapping("/save")
    public SysResult saveItem(Item item,ItemDesc itemDesc) {
    	try {
    		itemService.saveItem(item,itemDesc);
    		return SysResult.ok();
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    

    5.5. 编辑ItemService

    @Transactional//添加事务控制
    @Override
    public void saveItem(Item item,ItemDesc itemDesc) {
    	item.setStatus(1)
    		.setCreated(new Date())
    		.setUpdated(item.getCreated());
    	itemMapper.insert(item);
    	//同时入库两张表
    	itemDesc.setItemId(item.getId())
    			.setCreated(item.getCreated())
    			.setUpdated(item.getCreated());
    	itemDescMapper.insert(itemDesc);
    }
    

    5.6. 编辑ItemDescMapper

    package com.jt.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.jt.pojo.ItemDesc;
    public interface ItemDescMapper extends BaseMapper<ItemDesc>{
    
    }
    

    5.7. 启动添加测试!

    商品新增成功,但还无法在页面回显,需要完善商品修改编辑业务

    6.商品修改编辑

    6.1. 查询url

    在这里插入图片描述

    6.2. 编辑ItemController

    //localhost:8090/item/update
    //需要同时将item和itemDesc对象传入
    @RequestMapping("/update")
    public SysResult updateItem(Item item,ItemDesc itemDesc) {
    	try {
    		itemService.updateItem(item,itemDesc);
    		return SysResult.ok();
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    

    6.3. 编辑ItemService

    @Transactional//添加事务控制
    @Override
    public void updateItem(Item item, ItemDesc itemDesc) {
    	item.setUpdated(new Date());
    	itemMapper.updateById(item);
    	//同时更新两张表
    	itemDesc.setItemId(item.getId())
    			.setUpdated(item.getUpdated());
    	itemDescMapper.updateById(itemDesc);
    }
    

    6.4. 启动测试

    同时修改商品和商品详情,提交,查询商品,显示已经修改成功!

    6.5. 商品详情回显

    查询页面url=//localhost:8090/item/query/item/desc/1474391970,在item-list.jsp中显示如下
    在这里插入图片描述

    6.6. 编辑ItemController

    //localhost:8090/item/query/item/desc/1474391970
    //利用restFul
    @RequestMapping("/query/item/desc/{itemId}")
    public SysResult findItemDescById(@PathVariable Long itemId) {
    	try {
    		ItemDesc itemDesc = itemService.findItemDescById(itemId);
    		return SysResult.ok(itemDesc);
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    

    6.7. 编辑ItemServiceImpl

    @Override
    public ItemDesc findItemDescById(Long itemId) {
    	return itemDescMapper.selectById(itemId);
    }
    

    6.8. 启动测试 !

    发现一个小问题,之前新增商品如果有商品详情,数据回显修改后,能够更新商品详情;如果之前商品没有商品详情,点击编辑之后,添加了商品详情,数据并不会添加到数据库中。(试了几种方法,还是不行,留下来下次处理)

    6.9. 手动商品回显

    修改ItemServiceImpl

    @Override
    public ItemDesc findItemDescById(Long itemId) {
    	return itemDescMapper.findItemDescById(itemId);
    //		return itemDescMapper.selectById(itemId);
    }
    

    6.10. 编辑ItemDescMapper

    package com.jt.mapper;
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.jt.pojo.ItemDesc;
    public interface ItemDescMapper extends BaseMapper<ItemDesc>{
    	ItemDesc findItemDescById(Long itemId);
    }
    
    

    6.11. 编辑ItemDescMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
      PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.jt.mapper.ItemDescMapper">
    	<select id="findItemDescById" resultType="ItemDesc">
    		select * from tb_item_desc where item_id=#{itemId}
    	</select>	
    </mapper>
    

    6.12. 启动测试!

    7.删除商品

    7.1. 查询url以及参数

    在这里插入图片描述

    7.2. 编辑ItemController

    传递过来的参数是String类型的数组,如果参数为String ids,则需要通过按“,”拆分后得到数组,再转换为Long类型。这些步骤框架帮我们完成了,只需要参数传递为Long[] ids即可。

    //localhost:8090/item/delete
    //ids: 1474391965
    //删除
    @RequestMapping("/delete")
    public SysResult deleteItem(Long[] ids) {
    	try {
    		itemService.deleteItem(ids);
    		return SysResult.ok();
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    

    7.3. 编辑ItemServiceImpl

    @Transactional//添加事务控制
    @Override
    public void deleteItem(Long[] ids) {
    	itemMapper.deleteItem(ids);
    }
    

    7.4. 编辑ItemMapper

    void deleteItem(Long[] ids);
    

    7.5. 编辑ItemMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
      PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.jt.mapper.ItemMapper">
    	<!--1.批量删除数据 Long[] ids 
    		collection="array" 参数是数组 
    		collection="list" 参数是list集合 
    		collection="map中的key" 参数经过map封装 
    		delete from tb_item where id in (1,2,4,5) -->
    	<delete id="deleteItem">
    		delete from tb_item where id in (
    		<foreach collection="array" separator="," item="id">
    			#{id}
    		</foreach>
    		)
    	</delete>
    </mapper>
    

    7.6. 或者利用mybatis-plus自动删除

    @Transactional//添加事务控制
    @Override
    public void deleteItem(Long[] ids) {
    	//1.手动删除
    	//itemMapper.deleteItem(ids);
    	//2.利用Mybatis-plus自动删除
    	List<Long> itemList = Arrays.asList(ids);
    	itemMapper.deleteBatchIds(itemList);
    	//2张表一起删除
    	itemDescMapper.deleteBatchIds(itemList);
    }
    

    7.7 启动测试 !

    8. 商品上架/下架

    8.1页面url分析

    上架
    上架
    下架
    下架
    页面js
    在这里插入图片描述

    8.2 编辑ItemController

    商品上架(reshelf)status=1,商品下架(instock)status=2

    //localhost:8090/item/reshelf
    //商品上架
    @RequestMapping("/reshelf")
    public SysResult reshelf(Long[] ids) {
    	try {
    		int status = 1;
    		itemService.updateStatus(ids,status);
    		return SysResult.ok();
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    
    //localhost:8090/item/instock
    //商品下架
    @RequestMapping("/instock")
    public SysResult instock(Long[] ids) {
    	try {
    		int status = 2;
    		itemService.updateStatus(ids,status);
    		return SysResult.ok();
    	} catch (Exception e) {
    		e.printStackTrace();
    		return SysResult.fail();
    	}
    }
    

    8.3 编辑ItemServiceImpl

    /*
     * sql: update tb_item 
     * 		set status=#{status},updated=#{updated} 
     * 		where id in (100,200,300....)
     * */
    @Transactional//添加事务控制
    @Override
    public void updateStatus(Long[] ids, int status) {
    	Item item = new Item();
    	item.setStatus(status)
    		.setUpdated(new Date());
    	List<Long> longIds = Arrays.asList(ids);
    	UpdateWrapper<Item> updateWrapper = new UpdateWrapper<Item>();
    	updateWrapper.in("id", longIds);
    	itemMapper.update(item, updateWrapper);	
    }
    

    8.4 启动测试 !

    在这里插入图片描述

    展开全文
  • 用于练习jsp 和 JDBC 数据库增删改查sql命令 分页查询等功能
  • 本文实现了用MyEclipse,编写Servlet,实现对SQLServer数据库增删改查,适合新手入门,文末提供工程文件源码下载。1.新建数据库test以及表users表users共四列(id,name,psd,tel) 具体操作步骤见上篇博文。...
    本文实现了用MyEclipse,编写Servlet,实现对SQLServer数据库的增删改查,适合新手入门,文末提供工程文件源码下载。
    

    1.新建数据库test以及表users

    表users共四列(id,name,psd,tel)
    具体操作步骤见上篇博文。具体操作步骤

    2.新建工程Web Project工程0623p

    3. 编辑WebRoot目录下的index.jsp

    创建表单(序号、账号、密码、电话、操作),并读取当前数据库内容。
    

    注意:
    此处要导入sql_data.java包用于连接数据库(在src目录下新建edu.hwadee.pro.bean包,将sql_data.java复制到此包下即可),
    <jsp:useBean id="db" class="edu.hwadee.pro.bean.sql_data" />//id是给bean取个别名,class表示调用的类。
     以及导入java.sql.不然会报错哦。import="java.sql.*"*
     将修改、删除、添加用户的链接也一并写好。
    代码如下

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" import="java.sql.*"%>
    <jsp:useBean id="db" class="edu.hwadee.pro.bean.sql_data" />
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
    
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      <body>
            我的首页 <br>
            <table border=1>
            <tr>
                <td>序号</td>
                <td>账号</td>
                <td>密码</td>
                <td>电话</td>
                <td>操作</td>
            </tr>
            <%
                    String sql = "select * from users";
                    ResultSet rs = null;
    
                    rs = db.executeQuery(sql);  //查询数据库,
                    //executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用
                    while (rs.next()) { //rs 游标下移,rs.next()返回一个布尔值,为true,则数据表中有记录。
                    //next()可以遍历全部数据。 
                        String aa = rs.getString(1); //取出第一个字段的数据
                        String bb = rs.getString(2);
                        String cc = rs.getString(3);
                        String dd = rs.getString(4);
                        out.print("<tr><td>" + aa + "</td><td>" + bb + "</td><td>" + cc
                                + "</td><td>" + dd
                                + "</td><td><a href='servlet/delServlet?id="+aa+"'>删除</a>、<a href='update.jsp?xh=" + aa + "&&mz="
                                + bb + "&&mm=" + cc + "&&dh=" + dd
                                + "'>修改</a></td></tr>");
                    }
                %>
            </table><br>
            <a href="add.jsp">添加用户</a>
      </body>
    </html>
    

    启动tomcat服务,将工程发布检测一下(具体步奏见上篇博文),效果如图
    这里写图片描述

    但此时不用去点击删除修改添加这些,因为实现代码还没写好。

    4.在src目录下新建edu.hwadee.pro.control包

    用于存放增删改查的Servlet程序文件。
    在此包下新建Servlet,取名updateServlet,用于修改数据库。
    修改doPost()函数,记得导入import edu.hwadee.pro.bean.sql_data包哦,其部分源码如下:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            String aa = null, bb = null, cc = null, dd = null;
            aa = request.getParameter("id");      //接收表单传来的四个数据
            bb = request.getParameter("name");
            cc = request.getParameter("psd");
            dd = request.getParameter("tel");
            String sql = "update users set name='" + bb + "',psd='" + cc
                    + "',tel='" + dd + "'where id='" + aa + "'";  //条件修改语句的定义
    
            sql_data db = new sql_data();
            db.executeUpdate(sql);  //修改执行
            response.sendRedirect("../index.jsp");
        }

    5.在WebRoot目录下新建JSP文件update.jsp

    用于创建表单,填写要修改的数据库内容。
    

    源码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!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>Insert title here</title>
    </head>
    <body>
    <%
        String aa=null,bb=null,cc=null,dd=null;
        aa=request.getParameter("xh");
        bb=request.getParameter("mz");
        cc=request.getParameter("mm");
        dd=request.getParameter("dh");
     %>
     <form action="servlet/updateServlet" method="post"><%--action调用位置可查看web.xml--%>
        序号<input name="id" type="hidden" value="<%=aa%>"><%=aa%><br/><%--将id隐藏,防止用户修改,第二个aa则是将其显示给用户 --%>
        账号<input name="name" value="<%=bb%>"><br/>
        密码<input name="psd" value="<%=cc%>"><br/>
        电话<input name="tel" value="<%=dd%>"><br/>
        <input name="sub" type="submit" value="修改"><br/>
     </form>
    </body>
    </html>

    发布一下工程,打开index.jsp页面,点击修改,欧耶,是不是能够修改数据内容了呢!!

    6.同理,创建addServlet.java和delServlet.java

    在edu.hwadee.pro.control目录下再新建两个Servlet,分别是addServlet.java和delServlet.java,并修改其代码,addServlet.java修改doPost()函数,delServlet.java修改doGet()函数,注意要导入import edu.hwadee.pro.bean.sql_data包哦。
    addServlet.java部分源码如下:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            String bb = null, cc = null, dd = null;
            // aa = request.getParameter("id"); //接收表单传来的三个数据
            bb = request.getParameter("name");
            cc = request.getParameter("psd");
            dd = request.getParameter("tel");
            String sql = "insert into users(name,psd,tel) values('" + bb + "','"
                    + cc + "','" + dd + "')"; // 条件修改语句的定义
    
            sql_data db = new sql_data();
            db.executeInsert(sql); // 添加执行
            response.sendRedirect("../index.jsp");
        }

    delServlet.java 部分源码如下:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            String id = request.getParameter("id");
               String sql = "delete from users where id='"+id+"'";
               sql_data db = new sql_data();
                db.executeDelete(sql); // 删除执行
                response.sendRedirect("../index.jsp");
        }

    7. 在WebRoot目录下新建JSP文件add.jsp

    用于创建表单,填写要增加的数据库内容。删除数据库内容不需要填写数据,所以就不用写个del.jsp了。
    源码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!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>Insert title here</title>
    </head>
    <body>
    <form action="servlet/addServlet" method="post">
        账号<input name="name" ><br>
        密码<input name="psd" ><br>
        电话<input name="tel" ><br>
        <input name="sub" type="submit" value="添加"><br>
    </form>
    </body>
    </html>

    8. 发布一下工程

    打开index.jsp页面,修改、删除、增加用户!!!是不是所有功能都实现了呢,棒棒哒!

    9. 工程目录

    工程目录


    工程目录

    10. 如果报错

    尝试一下方法:
     检查一下是否将sqljdbc4.jar复制到
    MyEclipse8.5\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\lib\ext下
     重新发布工程,重启tomcat服务,并重启MyEclipse。

    11. 工程源码下载

    点击此处下载
    本文中用到的软件、工具下载地址可从上篇博文寻找。

    转载请注明出处,谢谢。博客地址http://blog.csdn.net/u010887744
    如有任何问题,欢迎留言。祝君好运!
    Life is all about choices!
    将来的你一定会感激现在拼命的自己!

    展开全文
  • 增删改查 源码

    2018-04-13 19:34:05
    jsp-api.jar log4j-api-2.9.1.jar log4j-core-2.9.1.jar mysql-connector-java-5.1.40-bin.jar ognl-3.1.15.jar servlet-api.jar struts2-core-2.5.16.jar taglibs-standard-impl-1.2.5.jar taglibs-standard-spec-...
  • 1、myeclipse+tomcat+mysql 2、没有数据库
  • javaweb+servlet+mysql登录+注册+增删改查源码

    千次阅读 多人点赞 2019-04-08 21:39:09
    一.项目功能简介 功能流程图 二....src/com.neusoft.dao存放实体类和数据库操作的java文件 ...src/com.neusoft.servlet存放servlet的文件,用来接收前台发来的请求和数据,传到数据库,再返回给前台 webContent...
  • 所以,熟练使用增删改查是java的入门标准尺,现在我们就来学习一个最最最基础的增删改查,基于servlet+tomcat+jsp的crud(增删改查学术名字) 源码 csdn:CSDN下载 github:GITHUB下载 环境 ide:idea jdk:1.8 mysql:...
  • Servlet+MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库增删改查(crud))-附件资源
  • mysql+jsp+servlet 增删改查实例

    万次阅读 多人点赞 2016-10-08 16:56:19
    采用简单的MVC设计模式,M(模型层) -&gt; Address.java 里面包含id,name,street,city,state,zip 等相关属性和set,get方法 ... 这里只用一个servlet实现其增删改查(简单明了,方便理解),并没有用...
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 ... 一、JSP和Servlet的简单介绍 1、Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servl...
  • 主要是由于每个jsp文件的编码方式不同,数据库传过来的参数jsp页面无法识别,导致500错误; 2.数据库操作不对应 怪我数据库每学扎实,insert数据的时候忘记了table后面的参数:insert table(sno,sname) ...
  • A 注:(发送失败的短信的存储表格) create table A ( list_id VARCHAR2(40) not null, task_id VARCHAR2(40), content VARCHAR2(2000), presend_dt DATE, ...用Oracle数据库其他框架不限,请带上jar包发送
  • 借阅者功能—登录、首页 借阅者功能—借阅信息 借阅者功能—借阅图书 定制项目 本人接根据你的需求接定制项目,保存自己的项目、源码、文档和他人的不重复,全是本人根据你的需求定制产品,源码中将记录大量注解,...
  • * 数据库连接工具包 * @author Administrator * */ public class JDBCUtils { static Connection conn =null; static Statement stmt=null; static ResultSet rs=null; /** * 加载驱动 ...
  • 简单jsp动态页面源代码 实现页面操作对数据库增删改查 特别简单化,适合初学者查看!
  • //终于能简单搞出来了...中软实习第四天:在IDEA+MAVEN的环境下使用SSM框架实现简单的数据库增删改查(代码实现) IDEA+Maven 整合SSM框架实现简单的增删改查 解决Address localhost:1099 is already in use
  • 又经过两天的补习,这回复习的是原生JSP增删改查,主要是Java部分写逻辑,然后再JSP中调用相应的逻辑从而实现网页的增删改查以及登陆功能,并且通过Filter过滤器来实现未登录拦截功能。下面是目录结构:  这里大致...
  • 目录前言(一)如图所示建好所有.java文件(二)com.myh.bean包下的java文件User.java(三)com.myh.jdbc(四)com.myh.servlet(五)根据下图建好jsp文件,本人还对项目界面进行了美化,故会用到js和css,用的最大的两...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,297
精华内容 3,318
关键字:

jsp数据库增删改查源码