JAVA WEB数据库Sequence批量插入 – 9.23


前端先不考虑,姑且先做后端。(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

1474606130757520.png

上面是这次servlet中插入语句的解释,

最后上个结果图 插入成功会有提示并更新下面的列表。

1.png

前端有时间就直接上源码和图,懒得贴。  TIL-MICE 2016.9.23

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - JAVA WEB数据库Sequence批量插入 – 9.23


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.