JavaWeb应用实例servlet实现oracle基本增删改查(精)
- 格式:doc
- 大小:141.00 KB
- 文档页数:21
Java项目中实现增删改查的基本流程1. 确定需求和设计数据库在开始实现增删改查功能之前,首先需要明确项目的需求,并设计相应的数据库结构。
数据库可以使用关系型数据库如MySQL、Oracle,或者非关系型数据库如MongoDB、Redis等。
2. 创建数据模型根据需求和数据库设计,创建相应的Java数据模型。
数据模型可以使用Java类来表示,类中的属性对应数据库表的字段。
public class User {private Long id;private String name;private int age;// ...// getter and setter methods}3. 创建数据库连接在Java项目中使用数据库之前,需要先创建数据库连接。
可以使用JDBC来连接关系型数据库,或者使用相应的驱动来连接非关系型数据库。
public class DatabaseUtil {private static final String URL = "jdbc:mysql://localhost:3306/mydb";private static final String USERNAME = "root";private static final String PASSWORD = "password";public static Connection getConnection() {try {return DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (SQLException e) {e.printStackTrace();}return null;}}4. 实现增加数据功能增加数据功能是向数据库中插入新的数据记录。
可以通过执行SQL插入语句来实现。
public class UserDao {public void addUser(User user) {String sql = "INSERT INTO user (name, age) VALUES (?, ?)";try (Connection conn = DatabaseUtil.getConnection();PreparedStatement stmt = conn.prepareStatement(sql)) {stmt.setString(1, user.getName());stmt.setInt(2, user.getAge());stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}}}5. 实现删除数据功能删除数据功能是从数据库中删除指定的数据记录。
jsp+servlet+jdbc实现对数据库的增删改查⼀、JSP和Servlet的简单介绍:1、Servlet和JSP简介: Java开发Web应⽤程序时⽤到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执⾏的Java程序,⼀个被称为Servlet容器的程序(其实就是服务器)负责执⾏Java程序,⽽JSP(Java Server Page)则是⼀个页⾯,由JSP容器负责执⾏。
2、Servlet和JSP的区别:Servlet以Java程序为主,输出HTML代码时需要使⽤out.println函数,也就是说Java中内嵌HTML;⽽JSP则以HTML页⾯为主,需要写Java代码时则在页⾯中直接插⼊Java代码,即HTML中内嵌Java。
3、MVC模型MVC模型就是将数据、逻辑处理、⽤户界⾯分离的⼀种⽅法。
1)、M(Model,模型):⽤于数据处理、逻辑处理2)、V(View,视图):⽤于显⽰⽤户界⾯3)、C(Controller,控制器):根据客户端的请求控制逻辑⾛向和画⾯⽽在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet1)、M = JavaBeans:⽤于传递数据,拥有与数据相关的逻辑处理2)、V = JSP:从Model接收数据并⽣成HTML3)、C = Servlet:接收HTTP请求并控制Model和View⼆、代码演⽰,实现了book的添加删除和修改功能1、环境的配置myeclipse+tomcat+MySQL2、Book中bean类:提供字段属性,并提供get/set⽅法package example.bean.book;public class Book {// 编号private int id;// 图书名称private String name;// 价格private double price;// 数量private int bookCount;// 作者private String author;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getBookCount() {return bookCount;}public void setBookCount(int bookCount) {this.bookCount = bookCount;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}}3、Servlet类1)、FindServlet.javapackage example.servlet.book;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import example.bean.book.Book;//导⼊包下的Book类/*** Servlet implementation class FindServlet*/public class FindServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {try {// 加载数据库驱动,注册到驱动管理器Class.forName("com.mysql.jdbc.Driver");// 数据库连接字符串String url = "jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf-8";// 数据库⽤户名String username = "root";// 数据库密码String password = "";// 创建Connection连接Connection conn = DriverManager.getConnection(url, username,password);// 添加图书信息的SQL语句String sql = "select * from tb_books";// 获取StatementStatement statement = conn.createStatement();ResultSet resultSet = statement.executeQuery(sql);List<Book> list = new ArrayList<Book>();while (resultSet.next()) {Book book = new Book();book.setId(resultSet.getInt("id"));book.setName(resultSet.getString("name"));book.setPrice(resultSet.getDouble("price"));book.setBookCount(resultSet.getInt("bookCount"));book.setAuthor(resultSet.getString("author"));list.add(book);}request.setAttribute("list", list);resultSet.close();statement.close();conn.close();} catch (Exception e) {e.printStackTrace();}request.getRequestDispatcher("book_list.jsp").forward(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}2)、UpdateServlet.java类package example.servlet.book;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class UpdateServlet*/public class UpdateServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {int id = Integer.valueOf(request.getParameter("id"));int bookCount = Integer.valueOf(request.getParameter("bookCount"));try {// 加载数据库驱动,注册到驱动管理器Class.forName("com.mysql.jdbc.Driver");// 数据库连接字符串String url = "jdbc:mysql://localhost:3306/db_book";// 数据库⽤户名String username = "root";// 数据库密码String password = "";// 创建Connection连接Connection conn = DriverManager.getConnection(url, username,password);// 更新SQL语句String sql = "update tb_books set bookcount=? where id=?";// 获取PreparedStatementPreparedStatement ps = conn.prepareStatement(sql);// 对SQL语句中的第⼀个参数赋值ps.setInt(1, bookCount);// 对SQL语句中的第⼆个参数赋值ps.setInt(2, id);// 执⾏更新操作ps.executeUpdate();// 关闭PreparedStatementps.close();// 关闭Connectionconn.close();} catch (Exception e) {e.printStackTrace();}// 重定向到FindServletresponse.sendRedirect("FindServlet");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}3)、DeleteServlet类package example.servlet.book;import java.io.IOException;import java.sql.Connection;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import example.dao.book.BookJdbcDao;import example.dao.book.ConnectionFactory;/*** Servlet implementation class DeleteServlet*/public class DeleteServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {int id = Integer.valueOf(request.getParameter("id"));try {//// 加载数据库驱动,注册到驱动管理器// Class.forName("com.mysql.jdbc.Driver");//// 数据库连接字符串// String url = "jdbc:mysql://localhost:3306/db_book";//// 数据库⽤户名// String username = "root";//// 数据库密码// String password = "";//// 创建Connection连接// Connection conn = DriverManager.getConnection(url, username,// password);//// 删除图书信息的SQL语句// String sql = "delete from tb_books where id=?";//// 获取PreparedStatement// PreparedStatement ps = conn.prepareStatement(sql);//// 对SQL语句中的第⼀个占位符赋值// ps.setInt(1, id);//// 执⾏更新操作// ps.executeUpdate();//// 关闭PreparedStatement// ps.close();//// 关闭Connection// conn.close();BookJdbcDao bookDao=new BookJdbcDao();Connection conn=ConnectionFactory.getInstance().getConnection();bookDao.delete(conn,id);} catch (Exception e) {e.printStackTrace();}// 重定向到FindServletresponse.sendRedirect("FindServlet");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}4、servlet访问url映射配置: 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到⼀个URL地址上,这个⼯作在web.xml⽂件中使⽤<servlet>元素和<servlet-mapping>元素完成,<servlet>元素⽤于注册Servlet,它包含有两个主要的⼦元素:<servlet-name>和<servlet-class>,分别⽤于设置Servlet的注册名称和Servlet的完整类名。
Oracle的基本语法(增删改查)表的操作:创建表:create table 表名(列名属性;);查看表结构:desc 表名;表重命名:rename 原表名 to 新表名;删除表:drop 表名;表的字段操作:增:alter table 表名 add 列名列的属性; --单列操作alter table 表名 add (列名1 列1的属性,列名2 列2的属性,...) --多列操作删: alter table 表名 drop column 列名; --单列操作alter table 表名 drop (列1,列2); --多列操作(多列不需要加column)改:alter table 表名 modify 列名新属性; --单列操作alter table 表名 modify (列名1 列1的新属性,列名2 列2的新属性);--多列操作数据的操作:增:--单⾏操作insert into 表名 values(所有列的信息); --数据类型必须与表结构⾥字段的属性⼀致insert into 表名 values(部分信息); --会按表的字段顺序加⼊信息,后⾯没设置的为null(输⼊数据必须⼩于或等于列数) --多⾏操作insert into 表1select 数据1 from dualunionselect 数据2 from dual; --dual 是⼀张伪表只是为了⽅便操作⽽存在,需要了解的请百度删:delete from 表名 --删除所有数据delete 列名 from 表名 where 条件 --删除符合条件的某些数据删除某⼀列数据(该列必须可以为null):1.update 表名 set 列名=null;2.delete from 表名 where 列名 is not null ;改:update 表名 set 列名=数据 where 条件; --修改满⾜条件的数据update 表名 set 列名=数据; --将该列全部修改查看:select * from 表名; --查看表的全部信息select 列1,列2 from 表名; --查看表的列1,列2信息。
JAVA 数据库基本操作, 增删改查package mypack; JAVA 数据库基本操作, 增删改查import java.sql.Connection;import java.sql.ResultSet;import java.util.ArrayList;public class DbOper {//查询多行记录public ArrayList select({Connection conn =null;ResultSet rs =null;try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(;conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =newTitles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione {e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione {e.printStackTrace(;}}//TODO 自动生成catch 块return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null;ResultSet rs =null;try {PreparedStatement pstmt =null; Titles t =new Titles(;conn =DbConn.getConn(;pstmt.setString(1,titleid;while (rs.next({pstmt =conn.pre pareStatement(“select *from titles where title_id=?”; rs =pstmt.executeQuery(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;}}catch (SQLExceptione {e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione {e.printStackTrace(;}}}//TODO 自动生成catch 块return t;//增加记录public boolean insert(Titlest{Connection conn =null;boolean b =false; try {PreparedStatement pstmt=null;conn=DbConn.getConn(;pstmt =conn.prep areStatement(“insert into titles(title_id,titlevalues (?,?”; pstmt.setString(1,t.getTitleid(;pstmt.setString(2,t.getTitle(;int n =pstmt.executeUpdate(;if(n==1b=true;}catch (SQLExceptione {e.printStackTrace(;}finally{try {//TODO 自动生成catch 块if(pstmt!=nullpstmt.close(;if(conn!=nullconn.close(;}catch (SQLExceptione {e.printStackTrace(;}}}//TODO 自动生成catch 块return b;//删除记录public boolean delete(Stringtitleid{Connection conn =null;boolean b =false; try {PreparedStatement pstmt=null;conn =DbConn.getConn(;pstmt.setString(1,titleid;if(n==1b=true;pstmt =conn.prepareStatement(“delete from titles where title_id=?”; int n =pstmt.executeUpdate(;}catch (SQLExceptione {e.printStackTrace(;}finally{try {//TODO 自动生成catch 块if(pstmt!=nullpstmt.close(;if(conn!=nullconn.close(;}catch (SQLExceptione {e.printStackTrace(;}}//TODO 自动生成catch 块return b;}//修改表public boolean update(Titlest{Connection conn =null;boolean b PreparedStatement pstmt=null;try {=false;conn =DbConn.getConn(;pstmt =conn.prepareStatement(“update titles settitle=?where title_id=?”; pstmt.setString(1,t.getTitle(;pstmt.setString(2,t.getTitleid(;int n =pstmt.executeUpdate(;if(n==1b=true;}catch (SQLExceptione {e.printStackTrace(;}finally{try {//TODO 自动生成catch 块if(pstmt!=nullpstmt.close(;if(conn!=nullconn.close(;}catch (SQLExceptione {e.printStackTrace(;}}}}//TODO 自动生成catch 块return b;。
java项目中实现增删改查基本流程Java项目中实现增删改查基本流程引言本文将详细讨论在Java项目中实现增删改查的基本流程。
通过该流程,我们可以在项目中对数据进行操作,包括创建、读取、更新和删除。
步骤一:创建在创建数据之前,首先需要创建数据库和相应的表。
接下来,我们可以通过以下步骤创建具体的数据:1.创建模型类:创建一个Java类来表示数据模型,包含需要的属性和方法。
2.设计数据库表结构:根据模型类的属性,设计数据库表结构,确定每个属性对应的字段。
3.编写DAO(数据访问对象)类:该类用于实现对数据库的访问操作,包括插入数据到数据库中。
4.实例化模型类:在业务逻辑层中,实例化模型类,并设置相应的属性值。
5.调用DAO类的插入方法:在业务逻辑层中,调用DAO类的插入方法,将数据插入到数据库中。
步骤二:读取读取数据是对数据库进行查询操作,获取需要的数据。
下面是读取数据的基本流程:1.编写DAO类的查询方法:在DAO类中编写查询方法,根据需要的条件和属性查询数据。
2.调用DAO类的查询方法:在业务逻辑层中,调用DAO类的查询方法,获取查询结果。
3.处理查询结果:根据返回的结果集,进行数据的处理和展示。
步骤三:更新更新数据是对数据库中已有数据的修改操作。
下面是更新数据的基本流程:1.编写DAO类的更新方法:在DAO类中编写更新方法,根据需要的条件和属性更新数据。
2.实例化模型类并设置属性值:在业务逻辑层中,实例化模型类,并设置需要更新的属性值。
3.调用DAO类的更新方法:在业务逻辑层中,调用DAO类的更新方法,更新数据。
步骤四:删除删除数据是在数据库中删除指定的数据记录。
下面是删除数据的基本流程:1.编写DAO类的删除方法:在DAO类中编写删除方法,根据需要的条件删除数据。
2.调用DAO类的删除方法:在业务逻辑层中,调用DAO类的删除方法,删除数据。
结论在一个Java项目中,实现增删改查的基本流程是创建、读取、更新和删除。
MVC模式M:Model,即模型,对于JavaBeanV:View,即试图,对应JSP页面C:Controller,即控制器,对应Servlet1.以下为MVC实现一个简单的增删改查功能1>显示记录2>增加一条记录3>修改一条记录4>删除一条记录程序源代码:M层:模型层1.封装一条信息的所有属性JavaBean.java ,即VO package muta.bean;/*** @author help*封装一条信息的所有属性*/public class JavaBean {private int id;private String name;private String password;private String sex;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {/*** @author help*操作数据库的方法*/public class SqlBean {Connection con;PreparedStatement pre;ResultSet rs;public SqlBean(){try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/MyServl et","root","122828");} catch (SQLException e) {e.printStackTrace();}}/*** @author help**插入新的一条记录* @return*/public int getInsert(String sql,JavaBean jBean) {int count =0;try {pre = con.prepareStatement(sql);pre.setString(1,jBean.getName());pre.setString(2,jBean.getPassword());pre.setString(3,jBean.getSex());pre.setInt(4,jBean.getAge());count=pre.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {pre.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return count;}/*** @author help**删除一条记录* @return*/public int getDelete(String sql,int id){int count =0;try {pre = con.prepareStatement(sql);pre.setInt(1, id);count=pre.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {pre.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return count;}/*** @author help**根据ID查询某一条记录* @return*/public JavaBean getSearchById(String sql,int id){JavaBean jBean = new JavaBean();try {pre = con.prepareStatement(sql);pre.setInt(1, id);rs=pre.executeQuery();while(rs.next()){jBean.setId(rs.getInt("id"));jBean.setName(rs.getString("name"));jBean.setPassword(rs.getString("password"));jBean.setSex(rs.getString("sex"));jBean.setAge(rs.getInt("age"));}} catch (SQLException e){e.printStackTrace();}return jBean;}/*** @author help**更新某一条记录* @return*/public int getUpdate(String sql,JavaBean jBean) {int count =0;try {pre = con.prepareStatement(sql);pre.setInt(5,jBean.getId());pre.setString(1,jBean.getName());pre.setString(2,jBean.getPassword());pre.setString(3,jBean.getSex());pre.setInt(4,jBean.getAge());count = pre.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {pre.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return count;}jBean.setAge(rs.getInt("age"));list.add(jBean);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {pre.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}}V层:试图层1.显示记录集的页面 SearchList.jsp<%@page language="java"import="java.util.*" pageEncoding="UTF-8"%><%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><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>显示记录</title></head><body><center><font color=red size=72>学生信息如下:</font><hr><table border=1bgColor="#ffffff"width="500px" height="100px"><tr><td>ID</td><td>姓名</td><td>密码</td><td>性别</td><td>年龄</td><td><center>操作</center></td></tr><jsp:useBean id="sBean"class="muta.bean.SqlBean"/> <jsp:useBean id="jBean"class="muta.bean.JavaBean"/><%String sql ="select * from student order by id";java.util.List list =sBean.getSearch(sql);for(java.util.Iterator it=list.iterator();it.hasNext();){//获取一个JavaBean对象jBean =(muta.bean.JavaBean)it.next();%><tr><td><%=jBean.getId() %></td><td><%=jBean.getName() %></td><td><%=jBean.getPassword() %></td><td><%=jBean.getSex() %></td><td><%=jBean.getAge() %></td><td><a href="Insert.jsp">增加</a><a href="Delete?id=<%=jBean.getId()%>">删除</a> <ahref="SearchById?id=<%=jBean.getId()%>">更新</a> </td></tr><% }%></table>2.插入页面Insert.jsp<center><font color=red size=72>学生管理页面</font><hr><form action="Insert"method="post"><table border="1"><tr><td>姓名:</td><td><input name ="name"></td></tr><tr><td>密码:</td><td><input type="password"name ="password"></td> </tr><tr><td>性别:</td><td><input type="radio"name ="sex"value="男">男<input type="radio"name ="sex"value="女">女</td><tr><td>年龄:</td><td><input type="text"name ="age"></td> </tr><tr><td colspan="2"><center><input type="submit"value="提交"><input type="reset"value="重置"></center></td></tr></table></form><a href="SearchList.jsp">查询</a></center></body></html>3.更新页面Update.jsp<%@page language="java"import="java.util.*" pageEncoding="UTF-8"%><%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><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>更新</title></head><body><center><font color=red size=72>学生管理页面</font><hr><form action="Update"method="post""><table border="1"><tr><td>学生ID:</td><td><input name="id"value="<%=request.getAttribute("id") %>" readonly></td></tr><tr><td>学生姓名:</td><td><input name="name"value="<%=request.getAttribute("name") %>"></td> </tr><tr><td>学生密码:</td><td><input type="password"name="password"value="<%=request.getAttribute("password") %>"> </td></tr><tr><td>学生性别:</td><td><input type="radio"name ="sex"value="男"<%=request.getAttribute("man") %>>男<input type="radio"name ="sex"value="女"<%=request.getAttribute("woman") %>>女</td></tr><tr><td>学生年龄:</td><td><input type="text"name="age"value="<%=request.getAttribute("age") %>"></td> </tr><tr><td colspan="2"><center><input type="submit"value="提交"><input type="reset"value="重置"></center>4.出错页面Error.jspC层:控制层—Servlet1.显示记录集的Servlet----SearchById.javapackage muta.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import muta.bean.JavaBean;import muta.bean.SqlBean;public class SearchById extends HttpServlet {private static final long serialVersionUID = 1L;/*** The doDelete method of the servlet. <br>** This method is called when a HTTP delete request is received.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponseresponse)throws ServletException, IOException {doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");//获取用户IDString sid = request.getParameter("id");int id =Integer.parseInt(sid);String sql ="select * from student where id=?"; SqlBean sBean = new SqlBean();JavaBean jBean = sBean.getSearchById(sql, id);//用户IDrequest.setAttribute("id",jBean.getId());//用户姓名request.setAttribute("name",jBean.getName());//用户密码request.setAttribute("password",jBean.getPassword());//用户性别String sex="";String man="";String woman="";if(jBean.getSex()!=null){sex=jBean.getSex().trim();if(sex.equals("男")){man ="checked";}else{woman ="checked";}}request.setAttribute("man",man);request.setAttribute("woman",woman);//用户年龄request.setAttribute("age",jBean.getAge());//转发request.getRequestDispatcher("Update.jsp").forward(request,2.增加记录的Servlet----Insert.javaprivate static final long serialVersionUID = 1L;/*** The doDelete method of the servlet. <br>** This method is called when a HTTP delete request is received.** @param request the request send by the client to the server* @param response the response send by the server to the client * @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.* @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//获取前台页面数据String name =request.getParameter("name");String password =request.getParameter("password");String sex =request.getParameter("sex");String sage = request.getParameter("age");int age =Integer.parseInt(sage);//封装到JavaBean对象中去JavaBean jBean = new JavaBean();jBean.setName(name);jBean.setPassword(password);jBean.setSex(sex);jBean.setAge(age);//调用模型层String sql = "insert into student(name,password,sex,age) values(?,?,?,?)";SqlBean sBean = new SqlBean();int count =sBean.getInsert(sql,jBean);String url="";if(count>0){url="SearchList.jsp";}else{url ="error.jsp";request.setAttribute("error", "ע��");}//转发ת3.更新记录的Servlet----Updated.java/****/private static final long serialVersionUID = 1L;/*** The doDelete method of the servlet. <br>** This method is called when a HTTP delete request is received.** @param request the request send by the client to the server* @param response the response send by the server to the client * @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//获得前台表单信息String sid = request.getParameter("id");int id =Integer.parseInt(sid);String name =request.getParameter("name");String password =request.getParameter("password");String sex =request.getParameter("sex");String sage = request.getParameter("age");int age =Integer.parseInt(sage);//封装到JavaBean对象中去JavaBean jBean = new JavaBean();jBean.setId(id);jBean.setName(name);jBean.setPassword(password);jBean.setSex(sex);jBean.setAge(age);String sql ="update student set name=?,password=?,sex=?,age=? where id=?";SqlBean sBean = new SqlBean();int count =sBean.getUpdate(sql,jBean);String url="";if(count>0){url="SearchList.jsp";}4.删除记录的Servlet----Delete.javaimport muta.bean.SqlBean;public class Delete extends HttpServlet {private static final long serialVersionUID = 1L;/*** The doDelete method of the servlet. <br>** This method is called when a HTTP delete request is received.** @param request the request send by the client to the server* @param response the response send by the server to the client * @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");doPost(request,response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals topost.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");//获取超链接传来的数据String sId = request.getParameter("id");int id =Integer.parseInt(sId);////调用模型层删除方法String sql = "delete from student where id=?";SqlBean sBean = new SqlBean();int count =sBean.getDelete(sql, id);XML文件xsi:schemaLocation="/xml/ns /javaee/xml/ns/javaee/web-app_2_5. xsd"><servlet><servlet-name>Update</servlet-name><servlet-class>muta.servlet.Update</servlet-class ></servlet><servlet><servlet-name>SearchById</servlet-name><servlet-class>muta.servlet.SearchById</servlet-c lass></servlet><servlet><servlet-name>Insert</servlet-name><servlet-class>muta.servlet.Insert</servlet-class ></servlet><servlet><servlet-name>Delete</servlet-name><servlet-class>muta.servlet.Delete</servlet-class ></servlet><servlet-mapping><servlet-name>Update</servlet-name><url-pattern>/Update</url-pattern></servlet-mapping><servlet-mapping><servlet-name>SearchById</servlet-name><url-pattern>/SearchById</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Insert</servlet-name><url-pattern>/Insert</url-pattern></servlet-mapping>。
Servlet(增删改查)准备:1.新建一个web项目(StudentZSGC)2.分层,分包一.查(查询学员信息表)(1)新建一个JSP页面(通过form表单进一个servlet(StudentAction))<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>查询学员表</title></head><BODY bgcolor="#FFCCCC"><form action="StudentAction"method="post"><TABLE width="100%"height="100%"><TR align="center"><TD><INPUT TYPE="submit"value="查询学员信息"></TD></TR></TABLE></form></BODY></html>(2)通过web.xml(中转站)找到对应的servlet(StudentAction)(3)进入action层package com.student.action;import java.io.IOException;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.StudentService;public class StudentAction extends HttpServlet {/*** 查询所有人员*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html; charset=utf-8");//调方法StudentService studentService=new StudentService();List<Map<String, Object>> list=null;list=studentService.selectAll();req.setAttribute("StudentList", list);--传回前台进行set//转向if(!list.isEmpty()){ --跳转到该页面req.getRequestDispatcher("Student.jsp").forward(req, resp);}else{req.getRequestDispatcher("Student.jsp").forward(req, resp);}}}(4)进入service类中package com.student.service;import java.util.List;import java.util.Map;import com.student.dao.StudentDao;/*** 查询所有学员信息方法* @author Administrator*/public class StudentService {public List<Map<String, Object>> selectAll() {StudentDao StudentDao=new StudentDao();return StudentDao.selectAll();}}(5)进入dao中连接数据库package com.student.dao;import java.util.List;/*** 查询数据库所有学员放到list中*/import java.util.Map;import com.student.util.Dao;public class StudentDao {Dao dao=new Dao();public List<Map<String, Object>> selectAll() {S tring sql="select s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby from student";return dao.select(sql,new Object[]{});}}(6)查询出数据后跳到Student.jsp页面<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%@page import="java.sql.Array"%><%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><title>学员列表</title></head><BODY bgcolor="#FFCCCC"><form action=""method="post"><TABLE width="100%"height="100%"><TR><TD align="center"valign="top"><TABLE border="1"><TR><TD colspan="5">学号:<INPUT TYPE="text"NAME="Snumber"></TD><TD colspan="4">姓名:<INPUT TYPE="text"NAME="Sname"></TD><TD colspan="2"><INPUT TYPE="button"value="提交"></TD> </TR><TR><td><input type="checkbox"id="selAll"/></td><TD>id</TD><TD>学号</TD><TD>姓名</TD><TD>性别</TD><TD>班级</TD><TD>年龄</TD><TD>住址</TD><TD>就读院校</TD><TD>联系方式</TD><TD>爱好</TD></TR><!- 接后台容器中的元素-><%List<Map<String, Object>> list=(List<Map<String, Object>>)request.getAttribute("StudentList");for(int i=0;i<list.size();i++){Map<String, Object> map=list.get(i);%><!-前台通过map取值-><TR><td><input type="checkbox" name="selItem"value="<%=map.get("s_id")%>"/></td><TD><%=map.get("s_id")%></TD><TD><%=map.get("s_number")%></TD><TD><%=map.get("s_name")%></TD><TD><%=map.get("s_sex")%></TD><TD><%=map.get("s_class")%></TD><TD><%=map.get("s_age")%></TD><TD><%=map.get("s_add")%></TD><TD><%=map.get("s_college")%></TD><TD><%=map.get("s_mobile")%></TD><TD><%=map.get("s_hobby")%></TD></TR><%}%><TR><TD><A HREF="javascript:openW();">添加</A></TD><TD><A HREF="javascript:upPerson()">修改</A></TD><TD><A HREF="javascript:delPerson()">删除</A></TD></TR></TABLE></TD></TR></TABLE></form></BODY><script LANGUAGE="JavaScript">document.getElementById("selAll").onclick=function(){ var chItem=document.getElementsByName("selItem");for(i=0;i<chItem.length;i++){chItem[i].checked=this.checked;}}function openW(){window.showModalDialog("<%=request.getContextPath()%>/insertPe rson.jsp","","dialogwidth:380px;dialogheight:380px");}="myIndex"function upPerson(){var num = 0;var postId = "";var chItem = document.getElementsByName("selItem");for(i = 0 ; i <chItem.length;i++){if(chItem[i].checked == true){num ++;postId = chItem[i].value;}}if(num != 1){alert("请选择一条数据");}else{location.href ="upServlet?id="+postId;}}function delPerson(){var num = 0;var postId = "";var chItem = document.getElementsByName("selItem");for(i = 0 ; i <chItem.length;i++){if(chItem[i].checked == true){num ++;postId = chItem[i].value;}}if(num <1){alert("请至少选择一条数据");}else{document.forms[0].action="delServlet";document.forms[0].submit();}}</script></html>如下示例:二.增(添加学员)(1)在学员列表页面的添加按钮写一个方法调用函数function openW(){window.showModalDialog("<%=request.getContextPath()%>/insertPerso n.jsp","","dialogwidth:380px;dialogheight:380px");}="myIndex"知识点:1.点击添加跳转该添加页面insertPerson.jsp2. 当表单将要被提交时触发(onsubmit)="javascript:window.close()提交后立即关闭该窗体3.设置或获取目标内容要显示于哪个窗口或框架(target)="myIndex"(2)添加页面单机添加通过form 走servlet( AddPersonAction)<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>添加页面</title></head><BODY bgcolor="#FFCCCC"><form method="get"action="<%=request.getContextPath()%>/AddPersonAction"target="myIndex" onsubmit="javascript:window.close()"><TABLE width="343"height="139"><TR><TD>学 号:</TD><TD><INPUT TYPE="text"NAME="snumber"></TD><TD>*只能输入中文</TD></TR><TR><TD>姓 名:</TD><TD><INPUT TYPE="text"NAME="sname"></TD><TD>*只能输入中文</TD></TR><TR><TD>性 别:</TD><TD><INPUT TYPE="text"NAME="ssex"></TD><TD>*只能输入英文</TD></TR><TR><TD>班 级:</TD><TD><INPUT TYPE="text"NAME="sclass"></TD><TD>*只能输入中文</TD></TR><TR><TD>年 龄:</TD><TD><INPUT TYPE="text" NAME="sage"></TD><TD>*只能输入中文</TD></TR><TR><TD>地 址:</TD><TD><INPUT TYPE="text"NAME="sadd"></TD><TD>*只能输入中文</TD></TR><TR><TD>毕业院校:</TD><TD><INPUT TYPE="text"NAME="scollege"></TD><TD>*只能输入中文</TD></TR><TR><TD>联系方式:</TD><TD><INPUT TYPE="text"NAME="smobile"></TD><TD>*只能输入中文</TD></TR><TR><TD>爱 好:</TD><TD><INPUT TYPE="text"NAME="shobby"></TD><TD>*只能输入中文</TD></TR><tr><td colspan="2"><INPUT TYPE="submit" value="添加"><INPUT TYPE="reset"value="重置"/></td></tr></TABLE></form></BODY></html>(3)找到web.xml(中转站) AddPersonAction<servlet><servlet-name>AddPersonAction</servlet-name><servlet-class>com.student.action.AddPersonAction</servlet-class> </servlet><servlet-mapping><servlet-name>AddPersonAction</servlet-name><url-pattern>/AddPersonAction</url-pattern></servlet-mapping>(4)通过com.student.action.AddPersonAction进action中package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.AddPersonService;public class AddPersonAction extends HttpServlet {/*** 添加人员*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值 s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby知识点:通过添加页面中的 input中的name值接过来的String snumber=(String)req.getParameter("snumber");snumber = new String(snumber.getBytes("ISO8859-1"),"utf-8");String sname=(String)req.getParameter("sname");sname = new String(sname.getBytes("ISO8859-1"),"utf-8");String ssex=(String)req.getParameter("ssex");ssex = new String(ssex.getBytes("ISO8859-1"),"utf-8");String sclass=(String)req.getParameter("sclass");sclass = new String(sclass.getBytes("ISO8859-1"),"utf-8");String sage=(String)req.getParameter("sage");sage = new String(sage.getBytes("ISO8859-1"),"utf-8");String sadd=(String)req.getParameter("sadd");sadd = new String(sadd.getBytes("ISO8859-1"),"utf-8");String scollege=(String)req.getParameter("scollege");scollege = new String(scollege.getBytes("ISO8859-1"),"utf-8");String smobile=(String)req.getParameter("smobile");smobile = new String(smobile.getBytes("ISO8859-1"),"utf-8");String shobby=(String)req.getParameter("shobby");shobby = new String(shobby.getBytes("ISO8859-1"),"utf-8");//调方法AddPersonService addPersonService=new AddPersonService();addPersonService.addPerson(snumber,sname,ssex,sclass,sage,sadd,scolle ge,smobile,shobby);//转向req.getRequestDispatcher("StudentAction").forward(req, resp);知识点:添加完后跳到StudentAction重新查询一遍数据库}}(5)service层package com.student.service;import com.student.dao.AddPersonDao;public class AddPersonService {public boolean addPerson(String snumber, String sname, String ssex, String sclass, String sage, String sadd, String scollege,String smobile, String shobby) {AddPersonDao addPersonDao=new AddPersonDao();Object[] paras=new Object[9];paras[0]=snumber;paras[1]=sname;paras[2]=ssex;paras[3]=sclass;paras[4]=sage;paras[5]=sadd;paras[6]=scollege;paras[7]=smobile;paras[8]=shobby;return addPersonDao.addPerson(paras);}}(6)dao层package com.student.dao;import com.student.util.Dao;public class AddPersonDao {public boolean addPerson(Object[] paras) {Dao dao=new Dao();String sql="insert into student(s_id, s_number, s_name, s_sex,s_class, s_age, s_add, s_college, s_mobile, s_hobby) values(seq.nextval, ?, ?, ?, ?, ?, ?, ?, ?, ?)";int num=dao.executeDML(sql, paras);return num>0?true:false;}}三.改(修改学员信息)分析:总共分两步1.首先走一个servlet查询出要修改的用户信息2.然后再走一个servlet更新用户新输入的学员信息(1)单机修改按钮(2)调用函数uplPerson()(3)根据location连接到servlet(upServlet)知识点:location.href ="upServlet?id="+postId;将选中用户id传入后台以用查询(4)根据web.xml(中转站)找到对应的servlet(5)找到upServletActionpackage com.student.action;import java.io.IOException;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.upServletService;public class upServletAction extends HttpServlet {/*** 修改类*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值//id前台传过来的location.href ="upServlet?id="+postId;String sid=(String)req.getParameter("id");upServletService upServletService=newupServletService();List<Map<String, Object>>list=upServletService.selectStudent(sid);if(!list.isEmpty()){//方便前台取出要被修改学员的信息req.setAttribute("list", list);//下个页面接收传到要跳入的页面UpStudent.jsp页面用该方法接传过来的sidreq.setAttribute("sid", sid);req.getRequestDispatcher("UpStudent.jsp").forward(req, resp);}}}(6)根据其找到对应的service类(7)service类(8)调用upServletDao类(9)前台修改页面取值<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>修改页面</title></head><BODY bgcolor="#FFCCCC"><form method="get"action="<%=request.getContextPath()%>/UpStudentAction"target="myIndex"><%%><%//判断数据库中是否有该学员if(request.getAttribute("list")!=null){List<Map<String,Object>>list=(List<Map<String,Object>>)request.getAttribute("list");Map<String,Object> map=list.get(0);%><!-- 接上个页面的id(value="<%=request.getAttribute("sid")%>")下个页面通过 name="id"接收id --><input type="hidden"name="id"value="<%=request.getAttribute("sid")%>"/><TABLE width="343"height="139"><TR><TD>学 号:</TD>//取后台查询出来的值(以下红线均是)<TD><INPUTTYPE="text"NAME="snumber"value="<%=map.get("s_number")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>姓 名:</TD><TD><INPUT TYPE="text"NAME="sname"value="<%=map.get("s_name")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>性 别:</TD><TD><INPUT TYPE="text"NAME="ssex"value="<%=map.get("s_sex")%>"></TD><TD>*只能输入英文</TD></TR><TR><TD>班 级:</TD><TD><INPUT TYPE="text"NAME="sclass"value="<%=map.get("s_class")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>年 龄:</TD><TD><INPUT TYPE="text"NAME="sage"value="<%=map.get("s_age")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>地 址:</TD><TD><INPUT TYPE="text"NAME="sadd"value="<%=map.get("s_add")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>毕业院校:</TD><TD><INPUT TYPE="text"NAME="scollege"value="<%=map.get("s_college")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>联系方式:</TD><TD><INPUT TYPE="text"NAME="smobile"value="<%=map.get("s_mobile")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>爱 好:</TD><TD><INPUT TYPE="text"NAME="shobby"value="<%=map.get("s_hobby")%>"></TD><TD>*只能输入中文</TD></TR><tr><td colspan="2"><INPUT TYPE="submit"value="修改"><INPUT TYPE="reset"value="重置"/></td></tr></TABLE><%} %></form></BODY></html>完成以上即完成第一步查询出要修改的学员信息并返回给前台页面(如图所示)选中一条数据单机修改第二步骤更新用户新输入的学员信息(10)用户对其进行修改,改完后单机修改按钮根据form表单走一个servlet(upStudentAction)(11)到web.xmlz中找到对应的servlet(12)action层package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.UpStudentService;public class UpStudentAction extends HttpServlet {/*** 修改选中的用户信息*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值跟据修改页面里的input里的name属性接到的String sid=(String)req.getParameter("id");String snumber=(String)req.getParameter("snumber");snumber = new String(snumber.getBytes("ISO8859-1"),"utf-8");String sname=(String)req.getParameter("sname");sname = new String(sname.getBytes("ISO8859-1"),"utf-8");String ssex=(String)req.getParameter("ssex");ssex = new String(ssex.getBytes("ISO8859-1"),"utf-8");String sclass=(String)req.getParameter("sclass");sclass = new String(sclass.getBytes("ISO8859-1"),"utf-8");String sage=(String)req.getParameter("sage");sage = new String(sage.getBytes("ISO8859-1"),"utf-8");String sadd=(String)req.getParameter("sadd");sadd = new String(sadd.getBytes("ISO8859-1"),"utf-8");String scollege=(String)req.getParameter("scollege");scollege = newString(scollege.getBytes("ISO8859-1"),"utf-8");String smobile=(String)req.getParameter("smobile");smobile = new String(smobile.getBytes("ISO8859-1"),"utf-8");String shobby=(String)req.getParameter("shobby");shobby = new String(shobby.getBytes("ISO8859-1"),"utf-8");//调方法UpStudentService upStudentService=new UpStudentService();if(upStudentService.upStudent(snumber,sname,ssex,sclass,sage,sadd,s college,smobile,shobby,sid)){// 修改后跳到(StudentAction)servlet中在重新查询遍更新后的信息 req.getRequestDispatcher("StudentAction").forward(req, resp);}}}(13)走到service层(14)走到dao层四.删(删除学员信息)(1)单机删除按钮调用delPerson()(2)调用函数走delServlet(3)通过web.xml找到对应的servlet(4)action层package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.delServletService;/*** 删除数据* @author Administrator*/public class delServletAction extends HttpServlet { private static final long serialVersionUID = 1L;@Overridep rotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { // 转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值// String sid=(String)req.getParameter("id");//根据该条接收到的idString[] ids=req.getParameterValues("selItem");//掉方法delServletService delServletService=newdelServletService();if(delServletService.delStudent(ids)){req.getRequestDispatcher("StudentAction").forward(req, resp);}else{S ystem.out.println("删除失败");}}}(5)service层(6)dao层五.实现学员信息单独放在一个区域如下:将学员信息列表table外放一个div知识点:auto Content is clipped and scrolling is added only when necessary.<table>…………..</table></div>六.模糊查询1.两个参数:学号和用户名同时模糊(两个都需要like)Sql:select s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby from student where s_number like ? and s_name like ?Dao: 将参数前后加%:如果其他地方用到select方法的将其sql语句改成like(修改时查修改用户信息时用)。
Java Web 应用实例 servlet实现oracle 基本增删改查分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报/a542214712/article/details/7924444很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深废话不多话,开始我们的第一个实例:servlet实现oracle 基本增删改查开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g首先附上数据库创建脚本:[sql]view plaincopy1. create table student(2. id VARCHAR2(50 PRIMARY KEY NOT NULL,3. name varchar2(50 NOT NULL,4. calssGrent varchar2(50 NOT NULL ,5. result varchar(12 NOT NULL6. ;7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三','33','98'下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:MMC_01.java页面 //主界面提供添加,修改删除的方法[java]view plaincopy1. package org.lsy.servlet;2.3. import java.io.IOException;4. import java.io.PrintWriter;5. import java.sql.Connection;6. import java.sql.DriverManager;7. import java.sql.ResultSet;8. import java.sql.Statement;9.10. import javax.servlet.ServletException;11. import javax.servlet.http.HttpServlet;12. import javax.servlet.http.HttpServletRequest;13. import javax.servlet.http.HttpServletResponse;14.15. import oracle.jdbc.oracore.TDSPatch;16.17. public class MMC_01 extends HttpServlet18. {19. // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中20.21. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住22. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY ";23. // 连接数据库的用户名24. public static final String DBUSER = "scott";25. // 连接数据库的密码26. public static final String DBPASS = "tiger";27.28. public void doGet(HttpServletRequest request, HttpServletResponse response29. throws ServletException, IOException30. {31. //设置请求和响应的编码,不然页面上容易出现乱码32. request.setCharacterEncoding("UTF-8";33. response.setCharacterEncoding("UTF-8";34.35. response.setContentType("text/html;UTF-8";36. //输出流37. PrintWriter out = response.getWriter(;38. //数据库连接代码39. try40. {41. Connection conn = null; // 表示数据库的连接的对象42. Statement stmt = null; // 表示数据库的更新操作43. String sql="insert into student(id,name,calssGrent,result values( '67','刘12宇','33','98'";44. System.out.println(sql ;45. // 1、使用Class类加载驱动程序46. Class.forName("oracle.jdbc.driver.OracleDriver";47. // 2、连接数据库48. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS;49. // 3、Statement接口需要通过Connection接口进行实例化操作50. stmt = conn.createStatement(;51. //用 rs获取查询结果,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-52. ResultSet rs=stmt.executeQuery("select *from student";53. out.println("";54. out.println("";55. out.println(" ";56. out.println(" ";57. //输出表头部分58. out.print(" 姓名" +59. "班级成绩修改删除";60. while(rs.next(61. {62. //获取数据库中的ID63. String id=rs.getString("id";64. //输出一列元素65. out.print(""+rs.getString("name"66. +""+rs.getString("calssGrent"+"" +67. ""+rs.getString("result"+"" +68. " +id+ "'> 修改 " +69. " +id+ "'> 删除 " ;70.71. }72. out.println(" 添加数据";73. out.println(" ";74. out.println("";75. conn.close(;76.77. }78. catch (Exception e79. {80. e.printStackTrace(;81. }82. out.flush(;83. out.close(;84. }85.86. }87.UpdatePage.java //获取要修改的数据,并把修改过的数据提交给Update [java]view plaincopy1. package org.lsy.servlet;2. import java.io.IOException;3. import java.io.PrintWriter;4. import java.sql.Connection;5. import java.sql.DriverManager;6. import java.sql.ResultSet;7. import java.sql.Statement;8.9. import javax.servlet.ServletException;10. import javax.servlet.http.HttpServlet;11. import javax.servlet.http.HttpServletRequest;12. import javax.servlet.http.HttpServletResponse;13.14. import com.sun.crypto.provider.RSACipher;15.16. public class UpdatePage extends HttpServlet17. {18. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住19. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521: LIUSY";20. // 连接数据库的用户名21. public static final String DBUSER = "scott";22. // 连接数据库的密码23. public static final String DBPASS = "tiger";24.25. public void doGet(HttpServletRequest request, HttpServletResponse response26. throws ServletException, IOException27. {28. String id=request.getParameter("id";29. //设置请求和响应的编码,不然页面上容易出现乱码30. request.setCharacterEncoding("UTF-8";31. response.setCharacterEncoding("UTF-8";32. response.setContentType("text/html;UTF-8";33. PrintWriter out = response.getWriter(;34. try35. {36. Connection conn = null; // 表示数据库的连接的对象37. Statement stmt = null; // 表示数据库的更新操作38. // 1、使用Class类加载驱动程序39. Class.forName("oracle.jdbc.driver.OracleDriver";40. // 2、连接数据库41. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS;42. // 3、Statement接口需要通过Connection接口进行实例化操作43. stmt = conn.createStatement(;44. //用 rs获取查询结果,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-45. ResultSet rs=stmt.executeQuery("select *from student where id='"+id+"'";46. while (rs.next(47. {48. out.println("";49. out.println("";50. out.println(" ";51. out.println(" ";52. //输入成绩的表单,提交至Update53. out.print(" " ;54. out.print(" 姓名:+rs.getString( "name" +"'[java] view plaincopy1. "white-space:pre"> name='name' size=20 >";2. out.print("班级:+rs.getString( "calssGrent" +"' name='grent' size=20>" ;3. out.print("成绩:+rs.getString( "result" +"' name='result' size=20>" ;4. //为了作为查询数据库的条件,这里要把ID传过去5. out.print(" +id+ "' name='id'>" ;6. out.print(" 修改 '> 重置 '>" ;7. out.print(" ";8. out.println("";9. }10. out.flush(;11. out.close(;12. }13. catch (Exception e {14. e.printStackTrace(;// TODO: handle exception15. }16. }17.18. }Update.java 接收要修改的数据,并更新数据库[java]view plaincopy1. package org.lsy.servlet;2.3. import java.io.IOException;4. import java.io.PrintWriter;5. import java.sql.Connection;6. import java.sql.DriverManager;7. import java.sql.Statement;8.9. import javax.servlet.ServletException;10. import javax.servlet.http.HttpServlet;11. import javax.servlet.http.HttpServletRequest;12. import javax.servlet.http.HttpServletResponse;13.14. public class Update extends HttpServlet15. {16. // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中17.18. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住19. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";20. // 连接数据库的用户名21. public static final String DBUSER = "scott";22. // 连接数据库的密码23. public static final String DBPASS = "tiger";24.25. public void doGet(HttpServletRequest request, HttpServletResponse response26. throws ServletException, IOException27. {28. try29.30. {31. request.setCharacterEncoding("UTF-8";32. response.setCharacterEncoding("UTF-8";33. response.setContentType("text/html;UTF-8";34. PrintWriter out = response.getWriter(;35. Connection conn = null; // 表示数据库的连接的对象36. Statement stmt = null; // 表示数据库的更新操作37. //获取表单提交的参数湖北省武昌区2012届高三年级元月调研测试英语试题本试卷第一至第三部分为选择题,共100分;第四部分为非选择题,共50分,全卷共12页。