前端先不考虑,姑且先做后端。(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
本站广告由 Google AdSense 提供
0条评论