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(修改时查修改用户信息时用)。
需求:增加新部门的功能,对应数据库表示Oracle的dept表一、Java MVC 增实现:1、视图层(V):注册部门deptUpdate.jsp2、控制层(C):3、模型层(M):二、Java MVC 删三、Java MVC 改四、Java MVC 查全部代码如下:主页面:index.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>index page</title><link href="/web01//css/main.css" rel="stylesheet" type="text/css" /></head><body><%@ include file="/view/top.jsp" %><ul><li>员工管理<ul><li><a href="/web01/empController">员工查询</a></li><li>注册员工</li></ul></li><li>部门管理<ul><li><a href="/web01/deptController?callTp=deptList">部门查询</a></li><li><a href="/web01/view/deptAdd.jsp">注册部门</a></li></ul></li><li>系统管理<ul><li><ahref="/web01/requestInfoController?callTp=requestInfoPageList&now_page_num=1">访问日志查询</a></li></ul></li></ul></body></html>部门查询:deptList.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>部门查询</title><link href="/web01//css/main.css" rel="stylesheet" type="text/css" /></head><body><%@ include file="top.jsp" %><form action="/web01/deptController" method="get">部门名称:<input type="text" name="dnameTxt">城市:<input type="text" name="locTxt"><input type="submit" value="Search"><input type="hidden" name="callTp" value="deptList"><br/><table><tr><th>部门编号</th><th>部门名称</th><th>地点</th><th>更新操作</th><th>删除操作</th></tr><c:forEach items="${requestScope.deptBeanList}" var="dept"><tr><td><c:out value="${dept.deptno }" default=" "></c:out></td><td><c:out value="${dept.dname }" default=" "></c:out></td><td><c:out value="${dept.loc }" default=" "></c:out></td><td><a href="/web01/deptController?callTp=deptUpdate&deptno=${dept.deptno }">更改</a></td><td><a href="/web01/deptController?callTp=deptDelete&deptno=${dept.deptno }">删除</a></td></tr></c:forEach></table><em style="color: red"><c:out value="${requestScope.updateResultMsg }"></c:out></em><em style="color: red"><c:out value="${requestScope.deleteResultMsg }"></c:out></em><em style="color: red"><c:out value="${requestScope.addResultMsg }"></c:out></em></form><%@ include file="bottom.jsp" %></body></html>部门更新:deptUpdate.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>部门查询</title><link href="/web01//css/main.css" rel="stylesheet" type="text/css" /></head><body><%@ include file="top.jsp" %><form action="/web01/deptController" method="get">部门编号:<input type="text" disabled="disabled" value="${requestScope.deptBean.deptno}"><br>部门名称:<input type="text" name="dnameTxt" value="${requestScope.deptBean.dname}"><br>城市:<input type="text" name="locTxt" value="${requestScope.deptBean.loc}"><br><input type="submit" value="Save"><input type="hidden" name="callTp" value="deptSave"><input type="hidden" name="deptno" value="${requestScope.deptBean.deptno}""><br/></form><%@ include file="bottom.jsp" %></body></html>增加部门:deptAdd.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>部门查询</title><link href="/web01//css/main.css" rel="stylesheet" type="text/css" /></head><body><%@ include file="top.jsp" %><form action="/web01/deptController" method="get">部门名称:<input type="text" name="dnameTxt" value="" maxlength="14"><br>城市:<input type="text" name="locTxt" value="" maxlength="13"><br><input type="submit" value="Add"><input type="hidden" name="callTp" value="deptAdd"><br/></form><%@ include file="bottom.jsp" %></body></html>部门控制器:DeptController.javapackage .controller;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import .bean.DeptBean;import .service.DeptService;import com.test.system.service.RequestInfoService;/*** Servlet implementation class deptController*/@WebServlet("/DeptController")public class DeptController extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public DeptController() {super();}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {RequestInfoService ris = new RequestInfoService();ris.saveRequestInfo(request);DeptService ds = new DeptService();DeptBean deptBean = new DeptBean();String callTp = request.getParameter("callTp");System.out.println("----callTp : "+callTp);if (callTp.equals("deptList")) {deptBean.setDname(request.getParameter("dnameTxt"));deptBean.setLoc(request.getParameter("locTxt"));ArrayList<DeptBean> deptBeanList = ds.deptList(deptBean);request.setAttribute("deptBeanList", deptBeanList);request.getRequestDispatcher("/view/deptList.jsp").forward(request, response);} else if (callTp.equals("deptUpdate")) {deptBean.setDeptno(Integer.parseInt(request.getParameter("deptno")));deptBean = ds.deptById(deptBean.getDeptno());request.setAttribute("deptBean", deptBean);request.getRequestDispatcher("/view/deptUpdate.jsp").forward(request, response);} else if (callTp.equals("deptSave")) {deptBean.setDname(request.getParameter("dnameTxt"));deptBean.setLoc(request.getParameter("locTxt"));deptBean.setDeptno(Integer.parseInt(request.getParameter("deptno")));int updateInt = ds.deptSave(deptBean);if (updateInt == 1) {request.setAttribute("updateResultMsg", "更新成功!");} else {request.setAttribute("updateResultMsg", "更新失败!");}request.getRequestDispatcher("/view/deptList.jsp").forward(request, response);} else if (callTp.equals("deptDelete")) {int deleteInt = ds.deptDelete(Integer.parseInt(request.getParameter("deptno")));if (deleteInt == 1) {request.setAttribute("deleteResultMsg", "删除成功!");} else {request.setAttribute("deleteResultMsg", "删除失败!");}request.getRequestDispatcher("/view/deptList.jsp").forward(request, response);} else if (callTp.equals("deptAdd")) {String dname = request.getParameter("dnameTxt");String loc = request.getParameter("locTxt");int deptno = ds.getNextDetpno();DeptBean dept = new DeptBean();dept.setDeptno(deptno);dept.setDname(dname);dept.setLoc(loc);int addInt = ds.deptAdd(dept);if (addInt == 1) {request.setAttribute("addResultMsg", "添加成功!");} else {request.setAttribute("addResultMsg", "添加失败!");}request.getRequestDispatcher("/view/deptList.jsp").forward(request, response);}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}}部门服务层:DeptService.javapackage .service;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import .bean.DeptBean;import mon.dao.BaseDao;public class DeptService {private int idx = 1;private Connection conn = null;private PreparedStatement pstmt = null;private ResultSet rs = null;// 获取dept listpublic ArrayList<DeptBean> deptList(DeptBean db){ArrayList<DeptBean> deptList = new ArrayList<DeptBean>();BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e) {e.printStackTrace();}StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("SELECT DEPTNO \n");sqlBf.append(" , DNAME \n");sqlBf.append(" , LOC \n");sqlBf.append("FROM DEPT \n");sqlBf.append("WHERE DNAME LIKE UPPER(?) || ‘%‘ \n");sqlBf.append("AND LOC LIKE UPPER(?) || ‘%‘ \n");sqlBf.append("ORDER BY DEPTNO \n");try {pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;pstmt.setString(idx++, db.getDname());pstmt.setString(idx++, db.getLoc());rs = pstmt.executeQuery();while (rs.next()) {DeptBean dept = new DeptBean();dept.setDeptno(rs.getInt("DEPTNO"));dept.setDname(rs.getString("DNAME"));dept.setLoc(rs.getString("LOC"));deptList.add(dept);}} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(rs, pstmt, conn);}return deptList;}// 利用deptno查询单条部门信息public DeptBean deptById(int deptno) {DeptBean dept = new DeptBean();BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e) {e.printStackTrace();}StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("SELECT DEPTNO \n");sqlBf.append(" , DNAME \n");sqlBf.append(" , LOC \n");sqlBf.append("FROM DEPT \n");sqlBf.append("WHERE DEPTNO = ? \n");try {pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;pstmt.setInt(idx++, deptno);rs = pstmt.executeQuery();if (rs.next()) {dept.setDeptno(rs.getInt("DEPTNO"));dept.setDname(rs.getString("DNAME"));dept.setLoc(rs.getString("LOC"));}} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(rs, pstmt, conn);}return dept;}// 更新dept信息public int deptSave(DeptBean deptBean) {int updateResulInt = 0;BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e1) {e1.printStackTrace();}StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("UPDA TE DEPT SET DNAME = ? \n");sqlBf.append(" , LOC = ? \n");sqlBf.append("WHERE DEPTNO = ? \n");try {pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;pstmt.setString(idx++, deptBean.getDname());pstmt.setString(idx++, deptBean.getLoc());pstmt.setInt(idx++, deptBean.getDeptno());updateResulInt = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(null, pstmt, conn);}return updateResulInt;}// 删除部门一条记录public int deptDelete(int deptno) {int deleteResulInt = 0;BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e1) {e1.printStackTrace();}StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("DELETE FROM DEPT \n");sqlBf.append("WHERE DEPTNO = ? \n");try {pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;pstmt.setInt(idx++, deptno);deleteResulInt = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(null, pstmt, conn);}return deleteResulInt;}// 获取下一个deptnopublic int getNextDetpno() {int nextDeptno = 0;BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e1) {e1.printStackTrace();StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("SELECT MAX(DEPTNO) + 10 AS DEPTNO \n");sqlBf.append("FROM DEPT \n");try {pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;rs = pstmt.executeQuery();if (rs.next()) {nextDeptno = rs.getInt("DEPTNO");}} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(rs, pstmt, conn);}return nextDeptno;}// 增加一条dept数据public int deptAdd(DeptBean dept) {int insertInt = 0;BaseDao baseDao = new BaseDao();try {conn = baseDao.dbConnection();} catch (SQLException e1) {e1.printStackTrace();}StringBuffer sqlBf = new StringBuffer();sqlBf.setLength(0);sqlBf.append("INSERT INTO DEPT(DEPTNO, DNAME, LOC) \n");sqlBf.append(" V ALUES(? \n");sqlBf.append(" , ? \n");sqlBf.append(" , ?) \n");pstmt = conn.prepareStatement(sqlBf.toString());idx = 1;pstmt.setInt(idx++, dept.getDeptno());pstmt.setString(idx++, dept.getDname());pstmt.setString(idx++, dept.getLoc());insertInt = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {baseDao.dbDisconnection(rs, pstmt, conn);}return insertInt;}}@扣丁学堂智悦分享。
servlet增删改查Servlet使⽤Servlet进⾏增删改查步骤1.导⼊以下⼏个jar包到WEB-INF下的lib包⾥,必要时build path,其中jstl.jar和standard.jar是使⽤jstl要⽤的(eclipse中)2.写对应的dao,service,以及实现类3.写对应的servlet类,必须继承HttpServlet类1. 在此servlet类⾥加私有的service实现类;2. 添加doPost()和doGet⽅法:⼀般是在doPost()⾥写具体操作代码,doGet()⽅法⾥调⽤doPost,这样,不管提交⽅式是post还是get,都可以访问;3. doPost()⽅法⾥要先加request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");1. 取参和传参,转发和重定向取参:String age1=request.getParameter("age");int age = Integer.parseInt(age1);传参:request.setAttribute("emp", emp);转发:request.getRequestDispatcher("/emp.jsp").forward(request, response);重定向:response.sendRedirect(request.getContextPath()+"/error.jsp");5配置web.xml,写对应的servlet和其映射访问时:先通过url定位到web.xml⾥servlet的url-pattern,再对应到servlet-name,再找到对应的servlet类,根据访问时提交的⽅法调⽤相应的doPost()或者doGet()⽅法6.写对应的前台页⾯取后台传过来的数据:${ }提交的url路径:<form action="/servletTest/updateEmp" method="post"></form><a href="/servletTest/deleteEmp?id=${emp.id }">删除</a>⽰例代码DbUtil.javapackage util;import mons.dbutils.QueryRunner;import boPooledDataSource;public class DbUtil {private static ComboPooledDataSource ds=new ComboPooledDataSource(); public static QueryRunner getQueryRunner(){QueryRunner qr = new QueryRunner(ds);return qr;}}c3p0-config.xml<c3p0-config><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost/test</property><property name="user">root</property><property name="password"></property><property name="initialPoolSize">5</property><property name="maxPoolSize">10</property></default-config></c3p0-config>EmpDao.javapackage dao;import java.util.List;import entity.Emp;public interface EmpDao {public int add(Emp emp);public int delete(int id);public int update(Emp emp);public Emp find(int id);public List<Emp> findAll();}EmpDaoImpl.javapackage dao.impl;import java.sql.SQLException;import java.util.List;import mons.dbutils.QueryRunner;import mons.dbutils.handlers.BeanHandler;import mons.dbutils.handlers.BeanListHandler;import util.DbUtil;import dao.EmpDao;import entity.Emp;public class EmpDaoImpl implements EmpDao {QueryRunner qr = DbUtil.getQueryRunner();@Overridepublic int add(Emp emp) {String sql="insert into emp(age,name) values(?,?) ";int num=0;try {num = qr.update(sql, emp.getAge(),emp.getName());} catch (SQLException e) {e.printStackTrace();}return num;}@Overridepublic List<Emp> findAll() {String sql="select*from emp";List<Emp> emps=null;try {emps=qr.query(sql, new BeanListHandler<Emp>(Emp.class)); } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return emps;}@Overridepublic int delete(int id) {String sql="delete from emp where id="+id;int num=0;try {num=qr.update(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return num;}@Overridepublic int update(Emp emp) {String sql="update emp set name=?,age=? where id=?"; System.out.println("sql---------"+sql);int num=0;try {num=qr.update(sql, emp.getName(),emp.getAge(),emp.getId()); } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return num;}@Overridepublic Emp find(int id) {String sql="select * from emp where id="+id;Emp emp=null;try {emp=qr.query(sql, new BeanHandler<Emp>(Emp.class));} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return emp;}}EmpService.javapackage service;import java.util.List;import entity.Emp;public interface EmpService {public int addEmp(Emp emp);public List<Emp> findAll();public int delete(int id);public int update(Emp emp);public Emp find(int id);}EmpServiceImpl.javapackage service.impl;import java.util.List;import service.EmpService;import dao.impl.EmpDaoImpl;import entity.Emp;public class EmpServiceImpl implements EmpService {private EmpDaoImpl empDao=new EmpDaoImpl();@Overridepublic int addEmp(Emp emp) {int num = empDao.add(emp);return num;}@Overridepublic List<Emp> findAll() {return empDao.findAll();}@Overridepublic int delete(int id) {return empDao.delete(id);}@Overridepublic int update(Emp emp) {return empDao.update(emp);}@Overridepublic Emp find(int id) {return empDao.find(id);}}AddEmpServlet.javapackage 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 service.impl.EmpServiceImpl;import entity.Emp;public class AddEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String age1=request.getParameter("age");int age = Integer.parseInt(age1);String name = request.getParameter("name");Emp emp=new Emp();emp.setAge(age);emp.setName(name);int num = empService.addEmp(emp);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);;}}DeleteEmpServlet.javapackage 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 service.impl.EmpServiceImpl;import entity.Emp;public class DeleteEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String id1 = request.getParameter("id");Integer id=Integer.parseInt(id1);System.out.println("进⼊删除,id="+id);int num = empService.delete(id);System.out.println("删除?---"+num);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect("/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}}//修改时,先找到要修改的对象,再转发到需要修改的页⾯,显⽰要修改的对象信息,然后提交时修改FindUpdEmpServlet .javapackage 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 entity.Emp;import service.impl.EmpServiceImpl;public class FindUpdEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");Integer id=Integer.parseInt(request.getParameter("id"));Emp emp = empService.find(id);System.out.println("要修改的emp"+emp.getName());if(emp!=null){request.setAttribute("emp", emp);request.getRequestDispatcher("/update.jsp").forward(request, response);;}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}UpdateEmpServlet.javapackage 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 service.impl.EmpServiceImpl;import entity.Emp;public class UpdateEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String id1 = request.getParameter("id");Integer id=Integer.parseInt(id1);String name = request.getParameter("name");String age1 = request.getParameter("age");Integer age=Integer.parseInt(age1);Emp emp=new Emp();emp.setId(id);emp.setAge(age);emp.setName(name);//empService.find(id);int num = empService.update(emp);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect("/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}FindEmpServlet.javapackage 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 entity.Emp;import service.impl.EmpServiceImpl;public class FindEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");Integer id=Integer.parseInt(request.getParameter("id"));Emp emp = empService.find(id);System.out.println("emp---"+emp.getName()+"---"+emp.getAge());if(emp!= null){request.setAttribute("emp", emp);request.getRequestDispatcher("/emp.jsp").forward(request, response);}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}FindEmp s Servlet.javapackage servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.Emp;import service.impl.EmpServiceImpl;public class FindEmpsServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");List<Emp> emps = empService.findAll();if(emps!=null){request.setAttribute("emps", emps);request.getRequestDispatcher("/list.jsp").forward(request, response);}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}}web.xml前台页⾯add.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>添加员⼯</title></head><body><form action="/servletTest/addEmp" method="post">姓名:<input type="text" name="name"/><p>年龄:<input type="text" name="age"/><p><input type="submit" value="添加"/></form></body></html>list.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@taglib uri="/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>员⼯列表</title></head><body>添加成功<table><tr ><td colspan="3"><a href="index.jsp">添加</a></td></tr><tr><th>编号</th><th>年龄</th><th>age</th><th colspan="3">操作</th></tr><!--items⾥⾯写${requestScope.emps}也可以 --><c:forEach items="${emps }" var="emp" varStatus="vs"><tr><td>${emp.id }</td><td>${ }</td><td>${emp.age }</td><td><a href="/servletTest/deleteEmp?id=${emp.id }">删除</a></td><td><a href="/servletTest/findUpdEmp?id=${emp.id }">修改</a></td><td><a href="/servletTest/findEmp?id=${emp.id }">查看</a></td></tr></c:forEach></table></body></html>emp.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body>编号:${emp.id }<p>姓名:${ }<p>年龄:${emp.age }</body></html>update.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>修改员⼯</title></head><body><form action="/servletTest/updateEmp" method="post">编号:<input type="text" name="id" value="${emp.id }" readonly="readonly"/><p>姓名:<input type="text" name="name" value="${ }"/><p>年龄:<input type="text" name="age" value="${emp.age }"/><p><input type="submit" value="提交"/></form></body></html>error.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><h1>出错了</h1></body></html>。
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页。
------创建表 create table t_user ( id number(4 primary key, uname varchar2(20, age number(3 ; ((注意下面的语句结束后须加/才能执行 -----添加的存储过程 create or replace procedure tu_save ( id in number, uname in varchar, age in number as begin insert into t_user(id,uname,age values(id,uname,age; end tu_save; -----删除的存储过程create or replace procedure tu_del ( b_id in number as begin delete from t_user where id = b_id; end tu_del; -----修改的存储过程 create or replace procedure tu_update ( b_id in number, b_uname varchar, b_age number as begin update t_user set uname =b_uname,age = b_age where id = b_id; end tu_update; -----查询一条数据的存储过程create or replace procedure tu_query ( b_id in number, b_uname out varchar, b_age out number as begin select uname,age into b_uname,b_age from t_user where id = b_id; end tu_query; -----查询所有的存储过程(查询多个数据,步骤1,3,查询一条数据,步骤1,2 1.先创建程序包 create or replace package tu_queryAll as type aa_all is ref cursor; end tu_queryAll; 2.创建查询一条数据的查询 create or replace procedure tu_query1 ( b_id in number, b_all out tu_queryAll.aa_all as begin open b_all for select * fromt_user where id = b_id; end tu_query1; 3.利用程序包创建多查询 create or replace procedure tu_queryAlls ( b_all out tu_queryAll.aa_all as begin open b_all for select * from t_user; end tu_queryAlls; Java调用Oracle存储过程 ---1.创建连接数据库类import java.sql.*; public class UserDao { /** * 创建连接 */ public static Connection getConn( { Connection conn = null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"; conn =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:aptech","scott","tiger"; } catch (Exception e { // TODO Auto-generated catch block e.printStackTrace(; } return conn; } /** * 测试连接是否成功 */ public static void main(String[] args { Connection con = new UserDao(.getConn(; System.out.println(con; } } ---2.操作存储过程 import erDao; import java.sql.*; public class UserDaoImpl extends UserDao { private Connection conn = null; ResultSet res = null; CallableStatement cstm = null; /** * 增加一条数据 * @param id * @param uname * @param age */ public void save(int id,String uname,int age { try { conn = this.getConn(; cstm =conn.prepareCall("{call tu_save(?,?,?}"; cstm.setInt(1, id; cstm.setString(2, uname; cstm.setInt(3, age; cstm.execute(; } catch (Exception e { // TODO: handle exceptione.printStackTrace(; }finally{ try { cstm.close(; conn.close(;} catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 删除一条数据 * @param id */ public void del(int id { try { conn = this.getConn(; cstm = conn.prepareCall("{call tu_del_pro(?}"; cstm.setInt(1, id; cstm.execute(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; }finally{ try { cstm.close(; conn.close(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 修改一条数据 * @param id * @param uname * @param age */ public void update(int id,String uname,int age { try { conn = this.getConn(; cstm =conn.prepareCall("{call tu_update(?,?,?}"; cstm.setInt(1, id; cstm.setString(2, uname; cstm.setInt(3, age; cstm.execute(; } catch (Exception e { // TODO: handle exceptione.printStackTrace(; }finally{ try { cstm.close(; conn.close(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 根据Id查询语句 * @param id */ public void query(int id { try { conn = this.getConn(; cstm = conn.prepareCall("{call tu_query(?,?,?}"; cstm.setInt(1, id; cstm.registerOutParameter(2, Types.VARCHAR; cstm.registerOutParameter(3, Types.INTEGER; cstm.execute(; String name =cstm.getString(2; int age = cstm.getInt(3; System.out.println(name+","+age; } catch (Exception e { // TODO: handle exception e.printStackTrace(; }finally{ try { cstm.close(; conn.close(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 根据游标查询一条数据 */ public void query1(int id { try { conn = this.getConn(; cstm = conn.prepareCall("{call tu_query1(?,?}"; cstm.setInt(1, id;cstm.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR; cstm.execute(; res = (ResultSetcstm.getObject(2;if(res.next( { System.out.println("id="+res.getInt(1+",uname="+res.getString(2+",age="+ res.getInt(3; } } catch (Exception e { // TODO: handle exceptione.printStackTrace(; }finally{ try { res.close(; cstm.close(; conn.close(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 查询所有数据 */ publicvoid queryAlls( { try { conn = this.getConn(; cstm = conn.prepareCall("{calltu_queryAlls(?}"; cstm.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR; cstm.execute(; res = (ResultSetcstm.getObject(1;while(res.next( { System.out.println("id="+res.getInt(1+",uname="+res.getString(2+",age ="+res.getInt(3; } } catch (Exception e { // TODO: handle exception e.printStackTrace(; }finally{ try { res.close(; cstm.close(; conn.close(; } catch (Exception e { // TODO: handle exception e.printStackTrace(; } } } /** * 调用方法进行增删改查 */ public static void main(String[] args { UserDaoImpl udao = new UserDaoImpl(; //udao.save(3,"wangwu", 23; // udao.del(3; // udao.update(1, "handan", 55; // udao.query(1; // udao.query1(3; // udao.queryAlls(; } }。
Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类及测试数据的方法//这是一个学生类package entity;public class NewStudent {private String id;private String name;private String sex;private int age;private int minAge=-1;private int maxAge=-1;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getMinAge() {return minAge;}public void setMinAge(int minAge) {this.minAge = minAge;}public int getMaxAge() {return maxAge;}public void setMaxAge(int maxAge) {this.maxAge = maxAge;}}//这是封装好的用于连接和关闭Oracle数据库的类package dao;import java.sql.*;public class BaseDao {//1、------连接Oracle数据库操作public static Connection getConnection()throws Exception{ Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";return DriverManager.getConnection(url, "SCOTT", "admin");}//2、------关闭Oracle数据库操作public static void close(ResultSet rs,Statement sta,Connection con) throws Exception{if(rs!=null){rs.close();}if(sta!=null){sta.close();}if(con!=null){con.close();}}}/*** 1、专门针对NewStudent表操作的数据访问类* 2、最常见的六大方法* 3、增,删,改,查所有,按ID查,按条件查。
java增删改查实例以Java增删改查实例为标题,本文将介绍如何使用Java编写增删改查功能。
在开发过程中,增删改查是最基本、常见的操作,也是每个开发者必须掌握的技能。
一、增(Create)在Java中实现增加数据的操作,通常需要以下几个步骤:1. 连接数据库:使用Java中的JDBC API来连接数据库,并获取与数据库的连接。
2. 编写SQL语句:根据需求编写插入数据的SQL语句,包括插入的表名、字段名和字段值。
3. 执行SQL语句:通过JDBC的Statement对象或者PreparedStatement对象执行SQL语句,将数据插入到数据库中。
4. 关闭连接:释放资源,关闭数据库连接。
二、删(Delete)在Java中实现删除数据的操作,步骤如下:1. 连接数据库:同样使用JDBC API来连接数据库,并获取与数据库的连接。
2. 编写SQL语句:根据需求编写删除数据的SQL语句,包括删除的表名、条件等。
3. 执行SQL语句:通过JDBC的Statement对象或者PreparedStatement对象执行SQL语句,将满足条件的数据从数据库中删除。
4. 关闭连接:释放资源,关闭数据库连接。
三、改(Update)在Java中实现更新数据的操作,步骤如下:1. 连接数据库:同样使用JDBC API来连接数据库,并获取与数据库的连接。
2. 编写SQL语句:根据需求编写更新数据的SQL语句,包括更新的表名、字段名、字段值和更新条件。
3. 执行SQL语句:通过JDBC的Statement对象或者PreparedStatement对象执行SQL语句,将满足条件的数据更新到数据库中。
4. 关闭连接:释放资源,关闭数据库连接。
四、查(Retrieve)在Java中实现查询数据的操作,步骤如下:1. 连接数据库:同样使用JDBC API来连接数据库,并获取与数据库的连接。
2. 编写SQL语句:根据需求编写查询数据的SQL语句,包括查询的表名、字段名、查询条件等。
oracle数据库增删改查基本语句举例Oracle数据库是一种关系型数据库管理系统,是目前世界上使用最广泛的数据库之一。
在Oracle数据库中,常用的基本语句包括增加(INSERT)、删除(DELETE)、修改(UPDATE)和查询(SELECT),下面将分别介绍这些语句的使用方法,并给出相应的示例。
1. 增加(INSERT)语句INSERT语句用于向数据库表中插入新的数据记录。
其基本语法如下:INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);示例:向名为“employees”的表中插入一条新的员工记录:INSERT INTO employees (emp_id, emp_name, emp_salary) VALUES (1001, '张三', 5000);2. 删除(DELETE)语句DELETE语句用于从数据库表中删除指定的数据记录。
其基本语法如下:DELETE FROM 表名 WHERE 条件;示例:从名为“employees”的表中删除工资低于5000的员工记录:DELETE FROM employees WHERE emp_salary < 5000;3. 修改(UPDATE)语句UPDATE语句用于修改数据库表中的数据记录。
其基本语法如下:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件;示例:将名为“张三”的员工工资提高到6000:UPDATE employees SET emp_salary = 6000 WHERE emp_name = '张三';4. 查询(SELECT)语句SELECT语句用于从数据库表中检索数据记录。
其基本语法如下:SELECT 列1, 列2, ... FROM 表名 WHERE 条件;示例:查询所有工资超过5000的员工记录的姓名和工资:SELECT emp_name, emp_salary FROM employees WHERE emp_salary > 5000;5. 多表查询在实际应用中,常常需要从多个表中联合查询数据。
昆明理工大学信息工程与自动化学院学生实验报告( 2013—2014学年第二学期)课程名称:JAVA EE技术开课实验室:信自楼444 2013 年 10 月 19 日年级、专业、班计科112学号201110405214姓名周英明成绩实验项目名称Servlet与JSP编程指导教师卫守林教师评语教师签名:年月日一、实验目的1、掌握Servlet的请求和响应的编程2、掌握Servlet与JSP的差异3、掌握Servlet与JSP的数据交互4、完成用户管理功能二.实验内容完成用户的增加、删除、修改、列表功能,要求页面展示的部分需要用JSP完成,业务逻辑由Servlet完成。
三、步骤及具体实施(一、视图:1.用户登录页面:2.用户管理页面:3.增加用户:4.修改:(二)javaeebean1.创建数据库表格:/****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [id],[name],[password],[sex],[age]FROM[SQLdata].[dbo].[student]order by id2.用javaee.bean封装用户信息:package javaee.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 { this.sex = sex;}public int getAge( {return age;}public void setAge(int age {this.age = age;}}3.用javaee.bean封装用户信息:package javaee.bean;import java.sql.Connection;import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;import java.sql.SQLException; import java.util.ArrayList;import java.util.List;/*** @author help*操作数据库的方法*/public class SqlBean {Connection con;PreparedStatement pre;ResultSet rs;public SqlBean({if(rs!=null;{try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver";} catch (ClassNotFoundException e {e.printStackTrace(;}try {con=DriverManager.getConnection("jdbc:sqlserver://localhost:14 33;DatabaseName=SQLdata","sa","123581321";} catch (SQLException e {e.printStackTrace(;}}}/*** @author help**插入新的一条记录* @return*/public int getinsertuser(String sql,javabean jBean {int count =0;try {pre = con.prepareStatement(sql;pre.setInt(1,jBean.getId(;pre.setString(2,jBean.getName(;pre.setString(3,jBean.getPassword(;pre.setString(4,jBean.getSex(;pre.setInt(5,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 getdeleteuser(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 getupdateuser(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 block e.printStackTrace(;}}return count;}/*** @author help**显示所有记录* @return*/public List getuserlist(String sql {List list = new ArrayList >( ;//获取prepareStatement对象try {pre = con.prepareStatement(sql;rs =pre.executeQuery(;while(rs.next({javabean jBean =new javabean(;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";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;}}(三)servlet1. 验证码的生成CheckCodeGet.javapackage javaee;import java.io.IOException;import java.awt.*;import java.awt.image.*;import java.util.*;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;//生成验证码@SuppressWarnings("restriction"public class CheckCodeGet extends HttpServlet{private static final long serialVersionUID = 1L;private final int TYPE_NUMBER = 0;private final int TYPE_LETTER = 1;private final int TYPE_MULTIPLE = 2;private int width;private int height;private int count;@SuppressWarnings("unused"private int type;private String validate_code;private Random random;private Font font;private int line;public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException{response.setHeader("Pragma","No-cache";response.setHeader("Cache-Control","no-cache";response.setDateHeader("Expires", 0;response.setContentType("image/jpeg";String reqCount = request.getParameter("count";String reqWidth = request.getParameter("width";String reqHeight = request.getParameter("height";String reqType = request.getParameter("type";if(reqCount!=null && reqCount!=""this.count = Integer.parseInt(reqCount;if(reqWidth!=null && reqWidth!=""this.width = Integer.parseInt(reqWidth;if(reqHeight!=null && reqHeight!=""this.height = Integer.parseInt(reqHeight;if(reqType!=null && reqType!=""this.type =Integer.parseInt(reqType;font = new Font("Courier New",Font.BOLD,width/count;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB;Graphics g = image.getGraphics(;g.setColor(getRandColor(200,250;g.fillRect(0, 0, width, height;g.setColor(getRandColor(160,200;for (int i=0;i{int x = random.nextInt(width;int y = random.nextInt(height;int xl = random.nextInt(12;int yl = random.nextInt(12;g.drawLine(x,y,x+xl,y+yl;}g.setFont(font;validate_code = getValidateCode(count,1;request.getSession(.setAttribute("validate_code",valida te_code;for (int i=0;i{//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成g.setColor(newColor(20+random.nextInt(110,20+random.nextInt(110,20+random .nextInt(110;int x = (int(width/count*i;int y = (int((height+font.getSize(/2-5;g.drawString(String.valueOf(validate_code.charAt(i,x,y;}g.dispose(;//ImageIO.write(image, "JPEG",response.getOutputStream(;JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(response.getOutputStream(;encoder.encode(image;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException{doGet(request,response;}public void init(ServletConfig config throws ServletException{super.init(config;width = 150;height = 50;count = 4;type = TYPE_NUMBER;random = new Random(;line = 200;}//private Color getRandColor(int from,int to{Random random = new Random(;if(to>255 from=255;if(to>255 to=255;int rang = Math.abs(to - from;int r=from+random.nextInt(rang;int g=from+random.nextInt(rang;int b=from+random.nextInt(rang;return new Color(r,g,b;}//取得验证码字符串private String getValidateCode(int size,int type {StringBuffer validate_code = new StringBuffer(; for(int i = 0; i < size; i++{validate_code.append(getOneChar(type;}return validate_code.toString(;}//根据验证码类型取得实际验证字符private String getOneChar(int type{String result = null;switch(type{case TYPE_NUMBER:result = String.valueOf(random.nextInt(10;break;case TYPE_LETTER:result = String.valueOf((char(random.nextInt(26+65; break;case TYPE_MULTIPLE:if(random.nextBoolean({result = String.valueOf(random.nextInt(10;}else{result = String.valueOf((char(random.nextInt(26+65; }break;default:result=null;break;}if(result==null{throw new NullPointerException("获取验证码出错";}return result;}}2. 删除用户deleteuser.javapackage javaee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javaee.bean.SqlBean;public class deleteuser extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";//获取超链接传来的数据String sId = request.getParameter("id";int id =Integer.parseInt(sId;System.out.println(id;//调用模型层删除方法String sql = "delete from student where id=?";SqlBean sBean = new SqlBean(;int count =sBean.getdeleteuser(sql, id;String url="";//System.out.println(count;if(count>0{url="userlist.jsp";}else{url ="error.jsp";request.setAttribute("error", "删除";}//转发request.getRequestDispatcher(url.forward(request, response;}}3. 增加用户insertuser.javapackage javaee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javaee.bean.SqlBean;import javaee.bean.javabean;public class insertuser extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";request.setCharacterEncoding("utf-8";response.setCharacterEncoding("utf-8";//获取前台页面数据String sid = request.getParameter("id";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;int id =Integer.parseInt(sid;//封装到JavaBean对象中去javabean jBean = new javabean(;jBean.setId(id;jBean.setName(name;jBean.setPassword(password;jBean.setSex(sex;jBean.setAge(age;//调用模型层String sql = "insert intostudent(id,name,password,sex,age values(?,?,?,?,?";SqlBean sBean = new SqlBean(;int count =sBean.getinsertuser(sql,jBean;@SuppressWarnings("unused"String url="";if(count>0{url="userlist.jsp";}else{url ="error.jsp";request.setAttribute("error", "";}//转发request.getRequestDispatcher("userlist.jsp".forward(req uest, response;}}4. 用户登录LoginActionsql.javapackage javaee;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;@SuppressWarnings("serial"public class LoginActionsql extends HttpServlet {/*** Constructor of the object.*/String driverName=null;String url=null;String user=null;String pass=null;public LoginActionsql( {super(;}/*** Destruction of the servlet. <br>*/public void destroy( {super.destroy(; // Just puts "destroy" string in log // Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {String id=request.getParameter("id";String password=request.getParameter("password"; String checkCode=request.getParameter("checkcode"; if(id!=null &&id.trim(.length(!=0&&password.trim(.length(!=0 {String sql="select * from student where id=? and password=?";Connection cn=null;boolean check=false;try{Class.forName(driverName;cn=DriverManager.getConnection(url, user, pass; PreparedStatement ps=cn.prepareStatement(sql;ps.setString(1,id;ps.setString(2,password;ResultSet rs=ps.executeQuery(;if(rs.next({System.out.println(id+password+checkCode;check=true;}rs.close(;ps.close(;}catch (Exception e{response.sendRedirect("login.jsp";return;}finally{try{cn.close(;}catch(Exception e{}}if (check{HttpSession session=request.getSession(true; session.setAttribute("name",id;session.setAttribute("password",password; response.sendRedirect("userlist.jsp"; System.out.println(id;return;}else{response.sendRedirect("login.jsp";return;}}}public void init(ServletConfig config throwsServletException {// Put your code heresuper.init(config;driverName=config.getInitParameter("driverName";url=config.getInitParameter("url";user=config.getInitParameter("user";pass=config.getInitParameter("pass";}}5、用户查询searchById.javapackage javaee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javaee.bean.javabean;import javaee.bean.SqlBean;public class searchById extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request,HttpServletResponse responsethrows ServletException, IOException {doPost(request,response;public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";request.setCharacterEncoding("utf-8";response.setCharacterEncoding("utf-8";//获取用户IDString sid = request.getParameter("id";int id =Integer.parseInt(sid;//System.out.println(id;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(!=nullsex=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("updateuser.jsp".forward(reque st, response;}}6、用户修改updateuser.javapackage javaee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaee.bean.javabean;import javaee.bean.SqlBean;public class updateuser extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException { response.setContentType("text/html";request.setCharacterEncoding("utf-8";response.setCharacterEncoding("utf-8";//获得前台表单信息String sid = request.getParameter("id";int id =Integer.parseInt(sid;System.out.println(id;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 setname=?,password=?,sex=?,age=? where id=?";SqlBean sBean = new SqlBean(;int count =sBean.getupdateuser(sql,jBean;@SuppressWarnings("unused"String url="";if(count>0{url="userlist.jsp";}else{url ="error.jsp";request.setAttribute("error", "更新";}request.getRequestDispatcher("userlist.jsp".forward(request, response;}}(四)、jsp1、错误页面:error.jsp<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%><%String path = request.getContextPath(;String basePath =request.getScheme(+"://"+request.getServerName(+":"+request.getSe rverPort(+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>对不起!您<%=request.getAttribute("error"%>失败body>html>2、登录页面:login.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>String path = request.getContextPath(;String basePath =request.getScheme(+"://"+request.getServerName(+":"+request.getSe rverPort(+path+"/";%>DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>用户登录页面title><script type="text/javascript">function reImg({var img = document.getElementById("CheckCodeGet";img.src = "CheckCodeGet?rnd=" + Math.random(;}script>head><body><FONT SIZE="5"COLOR="#006699">用户登录FONT><form action="LoginActionsql.do"method="post"><table><tr><td>用户名:td><td><input type="text"name="id"/> td>tr><td>密码:td><td><input type="password"name="password"/> td>tr><tr><td>验证码:td><td><input type="text"name="checkcode"/> td><td><img id="guestbookCaptcha"onclick="this.src='CheckCodeGet?d='+new Date("alt=""src="CheckCodeGet?"width="70"/><a style="text-decoration: none;"onclick="document.getElementById('guestbookCaptcha'.src= 'CheckCodeGet?d='+new Date(" href="#">看不清?a>td>tr><tr><td colspan="2"><center><input type="submit"value="提交">center>td>tr>table>body>html>3、用户主页面:userlist.jsp<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%><%String path = request.getContextPath(;String basePath =request.getScheme(+"://"+request.getServerName(+":"+request.getSe rverPort(+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><STYLE type="text/css">STYLE><%String name=(Stringsession.getAttribute("name";out.println(name;%><FONT SIZE="5"COLOR="#006699">恭喜您登录成功!FONT<hr/><center><font color="#006699"size=5>用户信息如下: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="javaee.bean.SqlBean"/><jsp:useBean id="jBean"class="javaee.bean.javabean"/><%String sql ="select * from student order by id";java.util.List list =sBean.getuserlist(sql;for(java.util.Iterator it =list.iterator(;it.hasNext(;{//获取一个JavaBean对象jBean =(javaee.bean.javabeanit.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="insertuser.jsp">增加a><a href="deleteuser?id=<%=jBean.getId(%>">删除a><a href="searchById?id=<%=jBean.getId(%>">更新a>td>tr><% }%>table>center>body>html>4、增加用户:insertuser.jsp<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath(;String basePath = request.getScheme(+"://"+request.getServerName(+":"+request.getServerPort(+path+"/"%>考研复试:英语口语听力全攻略 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" 数学专业的,或者理科物理的,他问专业术语,你很可能这个词都不认识,这怎么办呢?这里希望考生注意一点。
java项目中实现增删改查基本流程
在Java项目中实现增删改查的基本流程如下:
1. 增加(Create):创建一个新的实体对象,并将其存储到数据库中。
- 创建实体对象的类,并进行必要的字段设置。
- 使用数据库连接或ORM框架,将实体对象插入到数据库表中。
2. 删除(Delete):从数据库中删除指定的实体对象。
- 根据需要删除的实体对象的唯一标识(如ID),准备删除操作。
- 使用数据库连接或ORM框架,执行删除操作。
3. 修改(Update):更新数据库中的指定实体对象。
- 获取需要修改的实体对象,并对其进行必要的字段修改。
- 使用数据库连接或ORM框架,执行更新操作。
4. 查询(Retrieve):从数据库中查询实体对象。
- 根据需要查询的条件(如关键字、字段值等),准备查询操作。
- 使用SQL语句或ORM框架提供的查询方法,执行查询操作,并将结果返回。
以上是增删改查的基本流程,在实际项目中可能会有更多复杂的逻辑和操作,例如条件查询、分页查询、排序等,但基本的增删改查流程是不变的。
请根据具体项目的需求和技术栈,选
择合适的数据库处理方式(原生JDBC、JPA、MyBatis等)来实现。
JDBC+Servlet+JSP的学⽣案例增删改查数据库信息传输到页⾯实现。
先进⾏学⽣信息页⾯展⽰:接⼝IStudentDaopublic interface IStudentDao {/*** 保存操作* @param stu 学⽣对象,封装了需要保存的对象*/void save(Student stu);/*** 删除操作* @param id 被删除学⽣的主键操作*/void delete(Long id);/**** @param id 被更改学⽣的主键值* @param newStu 学⽣新的信息*/void update(Student newStu);/*** 查询指定id的学⽣对象* @param id 被查询学⽣的主键值* @return如果id存在,返回学⽣对象,否则为null*/Student get(Long id);/*** 查询并返回所有学⽣对象* @return如果结果集为空,返回⼀个空的list对象*/List<Student> listall();}IStudentDaoImplpublic class IStudentDaoImpl implements IStudentDao{public void save(Student stu) {String sql ="insert into t_student (name,age) values (?,?)";PreparedStatement ps = null;//贾琏Connection conn = null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);//欲ps.setString(1, stu.getName());ps.setInt(2, stu.getAge());ps.executeUpdate();//执⾏} catch (SQLException e) {e.printStackTrace();}JDBCUtil.close(conn, ps, null);//事务}@Overridepublic void delete(Long id) {String sql ="delete from t_student where id = ?";PreparedStatement ps =null;//贾琏Connection conn = null;try {conn = JDBCUtil.getConn();ps =conn.prepareStatement(sql);ps.setLong(1, id);ps.executeUpdate();}JDBCUtil.close(conn, ps, null);}//update t_student set name='xx',age=17 where id=12@Overridepublic void update(Student stu) {String sql="update t_student set name =? ,age=? where id=?"; PreparedStatement ps =null;//贾琏Connection conn =null;try {conn = JDBCUtil.getConn();ps=conn.prepareStatement(sql);ps.setString(1, stu.getName());ps.setInt(2, stu.getAge());ps.setLong(3, stu.getId());ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}JDBCUtil.close(conn, ps, null);}public Student get(Long id) {String sql ="select * from t_student where id=?";PreparedStatement ps =null;//贾琏Connection conn =null;ResultSet rs = null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);ps.setLong(1, id);rs= ps.executeQuery();if (rs.next()) {Student stu = new Student();stu.setId(rs.getLong("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));return stu;}} catch (Exception e) {e.printStackTrace();}JDBCUtil.close(conn, ps, rs);return null;}@Overridepublic List<Student> listall() {List<Student> list = new ArrayList<>();String sql ="select * from t_student";PreparedStatement ps = null;Connection conn = null;ResultSet rs =null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);rs = ps.executeQuery();while(rs.next()){Student stu = new Student();stu.setId(rs.getLong("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));list.add(stu);}}finally {JDBCUtil.close(conn, ps, rs);}return list;}domain类public class Student {private Long id;private String name;private Integer age;public Student(){}public Student(String name,Integer age){this.age=age;=name;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";}}设计个util类,⽅便维护public class JDBCUtil {private static DataSource ds =null;static{//当JDBCUtil执⾏后,直接加载⾄JVM就⽴即执⾏try {Properties p = new Properties();p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties")); ds = DruidDataSourceFactory.createDataSource(p);} catch (Exception e) {e.printStackTrace();}}public static Connection getConn(){try {return ds.getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}public static void close(Connection conn,Statement st,ResultSet rs){try {if (rs!=null) {rs.close();}} catch (Exception e) {}finally {try {if (st!=null) {st.close();}} catch (Exception e) {e.printStackTrace();}finally {try {if (conn!=null) {conn.close();}} catch (Exception e) {e.printStackTrace();}}}}}在⽹页展⽰全部信息,将数据⽤student传输过去,在前台获取。
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页。