前端先不考虑,姑且先做后端。(PS:强迫症,没点逼格我不想发出来)
思路很简单 基于昨天的,新建servlet类进行插入操作,因为我的Oracle操作已封装,所以看上去会很少代码,但是大致方法是一样的,有问题可以问我。新建的UserRegist.java,公共库类OracleComm.java在昨天的文章中有。老师抛弃我们自己不能抛弃自己。
package com.lckiss.action; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UserRegist extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { // get到属性名为user的用户名 String user = req.getParameter("user"); // get到属性名为password的密码 String pwd = req.getParameter("password"); // String job = req.getParameter("job"); System.out.println(user); System.out.println(pwd); resp.setContentType("text/html;charset=GBK"); PrintWriter out = resp.getWriter(); boolean rs = Regist(user, pwd); if (rs) { out.println("<p>" + user + " 已插入成功</p>"); out.println("<p>编号 , 姓名 , 工作 , HIREDATA , SAL , COMM , DEPTNO.</p>"); // 查询所有元素的接口 List list = OracleComm.QueryALL(); for (Object c : list) { String l = (String) c; String no = l.split(",")[0]; // 因为list.add中插入这段字符串容易出错,所以单独新建一个字符串 String del = "http://localhost/day_1/del?empno=" + no + ""; out.println("<p>" + l + "-" + "<a href='" + del + "'>删除</a></p>"); } } else { out.println("失败"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private boolean Regist(String user, String pwd) throws Exception { // String sql = "insert into emp (empno,ename,job ,mgr, // hiredate,sal,comm,deptno) value(SEQ.NEXTVAL,'t' ,null,null ,null,900,600 // ,null);"; // SEQ.NEXTVAL指名为SEQ的Sequence的下一个值,Sequence需要自己布置 String sql = "insert into emp (EMPNO,ename,job) values(SEQ.NEXTVAL,'" + user + "','" + pwd + "')"; // 老规矩断点检查 System.out.println(sql); int rs = OracleComm.ExecuteUpdate(sql); if (rs > 0) { return true; } else { return false; } } }
部署下servlet 地址为 http://localhost/day_1/regist
<servlet> <servlet-name>Regist</servlet-name> <servlet-class>com.lckiss.action.UserRegist</servlet-class> </servlet> <servlet-mapping> <servlet-name>Regist</servlet-name> <url-pattern>/regist</url-pattern> </servlet-mapping>
这些都不是重点 ,或许值得一提的就是Sequence 我是看的这篇文章 点我
内容属性,例子都很详细
在Oracle上的执行语句为
#不要复制粘贴,必定错,按段来,语句解释仔细看那篇文章 CREATE SEQUENCE SEQ MINVALUE 3935 START WITH 7935 NOMAXVALUE INCREMENT BY 1 NOCYCLE CACHE 30 #这是查询SEQ的下一个值的语句 SELECT SEQ.NEXTVAL FROM EMP #这是删除这个SEQ的语句 DROP SEQUENCE SEQ
上面是这次servlet中插入语句的解释,
最后上个结果图 插入成功会有提示并更新下面的列表。
前端有时间就直接上源码和图,懒得贴。 Anr-C 2016.9.23
本站由以下主机服务商提供服务支持:
0条评论