oracle标识列实现
1、创建序列#
create sequence 序列名
increment by 1
start with 1
maxvalue 999999999;
2、创建触发器#
create or replace trigger 触发器名
before
insert on 表名
for each row
declare
-- local variables here
begin
SELECT 序列名.Nextval INTO :NEW.自增列 FROM DUAL;
end 触发器名;
iframe的实现跳转 通过name属性改变跳转地址
主页
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新闻发布系统-后台主页</title>
<link rel="stylesheet" type="text/css" href="css/admin.css" />
<style>
#myLeft ul li a{
display: inline-block;
width: 178px;
border: 1px solid red;
text-align: center;
height: 35px;
line-height: 30px;
cursor: pointer;
background: orange;
font-size: 16px;
font-weight: bold;
}
#myLeft ul li a:hover{
background: pink;
color:green;
}
</style>
</head>
<body>
<div id="header">
<div id="welcome">欢迎使用新闻管理系统!</div>
<div id="nav">
<div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div>
<div id="a_b01"><img src="images/a_b01.gif" alt="" /></div>
</div>
</div>
<div id="admin_bar">
<div id="status">管理员:<%=request.getParameter("username") %>      <a href="#">login out</a></div>
<div id="channel"> </div>
</div>
<div id = "myMain" style = "width: 947px;height:300px;background: pink;margin:0 auto;">
<div id = "myLeft" style = "width: 180px;height:300px;background: yellow;float:left">
<ul style = "list-style: none;">
<li><a href = "systemIndex.jsp" target = "myRight">系统首页</a></li>
<li><a href = "systemEdit.jsp" target = "myRight">系统用户维护</a></li>
<li><a>注册用户管理</a></li>
<li><a>新闻发布</a></li>
<li><a>新闻分类管理</a></li>
<li><a>新闻信息管理</a></li>
<li><a>评论管理</a></li>
<li><a>公告管理</a></li>
</ul>
</div>
<div id = "myRight"style = "width: 760px;height:300px;background: green;float:right;">
<!-- 锚点 -->
<iframe name = "myRight" src ="systemIndex.jsp" width="100%" height = "100%"></iframe>
</div>
</div>
<div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span>
<a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span>
<a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div>
<div id="footer">
<p class="">24小时客户服务热线:010-68988888      <a href="#">常见问题解答</a>     
新闻热线:010-627488888<br />
文明办网文明上网举报电话:010-627488888      举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p>
<p class="copyright">Copyright © 1999-2009 News China gov, All Right Reserver<br />
新闻中国 版权所有</p>
</div>
</body>
</html>
跳转的两个界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>这是systemEdit.jsp页面</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎系统用户进入后台主页面</h1>
<h5>当前系统时间:2022年12月12日 12:12:12</h5>
</body>
</html>
jsp页面实现分页功能
分页实体类
package com.baidu.entity;
/*
* 分页实体类
*/
import java.util.List;
public class Paginate<T> {
//总条数
private int count;
//当前页
private int pageindx;
//每一页数据条数
private int index;
// 1 and 条数
private int start;
//当前的页码
private int end;
//总页数
private int yeshu;
//获取的数据集合
private List<T> list;
public Paginate() {
// TODO Auto-generated constructor stub
}
public Paginate(int count, int pageindx, int index) {
super();
this.count = count;
this.pageindx = pageindx;
this.index = index;
if(count%index==0) {
this.yeshu=count/index;
}else {
this.yeshu=(count/index)+1;
}
this.start=(pageindx-1)*index+1;
this.end=index*pageindx;
//this.list = list;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getPageindx() {
return pageindx;
}
public void setPageindx(int pageindx) {
this.pageindx = pageindx;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getYeshu() {
return yeshu;
}
public void setYeshu(int yeshu) {
this.yeshu = yeshu;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
分页dao方法
/**
* 查询所有的方法
*/
public List<NewsXwFb> XwAll() {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<NewsXwFb> list=new ArrayList<>();
try{
conn=DBHelper.getConn();
String sql="select * from tb_news";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
list.add(new NewsXwFb(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9)));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return list;
}
/**
* 分页查询
*/
public List<NewsXwFb> XwAll(Paginate<NewsXwFb> pg) {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<NewsXwFb> list=new ArrayList<>();
try{
conn=DBHelper.getConn();
String sql="select b.* from(select a.*,rownum as rid from tb_news a)b where b.rid between "+pg.getStart()+" and "+pg.getEnd();
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
list.add(new NewsXwFb(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9)));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return list;
}
/**
*
* 简化分页参数 查询
* @pag 当前页面 第几页
* @indx 每一页的数据
*/
public List<NewsXwFb> XwAll(int pag, int indx) {
return XwAll(new Paginate<>(XwAll().size(), pag, indx));
}
分页实现主页
<%@page import="com.baidu.entity.Paginate"%>
<%@page import="com.baidu.dao.XwFbDao"%>
<%@page import="com.baidu.entity.NewsXwFb"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻发布系统-后台主页</title>
<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
<link rel="stylesheet" type="text/css" href="css/admin.css" />
</head>
<body>
<div id="header">
<div id="welcome">欢迎使用新闻管理系统!</div>
<div id="nav">
<div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div>
<div id="a_b01"><img src="images/a_b01.gif" alt="" /></div>
</div>
</div>
<div id="admin_bar">
<div id="status">管理员: 登录      <a href="#">login out</a></div>
<div id="channel"> </div>
</div>
<div id="main">
<div id="opt_list">
<ul>
<li><a href="admin.jsp">管 理 首 页</a></li>
<li><a href="admin_addNews.jsp">新 闻 发 布</a></li>
<li><a href="admin_themeMaintain.jsp">主 题 维 护</a></li>
<li><a href="admin_themeMaintain.jsp">评 论 管 理</a></li>
<li><a style="color: red;" href="#">系统账号管理</a></li>
<li><a style="color: red;" href="#">注册用户管理</a></li>
</ul>
</div>
<div id="opt_area">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<script language="javascript">
function clickdel(sid) {
if(confirm("你确定要删除这篇文章吗!")){
var i=parseInt($("#yeshu").html());
location.href="dodeletadmin.jsp?sid="+sid+"&ys="+i;
}
}
</script>
<ul class="classlist" id="sp">
<%
//计算总页数
int p=1;
String y=request.getParameter("ys");
if(y!=null){
p=Integer.valueOf(y);
if(p<new XwFbDao().XwAll().size()){
}else{
p=1;
}
out.println("<script>$(function () {$('#yeshu').html("+p+");})</script>");
}
Paginate<NewsXwFb> pag=new Paginate<NewsXwFb>(new XwFbDao().XwAll().size(),p,5);
List<NewsXwFb> list=new XwFbDao().XwAll(pag);
int h=0;
for(NewsXwFb xw:list){
%>
<li> <a href="admin_newsDetail.jsp?sidall=<%=xw.getNid()%>" > <%=xw.getNtitle() %></a> <span> 作者:
<%=xw.getNauthor() %>
     <a href='admin_editNews.jsp?updsid=<%=xw.getNid()%>'>修改</a>      <a href='#' onclick="clickdel('<%=xw.getNid()%>')">删除</a>
</span> </li>
<%
}
%>
<li class='space'></li>
<p align="right"> 当前页数:[<label id="yeshu">1</label>/<label><%=pag.getYeshu() %></label>] <a href="javascript:addye('+')">上一页</a> <a href="javascript:addye('-')">下一页</a> <a href="javascript:addye('=')">末页</a> </p>
</ul>
<script type="text/javascript">
function addye(fh) {
var i=parseInt($("#yeshu").html());
var z=parseInt($("#yeshu").next().html());
if(fh=='-'){
if(i<z){
i++;
location.href="admin.jsp?ys="+i;
}else{
alert("已经没有下一页了")
}
}else if(fh=="+"){
if(i>1){
i--;
location.href="admin.jsp?ys="+i;
}else{
alert("已经没有上一页了")
}
}else{
location.href="admin.jsp?ys="+z;
}
}
</script>
</div>
</div>
<div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span>
<a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span>
<a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div>
<div id="footer">
<p class="">24小时客户服务热线:010-68988888      <a href="#">常见问题解答</a>     
新闻热线:010-627488888<br />
文明办网文明上网举报电话:010-627488888      举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p>
<p class="copyright">Copyright © 1999-2009 News China gov, All Right Reserver<br />
新闻中国 版权所有</p>
</div>
<%
String i=request.getParameter("i");
String user=request.getParameter("user");
if(i!=null){
out.print("<script>$(function() {alert('欢迎用户"+user+"回来');location.href='admin.jsp'})</script>");
}
%>
</body>
</html>
曾删改到方法封存
package com.baidu.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.baidu.entity.NewsXwFb;
import com.baidu.entity.Paginate;
import com.baidu.utlis.DBHelper;
/*
* 新闻发布dao方法
*/
public class XwFbDao {
/*
* 新增新闻的方法
*/
public int addXw(NewsXwFb xw) {
int n=0;
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
conn=DBHelper.getConn();
String sql="insert into tb_news values(?,?,?,?,?,?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss'),?)";
ps=conn.prepareStatement(sql);
ps.setInt(1, xw.getNid());
ps.setInt(2, xw.getNtid());
ps.setString(3, xw.getNtitle());
ps.setString(4, xw.getNauthor());
ps.setString(5, xw.getNsummary());
ps.setString(6, xw.getNcontent());
ps.setString(7, xw.getNimage());
ps.setString(8, xw.getNdate());
ps.setInt(9, xw.getNcount());
n=ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return n;
}
/**
* 查询所有的方法
*/
public List<NewsXwFb> XwAll() {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<NewsXwFb> list=new ArrayList<>();
try{
conn=DBHelper.getConn();
String sql="select * from tb_news";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
list.add(new NewsXwFb(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9)));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return list;
}
/**
* 分页查询
*/
public List<NewsXwFb> XwAll(Paginate<NewsXwFb> pg) {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<NewsXwFb> list=new ArrayList<>();
try{
conn=DBHelper.getConn();
String sql="select b.* from(select a.*,rownum as rid from tb_news a)b where b.rid between "+pg.getStart()+" and "+pg.getEnd();
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
list.add(new NewsXwFb(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9)));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return list;
}
/**
*
* 简化分页参数 查询
* @pag 当前页面 第几页
* @indx 每一页的数据
*/
public List<NewsXwFb> XwAll(int pag, int indx) {
return XwAll(new Paginate<>(XwAll().size(), pag, indx));
}
/**
* 删除新闻的方法
* @param args
*/
public int deleteId(int sid) {
int n=0;
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
conn=DBHelper.getConn();
String sql="delete from tb_news where nid="+sid;
ps=conn.prepareStatement(sql);
n=ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return n;
}
/**
* 查询单个的方法
* @param args
*/
public NewsXwFb nidAll(int sid) {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
NewsXwFb nxw=null;
try{
conn=DBHelper.getConn();
String sql="select * from tb_news where nid="+sid;
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()) {
nxw=new NewsXwFb(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getInt(9));
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return nxw;
}
/*
* 修改新闻的dao方法
*/
public int updateXw(NewsXwFb xw,int sid) {
int n=0;
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
conn=DBHelper.getConn();
//String sql="insert into tb_news values(?,?,?,?,?,?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss'),?)";
String sql="update tb_news set ntid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,nimage=?,ndate=to_date(?,'yyyy-mm-dd hh24:mi:ss'),ncount=? where nid=?";
ps=conn.prepareStatement(sql);
ps.setInt(1, xw.getNtid());
ps.setString(2, xw.getNtitle());
ps.setString(3, xw.getNauthor());
ps.setString(4, xw.getNsummary());
ps.setString(5, xw.getNcontent());
ps.setString(6, xw.getNimage());
ps.setString(7, xw.getNdate());
ps.setInt(8, xw.getNcount());
ps.setInt(9, sid);
n=ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBHelper.myClose(conn, ps, rs);
}
return n;
}
public static void main(String[] args) {
System.out.println(new XwFbDao().XwAll(new Paginate<>(new XwFbDao().XwAll().size(), 1, 2)).size());
System.out.println(new XwFbDao().XwAll().size());
System.out.println(new XwFbDao().XwAll(1, 2));
}
}