JSP对Oracle数据库进行增删改查实例

合集下载

在Java中实现Oracle的增删改查

在Java中实现Oracle的增删改查

sid="+sid.getText()); rset.close(); sql_stmt.close(); conn.close(); } sid.setText(""); sname.setText(""); sage.setText(""); scity.setText(""); } if(e.getSource()==button_alter) { area.setText(""); int id = 0; while (rset.next()) { id=rset.getInt("sid"); } if(id!=Integer.parseInt(sid.getText())) { JOptionPane.showMessageDialog(null, " No Message! ","JDBC ",JOptionPane.ERROR_MESSAGE); sid.setText(""); } else { rset = sql_stmt.executeQuery("update student set sname='"+sname.getText()+ "', sage="+sage.getText()+", scity='"+scity.getText()+"' where sid="+sid.getText()); String str="ID:"+sid.getText()+"\n Name:"+sname.getText()+"\n Age:"+sage.getText()+"\n Sity:"+scity.getText(); area.append(str); rset.close(); sql_stmt.close(); conn.close(); } sid.setText(""); sname.setText(""); sage.setText(""); scity.setText(""); } } catch (SQLException e1) { e1.printStackTrace(); } } public static void main(String[] args) throws SQLException { new JDBCExam(); } }

JSP程序设计实例教程第8讲 数据库增-删-改操作

JSP程序设计实例教程第8讲 数据库增-删-改操作

本课目标
灵活运用JDBC-ODBC桥连接数据库
技能 目标
灵活运用专用JDBC驱动程序连接数据库 能应用Microsoft SQL Server 2005 Driver for JDBC驱动 程序方法建立与数据库的连接,并能进行检索与更新操作。
素质 目标
严谨认真的工作态度 语言表达和与人沟通能力 团队合作精神
Sun公司提供的JDBC-ODBC桥可以访问任何支持ODBC的数据 库。用户只需设置好ODBC数据源,再由JDBC-ODBC驱动程 序转换成JBDC接口供应用程序使用。 ODBC数据源的配置步骤如下: (1)打开【控制面板】窗口,选择【管理工具】中的【数据 源 (ODBC)】打开ODBC数据源管理器,选择【系统DSN】选 项卡,单击【添加(D)…】按钮,如8-1所示。 (2)在数据源驱动程序窗口,选择“SQL Server”,然后单 击【完成】按钮,如图8-2所示。 (3)在数据源客窗口中,将数据源的名称设置为 “shopData”,该名称就是用来连接数据库的数据源名称 ,但不一定是数据库的名称,同时选择SQL Server数据库 服务器的名称,这里选择本机(.\sql2005),然后单击 【下一步】按钮如图8-3所示。
第八讲 数据库增-删-改操作
主要内容
•本课目标 •新课引入与项目展示 •案例1 –数据库连接 •案例2 –检索数据库 •案例3 –更新数据库 •课堂实践 •巩固与提高
本课目标
知识 目标
掌握JDBC的概念 掌握JDBC API主要内容 熟悉和掌握Statement接口、Result接口的常用方法和 相关概念(重点、难点) 掌握JSP中检索数据库和更新数据库的方法 (重点、难点)
(3)配置环境。 在classpath中追加SQL Server Driver for JDBC 需要用 到的类sqljdbc.jar。也可将这个文件复制到Tomcat安装文件 夹下的lib文件夹中。 (4)保证数据库访问用户具有足够的访问权限。 一旦SQL Server 2005 Driver For JDBC驱动程序安装配 置好,重启Tomcat,即可使用专用的驱动程序连接SQL Server 2005数据库。

用jsp程序对数据库表进行增、删、差、改操作

用jsp程序对数据库表进行增、删、差、改操作
pstmt.setDate(5,Birth) ;
pstmt.setString(6,request.getParameter("Phone")) ;
pstmt.setFloat(7,Float.parseFloat(Grade)) ;//这个地方的问题要牢记
pstmt.setFloat(8,Float.parseFloat(Use)) ;//这个地方的问题要牢记
生&nbsp;日&nbsp;&nbsp;&nbsp;费:<input type="text"name="Use"><br>
<input type="submit"value="添加">
<input type="reset"value="重置">
</font>
</form>
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
int x = pstmt.executeUpdate() ;//这个用法牢记
%>
<%
if(x>=1){
flag = true;
%>
添加信息成功!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查JSP(Java Server Pages)是一种用于开发Web应用程序的Java技术。

它可以直接在HTML页面中嵌入Java代码,实现动态生成页面内容。

在使用JSP进行数据库的增删改查操作时,通常需要借助JDBC(Java Database Connectivity)来进行数据库的连接和操作。

接下来,需要进行数据库的连接。

可以使用JDBC提供的DriverManager类和Connection接口来实现。

首先,需要定义数据库的相关信息,如驱动程序名称、数据库URL、用户名和密码。

然后,使用DriverManager的静态方法getConnection(来获取数据库连接,传入相应的参数。

例如,对于MySQL数据库,可以使用如下代码进行连接:String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库URLString userName = "root"; // 数据库用户名String password = "password"; // 数据库密码try//加载驱动程序Class.forName(driverName);//获取数据库连接Connection connection = DriverManager.getConnection(url, userName, password);//...} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;连接成功后,接下来可以进行数据库的增删改查操作。

通常,可以使用JDBC的Statement或PreparedStatement对象来执行SQL语句。

Statement对象用于静态SQL语句,而PreparedStatement对象用于动态SQL语句。

仅用Jsp实现对数据库的增删改查

仅用Jsp实现对数据库的增删改查

仅用Jsp实现对数据库的增删改查首先,打开sql*plus,输入用户名(我用的scott)密码(我设置的是tiger)。

先建个表student,Create table student (id number(30) not null primary key,name varchar(50) ,age number(30),gender varchar(30),major varchar(50) );1,打开myeclipse8.5新建一个web project2,在project name 中输入合法名字,比如normal3,新建的normal工程4,在webRoot目录下添加以下.jsp文件4.1 submit.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><base href="<%=basePath%>"><title>输入学生信息界面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript"">function validate(){var id=document.forms[0].id.value;var name=document.forms[0].name.value;var age=document.forms[0].age.value;var major=document.forms[0].major.value;if(id<=0){alert("学号不能为空,请输入学号!");return false;}else if(name.length<=0){alert("姓名不能为空,请输入姓名!");return false;}else if(age<=0){alert("请输入合法年龄!");return false;}else if(major.length<=0){alert("专业不能为空,请输入所学专业!");return false;}else{return true;}//document.getElementById("form").submit();}</script></head><body><br><center><h2>学生信息输入</h2><hr><form action="insert.jsp" method="post" id="form" onSubmit="return validate()" ><h4> 学号:<input type="text" name="id" class="{required:true}"></input><br></h4> <h4> 姓名:<input type="text" name="name"></input><br></h4><h4> 年龄:<input type="text" name="age"></input><br></h4><h4> 性别:<input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女<br></h4><h4> 专业:<input type="text" name="major"></input><br></h4><input type="submit" value="提交"/></form><a href=layout.jsp>查看已输入信息</a></center></body></html>4.2 insert.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>插入学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");String id=request.getParameter("id");String name=request.getParameter("name");System.out.println(name);String age=request.getParameter("age");String gender=request.getParameter("gender");String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("insert into student(id,name,age,gender,major)values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"')"); %><center><%if(rs.next()){out.print("<br><h3>成功输入!</h3>");}else{out.print("<br><h3>输入失败!</h3>");}%><br><a href=submit.jsp>返回信息输入页面</a> <a href=layout.jsp>进入信息查询页面</a></center><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.3 layout.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%response.setCharacterEncoding("UTF-8");request.setCharacterEncoding("UTF-8");String id=request.getParameter("id");String name=request.getParameter("name");String age=request.getParameter("age");String gender=request.getParameter("gender");String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();// stat.execute("insert into student(id,name,age,gender,major)values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"')");rs=stat.executeQuery("select * from student");%><br><h2>学生信息</h2> <hr><br><h3>全部学生信息如下</h3><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("gender")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update3.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}%></table><br><form action="idselect.jsp" method="post"><h3>按学号查询:<input type="text" name="id" value="" title="学号不能为空" ></input> <input type="submit" value="查询"/></h3><br></form><form action="nameselect.jsp" method="post"><h3>按姓名查询:<input type="text" name="name" value="" title="姓名不能为空"></input> <input type="submit" value="查询" /></h3><br></form><form action="ageselect.jsp"method="post"><h3> 按年龄查询:<input type="text" name="age" value="" title="年龄不能为空"></input> <input type="submit" value="查询"/></h3><br></form><form action="genderselect.jsp"method="post"><h3> 按性别查询:<input type="text" name="gender" value=""title="性别不能为空"></input><input type="submit" value="查询"/></h3><br></form><form action="majorselect.jsp"method="post"><h3> 按专业查询:<input type="text" name="major" value=""title="专业不能为空"></input><input type="submit" value="查询"/></h3><br></form><br><h3><a href=submit.jsp>返回信息输入页面</a></h3><br><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.4 delete.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>删除页面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");String id=request.getParameter("id");// String name=request.getParameter("name");// String age=request.getParameter("age");// String gender=request.getParameter("gender");// String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("delete from student where id="+id+"");if(rs.next()){out.print("<center><br><br><h3>删除成功!</h3></center>");}else{out.print("<center><h3>删除失败!</h3></center>");}%><br><br><center> <a href=submit.jsp>返回信息输入页面</a> <a href=layout.jsp>返回信息查询页面</a></center><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.5 idselect.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>按学号条件查询</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");String id=request.getParameter("id");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from student where id="+id+"");%><br><h3>符合条件的学生信息</h3><hr><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%if(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("gender")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update3.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}else{out.print("<h4>不存在此条件的信息!</h4>");}%></table><br><br><h4><a href=layout.jsp>返回查询页面</a></h4><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.6 nameselect.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>按姓名查询</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");String name=request.getParameter("name");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from student where name='"+name+"'");%><br><h3>符合条件的学生信息</h3><hr><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%if(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("gender")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update3.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}else{out.print("<h4>不存在此条件的信息!</h4>");}%></table><br><br><h4><a href=layout.jsp>返回查询页面</a></h4><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.7 ageselect.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>按年龄查询</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");// String id=request.getParameter("id");// String name=request.getParameter("name");String age=request.getParameter("age");// String gender=request.getParameter("gender");// String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from student where age="+age+"");%><br><h3>符合条件的学生信息</h3><hr><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%if(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("gender")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update3.jsp?id=<%=rs.getInt("id") %>">修改</a></td> <%out.print("</tr>");}else{out.print("<h4>不存在此条件的信息!</h4>");}%></table><br><br><h4><a href=layout.jsp>返回查询页面</a></h4><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.8 genderselect.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>按性别查询</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");// String id=request.getParameter("id");// String name=request.getParameter("name");// String age=request.getParameter("age");String gender=request.getParameter("gender");// String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";String user="scott";String password="tiger";conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from student where gender='"+gender+"'");%><br><h3>符合条件的学生信息</h3><hr><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("gender")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update3.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}%></table><br><br><h4><a href=layout.jsp>返回查询页面</a></h4><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>4.9 major.jsp文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%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><base href="<%=basePath%>"><title>按专业查询</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%request.setCharacterEncoding("UTF-8");// String id=request.getParameter("id");// String name=request.getParameter("name");// String age=request.getParameter("age");// String gender=request.getParameter("gender");String major=request.getParameter("major");//major=;Connection conn=null;。

JSP与数据库的增删改查

JSP与数据库的增删改查

JSP与数据库的增删改查1.准备工作,首先要有一个数据库,在数据库里新建一个表,用来操作id要设置为自动增长列,否则在插入操作无法成功在MyEclipse中新建一个Web Progect工程在src目录下建立entity包,dao包在WebRoot/WebInfo/lib/导入sqljdbc.jar包(用于对数据库进行操作)2.entity包,用于操作数据库(这部分用到的成员变量最好直接通过数据库来直接复制,以免存在漏泄,写错单词等低级错误,其他的就是简单的get和set方法了)[java] view plain copyprint?1.package entity;2.3.public class UserInfo {4.private int id;5.private String user_name;6.private String user_sex;7.private int user_age;8.private String user_hobby;9.private String user_city;10.private String mtext;11.public int getId() {12.return id;14.public void setId(int id) {15.this.id = id;16.}17.public String getUser_name() {18.return user_name;19.}20.public void setUser_name(String user_name) {er_name = user_name;22.}23.public String getUser_sex() {24.return user_sex;25.}26.public void setUser_sex(String user_sex) {er_sex = user_sex;28.}29.public int getUser_age() {30.return user_age;31.}32.public void setUser_age(int user_age) {er_age = user_age;34.}35.public String getUser_hobby() {36.return user_hobby;37.}38.public void setUser_hobby(String user_hobby) {er_hobby = user_hobby;40.}41.public String getUser_city() {42.return user_city;44.public void setUser_city(String user_city) {er_city = user_city;46.}47.public String getMtext() {48.return mtext;49.}50.public void setMtext(String mtext) {51.this.mtext = mtext;52.}53.}Dao包下用于对数据库的操作数据库(1)BaseDao.Java链接数据库(其中的close方法中依次关闭了结果集,操作句柄,链接)[java] view plain copyprint?1.package dao;2.3.import java.sql.Connection;4.import java.sql.DriverManager;5.import java.sql.ResultSet;6.import java.sql.Statement;7.8.public class BaseDao {9.public static Connection getConnection()throws Exception{10.Class.forName("com.microsoft.sqlserver.jdbc.SQLServe rDriver");11.String url="jdbc:sqlserver://127.0.0.1:1433;database= mydb";12.return DriverManager.getConnection(url, "sa", "sa");13.}14.15.public static void close(ResultSet rs,Statement sta,Con nection con)throws Exception{16.if(rs!=null){17.//关闭结果集18.rs.close();19.}20.if(sta!=null){21.//关闭操作句柄22.sta.close();23.}24.if(con!=null){25.//关闭链接26.con.close();27.}28.}29.}UserinfoDao.java是数据库的增删改查的方法[java] view plain copyprint?1.package dao;2.3.import java.sql.Connection;4.import java.sql.PreparedStatement;5.import java.sql.ResultSet;6.import java.util.ArrayList;7.8.import erInfo;9.10.public class UserInfoDao {11.12.//查询所有(查)13.public ArrayList findAll(){14.Connection con=null;15.PreparedStatement psta=null;16.ResultSet rs=null;17.ArrayList list=new ArrayList();18.String sql="select * from userinfo";19.try{20.con=BaseDao.getConnection();21.psta=con.prepareStatement(sql);22.rs=psta.executeQuery();23.while(rs.next()){erInfo obj=new UserInfo();25.obj.setId(rs.getInt(1));26.obj.setUser_name(rs.getString(2));27.obj.setUser_sex(rs.getString(3));28.obj.setUser_age(rs.getInt(4));29.obj.setUser_hobby(rs.getString(5));30.obj.setUser_city(rs.getString(6));31.obj.setMtext(rs.getString(7));32.list.add(obj);33.}34.}catch(Exception e){35. e.printStackTrace();36.}finally{37.try{38.BaseDao.close(rs, psta, con);39.}catch(Exception e){40. e.printStackTrace();41.}42.return list;43.}44.}45.46.//插入方法(增)47.public boolean save(UserInfo obj){48.Connection con=null;49.PreparedStatement psta=null;50.String sql="insert into userinfo values(?,?,?,?,?,?)";51.boolean flag=false;52.try{53.con=BaseDao.getConnection();54.psta=con.prepareStatement(sql);55.psta.setString(1, obj.getUser_name());56.psta.setString(2, obj.getUser_sex());57.psta.setString(3, obj.getUser_age()+"");58.psta.setString(4, obj.getUser_hobby());59.psta.setString(5, obj.getUser_city());60.psta.setString(6, obj.getMtext());61.flag=psta.executeUpdate()>0;62.}catch(Exception e){63. e.printStackTrace();64.}finally{65.try{66.BaseDao.close(null, psta, con);67.}catch(Exception e){68. e.printStackTrace();69.}70.return flag;71.}72.}73.74.//删除方法(删)75.public boolean remove(int id){76.Connection con=null;77.PreparedStatement psta=null;78.boolean flag=false;79.String sql="delete from userinfo where id=?";80.try{81.con=BaseDao.getConnection();82.psta=con.prepareStatement(sql);83.psta.setInt(1, id);84.flag=psta.executeUpdate()>0;85.}catch(Exception e){86. e.printStackTrace();87.}finally{88.try{89.BaseDao.close(null, psta, con);90.}catch(Exception e){91. e.printStackTrace();92.}93.return flag;94.}95.}96.//通过id修改,为更新做准备的(改)97.public UserInfo findById(int id){98.Connection con=null;99.PreparedStatement psta=null;100.ResultSet rs=null;erInfo obj=null;102.String sql="select * from userinfo where id=?"; 103.try{104.con=BaseDao.getConnection();105.psta=con.prepareStatement(sql);106.psta.setInt(1, id);107.rs=psta.executeQuery();108.if(rs.next()){109.obj=new UserInfo();110.obj.setId(rs.getInt(1));111.obj.setUser_name(rs.getString(2));112.obj.setUser_sex(rs.getString(3));113.obj.setUser_age(rs.getInt(4));114.obj.setUser_hobby(rs.getString(5));115.obj.setUser_city(rs.getString(6));116.obj.setMtext(rs.getString(7));117.}118.}catch(Exception e){119. e.printStackTrace();120.}finally{121.try{122.BaseDao.close(rs, psta, con);124. e.printStackTrace();125.}126.return obj;127.}128.}129.130.//更新方法(修改数据)(改)131.public boolean update(UserInfo obj){132.Connection con=null;133.PreparedStatement psta=null;134.String sql="update userinfo set user_name=?,user_sex =?,user_age=?,user_hobby=?,user_city=?,mtext=? where id=?";135.boolean flag=false;136.try{137.con=BaseDao.getConnection();138.psta=con.prepareStatement(sql);139.psta.setString(1, obj.getUser_name());140.psta.setString(2, obj.getUser_sex());141.psta.setString(3, obj.getUser_age()+"");142.psta.setString(4, obj.getUser_hobby());143.psta.setString(5, obj.getUser_city());144.psta.setString(6, obj.getMtext());145.psta.setInt(7,obj.getId());146.flag=psta.executeUpdate()>0;147.}catch(Exception e){148. e.printStackTrace();149.}finally{150.try{151.BaseDao.close(null, psta, con);153. e.printStackTrace();154.}155.return flag;156.}157.}158.159.160.}3.界面演示查找界面在WebRoot/WEB-INF下的index.jsp下设计要演示的界面这里为了方便操作还增加了一些删除和修改的跳转链接(这部分是为了方便后续的删除和修改操作)[javascript] view plain copyprint?1.<pre name="code" class="javascript"><%@ page import ="java.util.*,dao.*,entity.*" pageEncoding="UTF-8"%>2.<html>3.<head>4.<title></title>5.</head>6.<%erInfoDao dao=new UserInfoDao();8.ArrayList list=dao.findAll();9.%>10.11.<script type="text/javascript">12.function myAction(pid){13.document.forms[0].id.value=pid;14.document.forms[0].submit();15.}16.</script>17.<body>18.<h1 align="center"><br></h1><h1 align="center"> 用户信息</h1>19.<form action="doRemove.jsp" method="post">20.<!-- 用于存放选择的id,然后会随表单提交给服务器处理页面 -->21.<input type="hidden" name="id">22.<table align="center" border="1" width="80%">23.<tr>24.<td colspan="8" align="right">25.<a href="add.jsp">添加新信息</a>26.</td>27.</tr>28.<tr>29.<th>编号</th>30.<th>姓名</th>31.<th>性别</th>32.<th>年龄</th>33.<th>爱好</th>34.<th>城市</th>35.<th>描述</th>36.<th>操作</th>37.</tr>38.<%for(int i=0;i<list.size();i++){erInfo obj=(UserInfo)list.get(i);%>40.<!--Html代码-->41.<tr>42.<td><%=obj.getId()%></td>43.<td><%=obj.getUser_name()%></td>44.<td><%=obj.getUser_sex()%></td>45.<td><%=obj.getUser_age()%></td>46.<td><%=obj.getUser_hobby()%></td>47.<td><%=obj.getUser_city()%></td>48.<td><%=obj.getMtext()%></td>49.<td>50.<%-- <a href="doRemove.jsp?id=<%=obj.getId()%>">删除</a> --%>、51.<a href="update.jsp?id=<%=obj.getId()%>">修改</a>52.<input type="button" value="删除" onclick="myAction('<%=obj.getId()%>')"/>53.</td>54.</tr>55.<%}%>56.</table>57.</form>58.</body>59.<html>对于JSP onclick的方法中提交时可以用document.forms[0].name.value (name为表单的名字,这个表单中为id)或者document.表单名.控件名.value 提交的必须是<input/>中的打开数据库,开启服务器后,在浏览器中键入地址后的界面如下这样查询的操作就完成了4.下面进行添加数据的操作设计add.jsp提供数据添加的界面[javascript] view plain copyprint?1.<%@ page import="java.util.*" pageEncoding="UTF-8"%>2.3.<html>4.<head>5.<title></title>6.</head>7.<!-- JavaScript是搭配HTML使用的脚本代码,可以帮助我们操作HTML内容和浏览器本身 -->8.<!-- JavaScript可以做很多很多事情,甚至可以用来编写游戏和强大的基于浏览器的应用9.然而更普遍的功能是利用JavaScript帮助我们进行表单验证,确保提交的数据是符合服务器业务处理要求的 -->10.<script type="text/javascript">11.function myBack(){12.//将浏览器导航为index.jsp,location.href属性可以更改当前浏览器地址栏的内容13.location.href="index.jsp";14.//window.location.href="index.jsp";15.16.}17.//mySubmit方法用于提交表单,并且在提交之前验证表单数据的格式是否符合要求18.function mySubmit(){19.//先来个简单的,验证姓名必须有填写,不能为空20.//首先获取姓名输入框的数据21.//document是文档对象,代表整个HTML页面22.//forms是表单集合,如果存在多个表单的话,索引从0开始,并且是从上往下编号如果表单有表单名可以用<span style="font-family:FangSong_GB2312;"><strong>document.表单名.控件名.value </strong></span>23.//user_name是表单下控件的名字24.//value是获取这个控件的value值25.//length是一个属性,返回长度26.//var是变量,JavaScript是弱类型语言,也就是说不区分int,double,Object这些类型27.//而是统一使用var表示28.var name=document.forms[0].user_name;29.//通过document.getElementById(“id名”)可以获取非<input /> 中的内容,但是dojsp无法获取30.var name_msg=document.getElementById("name_ms g");31.var hobby_msg=document.getElementById("hobby_m sg");_msg.innerHTML="";33.hobby_msg.innerHTML="";34.if(name.value.length==0){35.//提示用户36.//alert("姓名为必填项");_msg.innerHTML="<font color='red'>*姓名为必填项</font>";38.//聚焦(鼠标定位).focus();40.return ;//中断方法的运行41.}42.//对于多选的控件判断会稍微麻烦点点哦43.var hobby_item=document.forms[0].user_hobby;44.var flag=false;45.for(var i=0;i<hobby_item.length;i++){46.if(hobby_item[i].checked==true){47.flag=true;48.break;49.}50.}51.if(flag==false){52.//alert("至少选择一个爱好");53.hobby_msg.innerHTML="<font color='red'>*至少选择一个爱好</font>";54.return ;55.}56.document.forms[0].submit();//submit是提交方法57.}58.</script>59.<body>60.<h1 align="center">新增信息</h1>61.<form action="doadd.jsp" method="post" >62.<table align="center" width="50%">63.<!-- 姓名 -->64.<tr>65.<td align="right" width="37%">姓名:</td>66.<td align="left" width="25%"><input type="text" na me="user_name" ></td>67.<td>68.<div id="name_msg" align="left"></div>69.</td>70.</tr>71.<!-- 性别 -->72.<tr>73.<td align="right">性别:</td>74.<td align="left" colspan="2"><input type="radio" na me="user_sex" value="男" checked="checked">男75.<input type="radio" name="user_sex" value="女" />女</td>76.</tr>77.<!-- 年龄 -->78.<tr>79.<td align="right">年龄:</td>80.<td align="left" colspan="2"><select name="user_ag e">81.<% for(int i=18;i<=30;i++){%>82.<option value="<%=i%>" ><%=i%></option>83.<%} %>84.</select></td>85.</tr>86.<!-- 爱好 -->87.<tr>88.<td align="right">爱好:</td>89.<td align="left"><input type="checkbox" name="us er_hobby" value="唱歌"/>唱歌90.<input type="checkbox" name="user_hobby" value="跳舞"/>跳舞91.<input type="checkbox" name="user_hobby" value="阅读"/>阅读 </td>92.<td>93.<div id="hobby_msg"></div>94.</td>95.</tr>96.<!-- 城市 -->97.<tr>98.<td align="right" valign="middle">城市:</td>99.<td align="left" colspan="2"><select name="user_cit y" multiple="multiple" size="9 ">100.<option value="北京">北京 </option>101.<option value="南京">南京 </option>102.<option value="成都">成都 </option>103.<option value="杭州">杭州 </option>104.<option value="深圳">深圳 </option>105.<option value="西安">西安 </option>106.<option value="长沙">长沙 </option>107.<option value="武汉">武汉 </option>108.<option value="上海">上海 </option>109.</select></td>110.</tr>111.<!-- 描述 -->112.<tr>113.<td align="right" valign="middle">描述:</td>114.<td align="left" colspan="2"><textarea rows="8" na me="mtext"></textarea></td>115.</tr>116.<!-- 按钮 -->117.<tr>118.<td align="center" colspan="3">119.<input type="button" value="添加" onclick="mySubmit()">120.121.<input type="button" value="返回" onclick="myBack()">122.</td>123.</tr>124.</table>125.</form>126.</body>127.</html>这个界面要将新添加的信息发送给doadd.jsp页面,因此表单中要有post方式界面如下而doadd.jsp 是处理操作的页面,并非用于显示数据,所以无需任何HTML代码,只是将上一个add.jsp传递过来的数据进行处理,不用于在浏览器上显示出来[javascript] view plain copyprint?1.<%@ page import="java.util.*,entity.*,dao.*" pageEncodi ng="UTF-8"%>2.<!-- 处理操作的页面,并非用于显示数据,所以无需任何HTML 代码 -->3.<%4.//接收数据,在JSP中每个页面都具备一个隐藏的对象,这个对象包含着所有提交的请求信息5.//这就是request对象,也成为请求对象6.//request是一个隐式对象,所谓的隐式对象是无需声明直接使用的对象(事实上声明是存在的,不过不由我们来做)7.//getParameter是request中最常见的方法,作用是根据传入的name获取value8.//setCharacterEncoding是设置请求对象中参数的编码,必须在调用getParameter之前调用该方法9.//并且一般来说这里的编码要和提交页面的编码一致10.request.setCharacterEncoding("UTF-8");11.String user_name=request.getParameter("user_name") ;12.String user_sex=request.getParameter("user_sex");13.String user_age=request.getParameter("user_age");14.//getParameterValues可以获取name对应的一组value(如果name下有多个value被提交的话)15.String[] s1=request.getParameterValues("user_hobby") ;16.StringBuffer user_hobby=new StringBuffer();17.for(int i=0;s1!=null&&i<s1.length;i++){er_hobby.append(s1[i]);19.if(i<s1.length-1){er_hobby.append(",");21.}22.}23.String[] s2=request.getParameterValues("user_city");24.StringBuffer user_city=new StringBuffer();25.for(int i=0;s2!=null&&i<s2.length;i++){er_city.append(s2[i]);27.if(i<s2.length-1){er_city.append(",");29.}31.String mtext=request.getParameter("mtext");erInfo obj=new UserInfo();33.obj.setUser_name(user_name);34.obj.setUser_sex(user_sex);35.obj.setUser_age(Integer.parseInt(user_age));36.obj.setUser_hobby(user_hobby.toString());37.obj.setUser_city(user_city.toString());38.obj.setMtext(mtext);39.erInfoDao dao=new UserInfoDao();41.dao.save(obj);42.43.//除了request外,还有个隐藏的对象叫response44.//response也是隐式对象,无需声明就可以直接使用45.//和request不同的地方在于,它是表示响应46.//现在我们要做的时候结束完所有工作后,页面重新为index.jsp47.//所以需要通过响应对象将index.jsp页面响应回客户浏览器,否则客户浏览器得到的是doadd.jsp的页面代码48.//换句话说就是空无一物49.response.sendRedirect("index.jsp");50.%>接下来进行删除操作doRemove.jsp[javascript] view plain copyprint?1.<%@ page import="java.util.*,dao.*" pageEncoding="UT F-8"%>3.request.setCharacterEncoding("UTF-8");erInfoDao dao=new UserInfoDao();5.int id=Integer.parseInt(request.getParameter("id"));6.String msg="操作出问题了,请稍后重试,或联系管理员";7.if(dao.remove(id)){8.msg="恭喜你,操作成功,成功删除id为"+id+"的数据";9.}10.//response.sendRedirect是重定向11.//重定向会让我们的浏览器显示指定的页面,但是对于用户来说无法得知操作是否成功(只能通过查看显示的页面效果来判断)12.//除了重定向以外还有3种提示效果13./14.//1.弹出对话框,等待用户确认消息后再继续前往下一个页面15.//2.显示信息,在一段时间后自动前往下一个页面16.//response.sendRedirect("index.jsp");17.%>18.<%--19.<script type="text/javascript">20.alert("<%=msg%>");21.location.href="index.jsp";22.</script>23.--%>24.<%--25.JSP是一个多种代码混杂的编写环境,其中包括的代码可以分为服务器端代码和客户端代码26.所谓的服务器端代码是指运行在服务器环境中,由服务器负责解析和执行的代码,在JSP中Java代码就是服务器端代码27.而其他的HTML,JS,CSS等代码都是客户端代码,是由浏览器来解析和执行28.从请求响应模式的流程来说,是先执行服务器代码,然后执行客户端代码29.在这个执行过程中不会去考虑混杂在一起后的先后顺序问题30.简单的说,就是执行Java代码的时候,HTML,JS等代码是完全忽略的31.而执行HTML,JS等代码的时候,Java代码早已执行完毕,所有Java代码的地方已经变成运行后的结果32.--%>33.<%//response.sendRedirect("index.jsp"); %>34.<!-- 2.显示信息,在一段时间后自动前往下一个页面 -->35.<%--36.<html>37.<head>38.<meta http-equiv="refresh" content="5;index.jsp">39.</head>40.</html>41.<h1><%=msg%>,5秒后返回首页,如浏览器无反应,<a href="index.jsp">请点击</a></h1>42.--%>43.<div id="msg"><h1><%=msg%>,5秒后返回首页,如浏览器无反应,<a href="index.jsp">请点击</a></h1></div>44.<script type="text/javascript">45.var count=4;46.window.setInterval(function(){47.if(count==0){48.location.href="index.jsp";49.}50.var div_msg=document.getElementById("msg");51.div_msg.innerHTML="<h1><%=msg%>,"+count+"秒后返回首页,如浏览器无反应,<a href='index.jsp'>请点击</a></h1>"52.count--;53.}, 1000);54.</script>修改操作update.jsp[javascript] view plain copyprint?1.<%@ page import="java.util.*,dao.*,entity.*" pageEncodi ng="UTF-8"%>2.<%3.request.setCharacterEncoding("UTF-8");4.int id=Integer.parseInt(request.getParameter("id"));erInfoDao dao=new UserInfoDao();erInfo obj=dao.findById(id);7.8.//准备好常量9.ArrayList sexs=new ArrayList();10.sexs.add("男");11.sexs.add("女");12.ArrayList hobbys=new ArrayList();13.hobbys.add("唱歌");14.hobbys.add("跳舞");15.hobbys.add("阅读");16.ArrayList citys=new ArrayList();17.citys.add("北京");18.citys.add("南京");19.citys.add("成都");20.citys.add("杭州");21.citys.add("深圳");22.citys.add("西安");23.citys.add("长沙");24.citys.add("武汉");25.citys.add("上海");26.%>27.<html>28.<head>29.<title></title>30.</head>31.<script type="text/javascript">32.function myBack(){33.location.href="index.jsp";34.}35.36.function mySubmit(){37.var name=document.forms[0].user_name;38.var name_msg=document.getElementById("name_ms g");39.var hobby_msg=document.getElementById("hobby_m sg");_msg.innerHTML="";41.hobby_msg.innerHTML="";42.if(name.value.length==0){_msg.innerHTML="<font color='red'>*姓名为必填项</font>";.focus();45.return ;46.}47.var hobby_item=document.forms[0].user_hobby;48.var flag=false;49.for(var i=0;i<hobby_item.length;i++){50.if(hobby_item[i].checked==true){51.flag=true;52.break;53.}54.}55.if(flag==false){56.hobby_msg.innerHTML="<font color='red'>*至少选择一个爱好</font>";57.return ;58.}59.document.forms[0].submit();60.}61.</script>62.<body>63.<h1 align="center">修改信息</h1>64.<form action="doUpdate.jsp" method="post" >65.<input type="hidden" name="id" value="<%=obj.getI d()%>">66.<table align="center" width="50%">67.<!-- 姓名 -->68.<tr>69.<td align="right" width="37%">姓名:</td>70.<td align="left" width="25%"><input type="text" na me="user_name" value="<%=obj.getUser_name()%>" ></td>71.<td>72.<div id="name_msg" align="left"></div>73.</td>74.</tr>75.<!-- 性别 -->76.<tr>77.<td align="right">性别:</td>78.<td align="left" colspan="2">79.<%for(int i=0;i<sexs.size();i++){%>80.<input type="radio" name="user_sex" value="<%=se xs.get(i).toString()%>"81.<%if(obj.getUser_sex().equalsIgnoreCase(sexs.get(i).to String())){%>82.checked="checked"83.<% } %>84./><%=sexs.get(i).toString()%>85.<% } %>86.</td>87.</tr>88.<!-- 年龄 -->89.<tr>90.<td align="right">年龄:</td>91.<td align="left" colspan="2"><select name="user_ag e">92.<% for(int i=18;i<=30;i++){%>93.<option value="<%=i%>" <%if(obj.getUser_age()==i) {out.print("selected='selected'");} %>><%=i%></option>94.<%} %>95.</select></td>96.</tr>97.<!-- 爱好 -->98.<tr>99.<td align="right">爱好:</td>100.<td align="left">101.<%for(int i=0;i<hobbys.size();i++){%>102.<input type="checkbox" name="user_hobby" value= "<%=hobbys.get(i).toString()%>"<%if(obj.getUser_hobby().inde xOf(hobbys.get(i).toString())!=-1){%>checked="checked"<%}%>/><%=hobbys.get(i).toString() %><% } %>103.</td>104.<td>105.<div id="hobby_msg"></div>106.</td>107.</tr>108.<!-- 城市 -->109.<tr>110.<td align="right" valign="middle">城市:</td>111.<td align="left" colspan="2"><select name="user_cit y" multiple="multiple" size="9 ">112.<%for(int i=0;i<citys.size();i++){%>113.<option value="<%=citys.get(i).toString()%>" <%if(o bj.getUser_city().indexOf(citys.get(i).toString())!=-1){%>selected="selected"<%} %>><%=citys.get(i).toString()%> </option>114.<%} %>115.</select></td>116.</tr>117.<!-- 描述 -->118.<tr>119.<td align="right" valign="middle">描述:</td>120.<td align="left" colspan="2"><textarea rows="8" na me="mtext"><%=obj.getMtext()%></textarea></td>121.</tr>122.<!-- 按钮 -->123.<tr>124.<td align="center" colspan="3">125.<input type="button" value="修改" onclick="mySubmit()">126.127.<input type="button" value="返回" onclick="myBack()">128.</td>129.</tr>130.</table>131.</form>132.</body>133.</html>doUpdate.jsp[javascript] view plain copyprint?1.<%@ page import="java.util.*,dao.*,entity.*" pageEncodi ng="UTF-8"%>2.<%3.request.setCharacterEncoding("UTF-8");4.String user_name=request.getParameter("user_name");5.String user_sex=request.getParameter("user_sex");6.String user_age=request.getParameter("user_age");7.//如果多选控件没有选定值的话,返回是null而非长度为0的数组8.String[] hobbys=request.getParameterValues("user_hobb y");9.StringBuffer user_hobby=new StringBuffer();10.for(int i=0;hobbys!=null&&i<hobbys.length;i++){er_hobby.append(hobbys[i]);12.if(i<hobbys.length-1){er_hobby.append(",");14.}15.}16.String[] citys=request.getParameterValues("user_city");17.StringBuffer user_city=new StringBuffer();18.for(int i=0;citys!=null&&i<citys.length;i++){er_city.append(citys[i]);20.if(i<citys.length-1){er_city.append(",");22.}23.}24.String mtext=request.getParameter("mtext");25.int id=Integer.parseInt(request.getParameter("id"));26.27.erInfo obj=new UserInfo();29.obj.setId(id);30.obj.setUser_name(user_name);31.obj.setUser_sex(user_sex);32.obj.setUser_age(Integer.parseInt(user_age));33.obj.setUser_hobby(user_hobby.toString());34.obj.setUser_city(user_city.toString());35.obj.setMtext(mtext);erInfoDao dao=new UserInfoDao();37.dao.update(obj);38.response.sendRedirect("index.jsp");39.40.%>。

JDBC操作Oracle数据库(增删改查详细实例教程)(精)

JDBC操作Oracle数据库(增删改查详细实例教程)(精)

private finalString = "oracle.jdbc.driver.OracleDriver"及登录;功能实现。

E clipse + struts2+oracle+jdbc eb开发技术框架入门小项目,一般都是从增删改功能实现开始入手,就像学编程语言几乎从“HelloWorld final”一样的经典,本人初入 String = "jdbc:oracle:thin:@192.168.0.99:1521:denver";private final String DBUSER = "zzw";private final一、环境搭建"zzw";private Connection conn = null;导入必要的包,我所建工程引入如下包:public DataBaseConnection( {C lasses12.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar freemarker-2.3.16.jar javassist-3.11.0.GA.jar ognl-3.0.1.jar ojdbc14.jar struts-core-2.2.3.jar xwork-core-2.2.3.jartry {引入的包具体的版本同struts 的版本有关系,我的是sturts2.2.6.(DBDRIVER;this.conn = DriverManager.getConnection二、DBURL, web.xml, DBPASSWORD;} 我的web.xml内容如下:}xml}?>// 取得数据库连接web-apppublic Connection getConnection( {"xmlns=" return xmlns:web="/xml/ns/javaee/web-app_2_5.xsd" }="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd "id="WebApp_ID"version=" close( {">try{<display-name>// 我的工程名为webDemo} catch (Exception e {}struts-default.xml,struts-plugin.xmlstaticfilter>System..println(aa.getConnection(;<filter-mapping }<filter-name> filter-name测试类Main.java Java url-pattern>/*url-pattern>package com.connect.t01;filter-mappingimportimport <welcome-file-listimport //默认显示页面import<;welcome-file>* @desc>* jdbc>数据库(welcome-file>default.html welcome-file>< 2013-default.htm welcome-file*/<welcome-file>default.jspwelcome-file@SuppressWarnings(public staticmain(String[] args{web-appPerson person =如果有不懂的地方,百度搜索一下“person.setId("002"三、配置 person.setName(通俗一点来书,本人觉得S就像一个导航,也是一个映射关系,页面的跳转,及动作的发生,都是struts.xml"002",基本上struts的原理你就弄清楚了,所以本人重点讲解一下自己所遇到的问题。

使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)

使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)
}
public void setCurrentRecord(int currentRecord{
this.currentRecord=currentRecord;
}
//获得和设置每页记录数量
public int getPageSize({
return pageSize;
}
public void setPageSize(int pageSize{
private int totalRecord;
private int currentRecord;
private int pageSize=8;
//获得和设置当前页
public int getCurrentPage({
return currentPage;
}
public void setCurrentPage(int currentRecord,int pageSize{
String major=request.getParameter("major";
conn=connect(;
stat=conn.createStatement(;
stat.execute("insert into student(id,name,age,gender,major values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"'";
// TODO Auto-generated catch block

JSP对Oracle进行增删改查

JSP对Oracle进行增删改查

jsp连接Oracle的增删改查****************************************db包中的stu学生************************************ package db;public class stu { //学生类private String sid;private String name;private String age;public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}}*****************************************db包中的ConnDb************************************ package db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;public class ConnDb { //数据库连接和操作的类private static Connection con=null;private static Statement stmt=null;private static ResultSet rs=null;public static void statrconn(){ //连接数据库方法try {Class.forName("oracle.jdbc.driver.oracledriver "); //创建连接数据库中间件try {con=DriverManager.getConnection("jdbc:odbc:thin:@127.0.0.1:1521:orcl","",""); //连接access数据源 } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void endconn() throws SQLException{ //关闭数据源的类if(rs!=null){rs.close();rs=null;}if(stmt!=null){stmt.close();stmt=null;}if(con!=null){con.close();con=null;}}public static void update(String sql) throws SQLException{ //数据库更新类statrconn();stmt=con.createStatement();stmt.executeUpdate(sql);endconn();}public static ArrayList getList1(String sql) throws SQLException{ //数据库查询类,查询结果集以列表返回 ArrayList list=new ArrayList();statrconn();stmt=con.createStatement();rs=stmt.executeQuery(sql);while(rs.next()){stu st=new stu();st.setSid(rs.getString("sid"));st.setName(rs.getString("sname"));st.setAge(rs.getString("sage"));list.add(st);}endconn();return list;}}********************************主jsp页面list.jsp****************************************<%@ page language="java" import="db.ConnDb,db.stu,java.util.*" pageEncoding="gbk"%><%--jsp头文件,包括引入的包和支持语言,gbk为支持中文--%><%ArrayList list = ConnDb.getList1("select sid,sname,sage from test"); //获得test表中所有数据并以列表形式返回%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'list.jsp' starting page</title></head><body><input type="button" name="bottom" value="添加新学生"onclick="javascript:window.location.href='add.jsp'"><br><br><table border="1" ><tr><td>编号</td><td>姓名</td><td>年龄</td><td>操作</td></tr><% {for(Iterator it=list.iterator();it.hasNext();){stu s=(stu)it.next();%><tr><td><%=s.getSid()%></td><td><%=s.getName()%></td><td><%=s.getAge()%></td><td><a href="update.jsp?sid=<%=s.getSid()%>">修改</a><a href="delete.jsp?sid=<%=s.getSid()%>" onclick="return confirm('确定删除?');">删除</a></td></tr><% }}%></table></body></html>************************************************添加学生的jsp页面add.jsp******************************************<%@ page language="java" pageEncoding="gbk"%><%%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>add</title></head><body><form action="addinfo.jsp" method="post"> 提交到addinfo.jsp<p>添加学生:</p>姓名:<input type="text" name="sname"><br><br>年龄:<input type="text" name="sage"><br><br><input type="submit" name="submit" value="提交"></form></body></html>*******************************************添加学生的处理jsp页面addinfo.jsp*******************************************<%@ page language="java" import="db.ConnDb" pageEncoding="gbk"%><%String name = new String(request.getParameter("sname").getBytes("iso-8859-1"));String age = new String(request.getParameter("sage").getBytes("iso-8859-1"));ConnDb.update("insert into test (sname,sage) values ('"+name+"','"+age+"')");response.sendRedirect("list.jsp");%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'addinfo.jsp' starting page</title></head><body>添加成功!<br></body></html>***********************************修改学生信息的jsp页面update.jsp*******************************************************<%@ page language="java" import="db.ConnDb,db.stu,java.util.*" pageEncoding="gbk"%><%String sid=new String(request.getParameter("sid")); //获得要修改人的sidArrayList list=ConnDb.getList1("select sid,sname,sage from test where sid=" +sid); //查询要修改学生的信息,并以列表返回stu s = (stu)list.get(0); //将列表内容换成学生类%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'update.jsp' starting page</title></head><body><form method="post" action="updateInfo.jsp"> 提交到updateInfo.jsp页面<p>修改学生信息&nbsp;</p><p>姓名:<input type="text" name="sname" value="<%=s.getName() %>"> 修改学生信息</p><p>&nbsp;年龄:<input type="text" name="sage" value="<%=s.getAge()%>"><input type="hidden" name="sid" value="<%=sid%>"></p><p>&nbsp;<input type="submit" value="提交" name="button1"></p></form></body></html>**************************************修改的处理页面updateInfo.jsp*********************************************************<%@ page language="java" import="db.ConnDb" pageEncoding="gbk"%><%String name = new String(request.getParameter("sname").getBytes("ISO-8859-1")); //接收信息 String age = new String(request.getParameter("sage").getBytes("ISO-8859-1"));String sid = new String(request.getParameter("sid").getBytes("ISO-8859-1"));String sql = "update test set sname='"+name+"',sage='"+age+"' where sid="+sid;ConnDb.update(sql); //执行修改response.sendRedirect("list.jsp"); //转到list.jsp页面%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'updateInfo.jsp' starting page</title></head><body>This is my JSP page. <br></body></html>******************************************删除的处理页面delete.jsp********************************************************<%@ page language="java" import="db.ConnDb" pageEncoding="gbk"%><%ConnDb.update("delete from test where sid ="+request.getParameter("sid")); //获得要删除人的sid并删除response.sendRedirect("list.jsp"); //转到list.jsp页面%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'delete.jsp' starting page</title></head><body>This is my JSP page. <br></body>。

jsp实现连接数据库分页浏览增删改查等功能(精)

jsp实现连接数据库分页浏览增删改查等功能(精)

一利用jsp实现Oracle数据库中表格的分页浏览:二在Oracle数据库中建立表格,包含员工的工号、姓名、性别、工龄、工资等字段,并实现增删改查操作。

(1)所建的worker表格如下:(2)Input.jsp运行结果如下:(3)Inputcheck.jsp运行结果如下:Pagebreak.jsp代码如下:<%@page contentType="text/html"pageEncoding="UTF-8" import="java.sql.*"%>分页显示记录内容<%String oracledriver="oracle.jdbc.driver.OracleDriver";String oracleUrl="jdbc:oracle:thin:@localhost:1521:ORACLE";String username="scott";String password="tiger";Connection con;Class.forName(oracledriver;con=DriverManager.getConnection(oracleUrl,username,password;int intPageSize;int intRowCount;int intPageCount;int intPage;String strPage;int i;intPageSize = 10;strPage = request.getParameter("page";if(strPage==null{intPage =1;}else{intPage = ng.Integer.parseInt(strPage;if(intPage<1 intPage = 1;}Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY;String sql = "select * from worker";ResultSet rs=stmt.executeQuery(sql;st(;intRowCount = rs.getRow(;intPageCount = (intRowCount+intPageSize-1/intPageSize;if(intPage>intPageCountintPage =intPageCount;if(intPageCount>0{rs.absolute((intPage-1*intPageSize+1;i = 0;while(i<%rs.next(;i++;}}%>工号姓名性别工龄工资<%=rs.getStrin g("id"%> <%=rs.getString("name"%><%=rs.getString("sex"%><%=rs.getString("workyear"%><%=rs.getString("sal"%>第<%=intPage%>页共<%=intPageCount%>页<%if(intPage%>下一页<%}if(intPage>1{%>上一页<%}rs.close(;stmt.close(;con.close(;%>Input.jsp代码如下:<%@page contentType="text/html"pageEncoding="UTF-8"%>工号姓名性别工龄工资[</span><span style=]提交">[</span><span style=]取消"> Inputcheck.jsp 代码如下:<%@page contentType="text/html"pageEncoding="UTF-8" import="java.sql.*"%>已添加员工信息<%String empID = request.getParameter("empID";byte []b=empID.getBytes("ISO-8859-1";empID = new String(b,"UTF-8";String empName = request.getParameter("empName";byte []b1=empName.getBytes("ISO-8859-1";empName = new String(b1,"UTF-8";String empSex = request.getParameter("empSex";byte []b2=empSex.getBytes("ISO-8859-1"; empSex = new String(b2,"UTF-8";String empWorkyear= request.getParameter("empWorkyear";byte []b3=empWorkyear.getBytes("ISO-8859-1";empWorkyear = new String(b3,"UTF-8";String empSal = request.getParameter("empSal";byte []b4=empSal.getBytes("ISO-8859-1";empSal = new String(b4,"UTF-8";String oracledriver="oracle.jdbc.driver.OracleDriver";String oracleUrl="jdbc:oracle:thin:@localhost:1521:ORACLE";String username="scott";String password="tiger";Class.forName(oracledriver;Connection con=DriverManager.getConnection(oracleUrl,username,password; Statement stmt=con.createStatement(;String sql="insert into worker values('" +empID+"','"+empName+"','"+empSex+"',"+empWorkyear+","+empSal+"";stmt.executeUpdate(sql;stmt.close(;con.close(;%>已删除员工信息<%String oracledriver1="oracle.jdbc.driver.OracleDriver";String oracleUrl1="jdbc:oracle:thin:@localhost:1521:ORACLE";String username1="scott";String password1="tiger";Class.forName(oracledriver1;Connection con1=DriverManager.getConnection(oracleUrl1,username1,password1; Statement stmt1=con1.createStatement(;String sql1="delete from worker where empName='韩信'";stmt1.executeUpdate(sql1;stmt1.close(;con1.close(;%>已更改员工信息<%String oracledriver2="oracle.jdbc.driver.OracleDriver";String oracleUrl2="jdbc:oracle:thin:@localhost:1521:ORACLE";String username2="scott";String password2="tiger";Class.forName(oracledriver2;Connection con2=DriverManager.getConnection(oracleUrl2,username2,password2; Statement stmt2=con2.createStatement(;String sql2="update worker set empName='李莉莉' where empName='Kababa'"; stmt2.executeUpdate(sql2;stmt2.close(;con2.close(;%>经过以上操作后,Worker表如下:<%String oracledriver3="oracle.jdbc.driver.OracleDriver";String oracleUrl3="jdbc:oracle:thin:@localhost:1521:ORACLE";String username3="scott";String password3="tiger";Class.forName(oracledriver3;Connection con3=DriverManager.getConnection(oracleUrl3,username3,password3; Statement stmt3=con3.createStatement(;String sql3="Select * from worker";ResultSet rs=stmt3.executeQuery(sql3;while(rs.next({%><%} rs.close(;stmt3.close(;con3.close(;%>编号姓名性别工龄工资<%=rs.getStrin g("empID"%> <%=rs.getString("empName"%><%=rs.getString("empSex"%><%=rs.getString("empWorkyear"%><%=rs.getString("empSal"%>。

用jsp对数据库进行增删改查

用jsp对数据库进行增删改查

⽤jsp对数据库进⾏增删改查1、转发更消耗服务器的资源,重定向则少占⼀点资源2、绝对路径:写了项⽬⽬录,然后就相当于Webcontent了,3、时间格式:yyyy-MM-dd HH:mm:ss4、在登录处理页⾯记录⼀个session,记录你这个⽤户的⽤户名和密码,放在登录处理页⾯5、处理页⾯怎么处理会⽐较好呢?6、JNDI:(1)、在tomcat⽂件夹⾥把jdbc包放进去(2)、servers--tomecat--context.xml⽂件⾥写<context>标签(3)、在basedao⾥⾯写创建连接的语句,需要导⼊⼀些包。

javax是提供的⼀个扩展包,算是对原的⼀些优化处理,现在已经有很多都是基于JAVAX的程序开发⽽不是,就像netbeans⾥的图形处理都是使⽤jabax包。

7、写if...else...语句要闭环8、要根据页⾯实际的格式来simpledateformat设置是横线还是斜杠,数据库⾥默认是斜杠的(sql包下的),页⾯⾥多是横线的(util包下的)9、在index页⾯设置cookie,作⽤是记录⽤户的账户名密码,如果cookie存在,就直接跳转到login页⾯,如果cookie不存在,就在本页⾯⾥注册、登录;在login页⾯⾥也有⼀个查询cookie的页⾯,如果有cookie,就继续操作,没有cookie就跳回到登录页⾯,防⽌别⼈直接输⼊login.jsp来访问10、判断是不是空的地⽅:每次取完cookie后,要判断⼀下cookie是不是空的每次取完emp的时候10、index.jsp写⼀个表单,数据提交到login页⾯;如果有cookie,就直接跳转到login.jsp页⾯否则,去数据库查询emp是否存在,如果不存在,跳回到⾸页当emp不为空,为这个emp设置⼀个cookie,设置停留时间,并把这个cookie,add起来,并把这个emp存起来11、login.jsp通过request来获得⽤户名、密码,如果账户名、密码为空,查看cookie是否存在,是⼀个数组,如果数组不为空,把cookie中的每⼀个元素loginUser来⽐较上⾯的是使⽤cookie来存⽤户名和密码,因为存的⽤户名密码,所以是登录成功以后填写的,12、这⾥是⽤session和application来存储,通过传进来的⽤户名和密码来访问数据库,如果不为空,把这个⽤户传进session⾥⾯⼀些统计⽤的使⽤application来存储,先从application那⾥取⼀下,(这⾥多⽤到三步运算符)取下来的东西要⾃⼰处理,然后再把东西传回到application那⾥判断是否是管理员,如果是管理员,就跳到admin.jsp页⾯,如果不是管理员,就跳到welcome.jsp页⾯13、注册的时候在doRegist.jsp页⾯进⾏emp对象的封装,这样⼦才能少传⼀点东西,和密码才能正确传输过去。

Oracle操作数据库(增删改语句)

Oracle操作数据库(增删改语句)

Oracle操作数据库(增删改语句) 对数据库的操作除了查询,还包括插⼊、更新和删除等数据操作。

后3种数据操作使⽤的 SQL 语⾔也称为数据操纵语⾔(DML)。

⼀、插⼊数据(insert 语句) 插⼊数据就是将数据记录添加到已经存在的数据表中,可以通过 insert 语句实现向数据表中⼀次插⼊⼀条记录,也可以使⽤ select ⼦句将查询结果批量插⼊数据表。

1、单条插⼊数据 语法:insert into table_name [ (column_name[,column_name2]...) ] values(express1[,express2]... )table_name:要插⼊数据的表名column_name1 和 column_name2:指定表的完全或部分列名称express1 和 express2 :表⽰要插⼊的值列表 EG:SQL > insert into dept(deptno,dname,loc) values(88,'Tony','tianjin') 注意: insert into 中指定添加数据的列,可以是数据表的全部列,也可以是部分列给指定列添加数据时,需要注意哪些列不能空;对于可以为空的列,添加数据可以不指定值;添加数据时,还应该数据添加数据和字段的类型和范围向表中所有列添加数据时,可以省略 insert into ⼦句后⾯的列表清单,使⽤这种⽅法时,必须根据表中定义列的顺序为所有的列提供数据添加数据时,还应该注意哪个字段是主键(主键的字段是不允许重复的),不能给主键字段添加重复的值  2、批量插⼊数据 insert 语句还可以⼀次向表中添加⼀组数据,可以使⽤ select 语句替换原来的 values ⼦句,语法如下:insert into table_name [ (column_name1[,column_name2...]...) ] selectSubquerytable_name:要插⼊数据的表名column_name1 和 column_name2 :表⽰指定的列名selectSubquery:任何合法的 select 语句,其所选列的个数和类型要与语句中的 column 对应。

oracle数据库增删改查练习50例-答案(精)

oracle数据库增删改查练习50例-答案(精)

oracle 数据库增删改查练习50例-答案一、建表--学生表drop table student;create table student (sno varchar2(10,sname varchar2(10,sage date,ssex varchar2(10;insert into student values('01','赵雷',to_date('1990/01/01','yyyy/mm/dd','男';insert into student values('02','钱电',to_date('1990/12/21','yyyy/mm/dd','男';insert into student values('03','孙风',to_date('1990/05/20','yyyy/mm/dd','男';insert into student values('04','李云',to_date('1990/08/06','yyyy/mm/dd','男';insert into student values('05','周梅',to_date('1991/12/01','yyyy/mm/dd','女';insert into student values('06','吴兰',to_date('1992/03/01','yyyy/mm/dd','女';insert into student values('07','郑竹',to_date('1989/07/01','yyyy/mm/dd','女';insert into student values('08','王菊',to_date('1990/01/20','yyyy/mm/dd','女';--课程表drop table course;create table course (cno varchar2(10,cname varchar2(10,tno varchar2(10;insert into course values ('01','语文','02';insert into course values ('02','数学','01';insert into course values ('03','英语','03';--教师表drop table teacher;create table teacher (tno varchar2(10,tnamevarchar2(10;insert into teacher values('01','张三';insert into teacher values('02','李四';insert into teacher values('03','王五';--成绩表drop table sc;create table sc (sno varchar2(10,cno varchar2(10,score number(18,1;insert into sc values('01','01',80.0;insert into sc values('01','02',90.0;insert into sc values('01','03',99.0;insert into sc values('02','01',70.0;insert into scvalues('02','02',60.0;insert into sc values('02','03',80.0;insert into scvalues('03','01',80.0;insert into sc values('03','02',80.0;insert into scvalues('03','03',80.0;insert into sc values('04','01',50.0;insert into scvalues('04','02',30.0;insert into sc values('04','03',20.0;insert into scvalues('05','01',76.0;insert into sc values('05','02',87.0;insert into scvalues('06','01',31.0;insert into sc values('06','03',34.0;insert into scvalues('07','02',89.0;insert into sc values('07','03',98.0;commit;二、查询1.1、查询同时存在"01"课程和"02"课程的情况select s.sno, s.sname, s.sage, s.ssex, sc1.score, sc2.score from student s, sc sc1, sc sc2 where s.sno = sc1.sno and s.sno = sc2.sno and o = '01' and o = '02';1.2、查询必须存在"01"课程,"02"课程可以没有的情况select t.*, s.score_01, s.score_02 from student t inner join (select a.sno, a.score score_01, b.score score_02 from sc a left join (select * from sc where cno = '02' b on (a.sno = b.sno where o = '01' s on (t.sno = s.sno;2.1、查询同时'01'课程比'02'课程分数低的数据select s.sno, s.sname, s.sage, s.ssex, sc1.score, sc2.score from student s, sc sc1, sc sc2 where s.sno = sc1.sno and s.sno = sc2.sno and o = '01' and o = '02' and sc1.score < sc2.score;2.2、查询同时'01'课程比'02'课程分数低或'01'缺考的数据select s.sno, s.sname, s.sage, s.ssex, t.score_01, t.score_02 from student s, (select b.sno, a.score score_01,b.score score_02 from (select * from sc where cno = '01' a, (select * from sc where cno = '02' b where a.sno(+ = b.sno t where s.sno = t.sno and (t.score_01 < t.score_02 ort.score_01 is null;3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩select s.sno, s.sname, t.avg_score avg_score from student s, (select sno, round(avg(score, 2 avg_score from sc group by sno having avg(score >= 60 order by sno t where s.sno = t.sno;4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩4.1、有考试成绩,且小于60分select s.sno, s.sname, t.avg_score avg_score from student s,(select sno, round(avg(score, 2 avg_score from sc group by sno having avg(score < 60 order by sno t where s.sno = t.sno;4.2、包括没有考试成绩的数据select g.* from (select s.sno, s.sname,nvl(t.avg_score, 0 avg_score from student s, (select sno, round(avg(score, 2 avg_score from sc group by sno order by sno t where s.sno = t.sno(+ g where g.avg_score < 60;5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩5.1、查询所有成绩的(不含缺考的)。

Oracle数据库实例的创建、删除与修改

Oracle数据库实例的创建、删除与修改

Oracle数据库实例的创建、删除、修改以SUSE10SP2、Oracle10gR2为例。

本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概念,包括一些内存区域以及若干进程,数据库实例是对数据库进行操作的执行者。

(20090714修改)安装完Oracle数据库系统的安装后,需要创建数据库实例才能真正开始使用Oracle数据库服务。

总结起来,Oracle有三种创建数据库实例的方法。

第一种,最常用也最简单,那就是通过DBCA(Database Configuration Assistant),这是Oralce提供的一个图形界面的数据库实例配置工具,通过它可以创建、删除和修改数据库实例,它的使用也比较简单、易懂,交互式的图形界面操作,非常准确有效的提示与配置,是一个比较方便的创建数据库实例的方式。

按照DBCA给出的提示,很容易创建一个新数据库实例。

在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。

这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile文件或者命令行参数创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。

当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。

DBCA是一个非常强大的工具,上面看到的只是DBCA最常用的创建一个数据库实例的使用,其实DBCA 还提供另外两种使用方法,分别是responseFile和命令行带参调用。

Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类

Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类

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查,按条件查。

oracle 视图的增删改查操作举例

oracle 视图的增删改查操作举例

oracle 视图的增删改查操作举例oracle视图创建和操作创建简单复杂的视图创建基表不存在的视图视图增删改查看视图的结构关键字: oracle视图创建操作简单复杂基表不存在增删改插入修改删除查看结构视图的概念视图是基于一张表或多张表或另外一个视图的逻辑表。

视图不同于表视图本身不包含任何数据。

表是实际独立存在的实体是用于存储数据的基本结构。

而视图只是一种定义对应一个查询语句。

视图的数据都来自于某些表这些表被称为基表。

通过视图来查看表就像是从不同的角度来观察一个或多个表。

视图有如下一些优点可以提高数据访问的安全性通过视图往往只可以访问数据库中表的特定部分限制了用户访问表的全部行和列。

简化了对数据的查询隐藏了查询的复杂性。

视图的数据来自一个复杂的查询用户对视图的检索却很简单。

一个视图可以检索多张表的数据因此用户通过访问一个视图可完成对多个表的访问。

视图是相同数据的不同表示通过为不同的用户创建同一个表的不同视图使用户可分别访问同一个表的不同部分。

视图可以在表能够使用的任何地方使用但在对视图的操作上同表相比有些限制特别是插入和修改操作。

对视图的操作将传递到基表所以在表上定义的约束条件和触发器在视图上将同样起作用。

视图的创建创建视图需要CREAE VIEW系统权限视图的创建语法如下CREATE OR REPLACE FORCENOFORCE VIEW 视图名别名1别名 2... AS 子查询WITH CHECK OPTION CONSTRAINT 约束名WITH READ ONL Y 其中OR REPLACE 表示替代已经存在的视图。

FORCE表示不管基表是否存在创建视图。

NOFORCE表示只有基表存在时才创建视图是默认值。

别名是为子查询中选中的列新定义的名字替代查询表中原有的列名。

子查询是一个用于定义视图的SELECT 查询语句可以包含连接、分组及子查询。

WITH CHECK OPTION表示进行视图插入或修改时必须满足子查询的约束条件。

oracle数据库增删改查基本语句举例

oracle数据库增删改查基本语句举例

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. 多表查询在实际应用中,常常需要从多个表中联合查询数据。

Oracle存储过程的增、删、改、查的简单举例(精)

Oracle存储过程的增、删、改、查的简单举例(精)

Oracle存储过程的增、删、改、查: Packages: create or replace packageemp_pags is type emp_cour is ref cursor;--定义游标类型的变量emp_cour-- --添加员工-- function saveEmp(e_ename emp.ename%TYPE, e_job emp.job%TYPE, e_sal emp.sal%TYPE, e_deptno emp.deptno%TYPE return integer;--定义返回类型-- --修改员工信息-- function updateEmp(e_empno emp.empno%TYPE, e_enameemp.ename%TYPE, e_job emp.job%TYPE, e_sal emp.sal%TYPE, e_deptnoemp.deptno%TYPE return integer;--定义返回类型-- --删除员工-- function deleteEmp(e_empno emp.empno%TYPE return integer ; --查询全部-- procedure queryAll(emps out emp_cour;--定义一个输出类型的参数emps-- --查询单条-- procedure queryById(e_empno in number,emps out emp_cour;--定义-- --两表查询-- procedure queryJoin(empJoin out emp_cour; end emp_pags; Package bodies: create or replace package body emp_pags is --添加员工-- function saveEmp(e_enameemp.ename%TYPE, e_job emp.job%TYPE, e_sal emp.sal%TYPE, e_deptnoemp.deptno%TYPE return integer is begin insert into emp (empno,ename,job,sal,deptno values (emp_sequence.nextval,e_ename,e_job,e_sal,e_deptno; commit; return 1; exception when others then return 0; end saveEmp; --修改员工信息-- function updateEmp(e_empno emp.empno%TYPE, e_ename emp.ename%TYPE, e_jobemp.job%TYPE, e_sal emp.sal%TYPE, e_deptno emp.deptno%TYPE return integer is begin update emp set ename = e_ename, job = e_job, sal = e_sal, deptno = e_deptno where empno = e_empno; commit; return 1; exception when others then return 0; end updateEmp; --删除员工-- function deleteEmp(e_empno emp.empno%TYPE return integer is begin delete from emp where empno = e_empno; commit; return 1;exception when others then return 0; end deleteEmp; --查询全部-- procedure queryAll(emps out emp_cour is begin open emps for --打开游标-- selectempno,ename,job,sal,deptno from emp; end queryAll; --查询单条-- 定义两个参数,第一个输入,第二个输出 procedure queryById(e_empno in number,emps out emp_cour is begin open emps for--打开游标-- select empno,ename,job,sal,deptno from emp where empno = e_empno; end queryById; --量表查询-- procedure queryJoin(empJoin outemp_couris begin open empJoin for select e.empno,e.ename,e.job,e.sal,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno; end queryJoin; end emp_pags;。

简单框架总结(含数据库ORACLE数据库增删改查)

简单框架总结(含数据库ORACLE数据库增删改查)

简单框架总结(含数据库ORACLE数据库增删改查)首先是结构。

JSP到control到service到dao。

其中service里面存在一个借口对接。

dao里面也存在一个接口进行数据的对接。

在里面就要使用Spring的注入简单就是在control里面@resource一个函数,在service里面调用(interface)和(implements)一个对应一个。

具体用个列子:jsp里面发出一个请求“xxx.jspx”在control里面@RequestMapping(value = "/xxx.jspx")拦截这个请求。

随后写方法as = userInfoService.doChaxun(username);PS:里面的userInfoService是service里面的一个类。

而doChaxun对应的是一个自定义函数,username是jsp传过来的参数@Resourceprivate IUserInfoService userInfoService;注入,随后在后面的service里面调用。

在IUserInfoService里面写接口public UserInfo doChaxun(String username);在userInfoServiceimple里面调出刚刚注入的@Service("userInfoService")随后链接接口public class UserInfoServiceImpl implements IUserInfoService {然后写方法,因为大多是具体的方法都在control里面写了。

所以service作为control和DAO的过渡。

当然同样在链接接口的这个userInfoServiceimple里面一样要注入@Resourceprivate IUserInfoDao userInfoDao;随后跳入DAO层,public interface IUserInfoDao 创造接口在userInfoDaoimple对接接口@Repository("userInfoDao") 然后开始写最终最底层的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArrayList list = ConnDb.getList1("select sid,sname,sage from test where sid="+sid);//查询要修改学生的信息,并以列表返回
stu s = (stu) list.get(0);//将列表内容换成学生类
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01 Transitional//EN">
</p>
<p>
&nbsp;
<inputtype="submit"value="提交"name="button1">
</p>
</form>
</body>
</html>
8、建立updateInfo.jsp
<%@pagelanguage="java"import="db.ConnDb"pageEncoding="gbk"%>
onclick="return confirm('确定删除?');">删除</a>
</td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
6、建立add.jsp
<%@pagelanguage="java"pageEncoding="gbk"%>
<%%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01 Transitional//EN">
con=null;
}
}
publicstaticvoidupdate(String sql)throwsSQLException {
//数据库更新
statrconn();
stmt=con.createStatement();
stmt.executeUpdate(sql);
endconn();
}
publicstaticArrayList getList1(String sql)throwsSQLException {
publicstaticvoidstatrconn() {//连接数据库方法
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
//创建连接数据库中间件
try{
con= DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:YUJIAN","scott","root");
//数据库查询
ArrayList list =newArrayList();
statrconn();
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
stu st =newstu();
st.setSid(rs.getString("sid"));
String sid =newString(request.getParameter("sid").getBytes("ISO-8859-1"));
String sql ="update test set sname='"+name+"',sage='"+age+"' where sid="+sid;
<html>
<head>
<title>MyJSP'list.jsp' starting page</title>
</head>
<body>
<inputtype="button"name="bottom"value="添加新学生"
onclick="javascript:window.location.href='add.jsp'">
<br>
<br>
<tableborder="1">
<tr>
<td>
编号
</td>
<td>
姓名
</td>
<td>
年龄
</td>
<td>
操作
</td>
</tr>
<%
{
for(Iterator it = list.iterator(); it.hasNext();) {
stu s = (stu) it.next();
String age =newString(request.getParameter("sage").getBytes("iso-8859-1"));
ConnDb.update("insert into test (sid,sname,sage) values ('"+sid+"','"+name+"','"+age+"')");
response.sendRedirect("list.jsp");
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01 Transitional//EN">
<html>
<head>
<title>MyJSP'addinfo.jsp' starting page</title>
}catch(SQLException e) {
//TODOAuto-generated catch block
e.printStackTrace();
}
}catch(ClassNotFoundException e) {
//TODOAuto-generated catch block
e.printStackTrace();
JSP对Oracle数据库进行增删改查实例
时间:2012-3-20 20:38:22作者:雨剑电脑来源:原创查看:224评论:0
JSP对Oracle数据库进行增删改查实例
1、建立一个web工程Oracle,引入Oracle驱动包classes12.jar。
2、建立数据库
createtabletest(
publicvoidsetName(String name) {
= name;
}
publicString getAge() {
returnage;
}
publicvoidsetAge(String age) {
this.age= age;
}
publicstaticvoidmain(String[] args) {
<%
String name =newString(request.getParameter("sname").getBytes("ISO-8859-1"));//接收信息
String age =newString(request.getParameter("sage").getBytes("ISO-8859-1"));
}
}
publicstaticvoidendconn()throwsSQLException {//关闭连接
if(rs!=null) {
rs.close();
rs=null;
}
if(stmt!=null) {
stmt.close();
stmt=null;
}
if(con!=null) {
con.close();
<p>
姓名:
<inputtype="text"name="sname"value="<%=s.getName()%>">
修改学生信息
</p>
<p>
&nbsp;年龄:
<inputtype="text"name="sage"value="<%=s.getAge()%>">
<inputtype="hidden"name="sid"value="<%=sid%>">
<inputtype="text"name="sname">
<br>
<br>
相关文档
最新文档