**为了代码的整洁,所以用javaBean封装,以把java和jsp分离。**
以下是我封装的类
封装类:
DBHelper类:链接数据库,因为Oracle我没有添加触发器,所以在类中写了getNextId函数,使它自增
代码:
package com.zking.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBHelper {
private static String user="scott";
private static String uwpd="tiger";
private static String cname="oracle.jdbc.driver.OracleDriver";
private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
static {
try {
Class.forName(cname);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getCon() {
Connection con=null;
try {
con=DriverManager.getConnection(url, user, uwpd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static void closeDB(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(con!=null) {
con.close();
}
if(ps!=null) {
ps.close();
}
if(rs!=null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static int getNextId(String tableName,String col) {
int id=1;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select max("+col+") from "+tableName);
rs=ps.executeQuery();
if(rs.next()) {
id=rs.getInt(1)+1;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return id;
}
}
News类: 新闻实体类
package com.zking.entity;
import java.sql.Date;
public class News {
private int nid;
private int tid;
private String ntitle;
private String nzz;
private String ncontent;
private Date ndate;
private int nlook;
private String nzy;
private String ntp;
public News(int tid, String ntitle, String nzz, String ncontent, String nzy) {
super();
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.ncontent = ncontent;
this.nzy = nzy;
}
public News(int nid, int tid, String ntitle, String nzz, String ncontent, int nlook, String nzy) {
super();
this.nid = nid;
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.ncontent = ncontent;
this.nlook = nlook;
this.nzy = nzy;
}
public News() {
super();
}
public News(int tid, String ntitle, String nzz, String ncontent, Date ndate, int nlook, String nzy, String ntp) {
super();
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.ncontent = ncontent;
this.ndate = ndate;
this.nlook = nlook;
this.nzy = nzy;
this.ntp = ntp;
}
public News(int nid, int tid, String ntitle, String nzz, String ncontent, Date ndate, int nlook, String nzy,
String ntp) {
super();
this.nid = nid;
this.tid = tid;
this.ntitle = ntitle;
this.nzz = nzz;
this.ncontent = ncontent;
this.ndate = ndate;
this.nlook = nlook;
this.nzy = nzy;
this.ntp = ntp;
}
public int getNid() {
return nid;
}
public void setNid(int nid) {
this.nid = nid;
}
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getNtitle() {
return ntitle;
}
public void setNtitle(String ntitle) {
this.ntitle = ntitle;
}
public String getNzz() {
return nzz;
}
public void setNzz(String nzz) {
this.nzz = nzz;
}
public String getNcontent() {
return ncontent;
}
public void setNcontent(String ncontent) {
this.ncontent = ncontent;
}
public Date getNdate() {
return ndate;
}
public void setNdate(Date ndate) {
this.ndate = ndate;
}
public int getNlook() {
return nlook;
}
public void setNlook(int nlook) {
this.nlook = nlook;
}
public String getNzy() {
return nzy;
}
public void setNzy(String nzy) {
this.nzy = nzy;
}
public String getNtp() {
return ntp;
}
public void setNtp(String ntp) {
this.ntp = ntp;
}
}
NewsDao类:新闻增删改查等的方法
package com.zking.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.zking.entity.News;
import com.zking.entity.Ptextt;
import com.zking.util.DBHelper;
public class NewsDao {
public int addNews(News newst) {
int i=0;
Connection con=null;
PreparedStatement ps=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("insert into newst(nid,tid,ntitle,nzz,ncontent,ndate,nlook,nzy)values(?,?,?,?,?,sysdate,0,?)");
ps.setInt(1, DBHelper.getNextId("newst", "nid"));
ps.setInt(2, newst.getTid());
ps.setString(3, newst.getNtitle());
ps.setString(4, newst.getNzz());
ps.setString(5, newst.getNcontent());
ps.setString(6, newst.getNzy());
i=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
public int delNews(int n) {
int i=0;
Connection con=null;
PreparedStatement ps=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("delete newst where nid="+n);
i=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
public int updaNewst(int nid,News newst) {
int i=0;
Connection con=null;
PreparedStatement ps=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("update newst set tid=?,ntitle=?,nzz=?,ncontent=?,nzy=? where nid="+nid);
ps.setInt(1, newst.getTid());
ps.setString(2, newst.getNtitle());
ps.setString(3, newst.getNzz());
ps.setString(4, newst.getNcontent());
ps.setString(5, newst.getNzy());
i=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, null);
}
return i;
}
public ArrayList<News> pageNews(int pageIndex,int pageSize){
ArrayList<News> nlist=new ArrayList<>();
int start=(pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from newst a)b where mid>=? and mid<=?";
ps=con.prepareStatement(sql);
ps.setInt(1, start);
ps.setInt(2, end);
rs=ps.executeQuery();
while(rs.next()) {
News newst=new News(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getDate(6), rs.getInt(7), rs.getString(8), rs.getString(9));
nlist.add(newst);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
public ArrayList<News> pageNewsByTid(int pageIndex,int pageSize,int tid){
ArrayList<News> nlist=new ArrayList<>();
int start=(pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from newst a where tid="+tid+") b where mid>=? and mid<=?";
ps=con.prepareStatement(sql);
ps.setInt(1, start);
ps.setInt(2, end);
rs=ps.executeQuery();
while(rs.next()) {
News newst=new News(rs.getInt(1), rs.getString(3), rs.getString(4), rs.getString(5), rs.getDate(6), rs.getInt(7), rs.getString(8), rs.getString(9));
nlist.add(newst);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
public int getMaxPage(int pageSize,String str) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int maxPage = 0;
int count = 0;
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select count(*) from newst where ntitle like '%"+str+"%'");
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
maxPage = count/pageSize;
if(count%pageSize!=0) {
maxPage++;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return maxPage;
}
public int getMaxPageByTid(int pageSize,int tid) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int maxPage = 0;
int count = 0;
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select count(*) from newst where tid like '%"+tid+"%'");
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
maxPage = count/pageSize;
if(count%pageSize!=0) {
maxPage++;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return maxPage;
}
//分页的模糊查询
public ArrayList<News> pagelikeNews(int pageIndex,int pageSize,String str){
ArrayList<News> nlist=new ArrayList<>();
int start=(pageIndex-1)*pageSize+1;
int end = pageIndex*pageSize;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
String sql = "select * from(select a.*,rownum mid from newst a where ntitle like '%"+str+"%')b where mid>=? and mid<=?";
ps=con.prepareStatement(sql);
ps.setInt(1, start);
ps.setInt(2, end);
rs=ps.executeQuery();
while(rs.next()) {
News newst=new News(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getDate(6), rs.getInt(7), rs.getString(8), rs.getString(9));
nlist.add(newst);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return nlist;
}
public News p(int n) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
News pp=null;
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from Newst where nid="+n);
rs = ps.executeQuery();
if(rs.next()) {
pp=new News(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4), rs.getString(5) , rs.getDate(6), rs.getInt(7), rs.getString(8), rs.getString(9));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.closeDB(con, ps, rs);
}
return pp;
}
public static void main(String[] args) {
System.out.println(new NewsDao().delNews(50));
}
}
联合一起来使用
<%@page import="java.util.Date"%>
<%@page import="com.zking.entity.News"%>
<%@page import="com.zking.dao.NewsDao"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
int tid=Integer.valueOf(request.getParameter("ntid"));
String ntile=request.getParameter("ntitle");
String nzz=request.getParameter("nauthor");
String nzy=request.getParameter("nsummary");
String ncontent=request.getParameter("ncontent");
int i=new NewsDao().addNews(new News(1,tid,ntile,nzz,ncontent,0,nzy));
if(i>0){
out.print("<script>alert('成功成功!!');location.href='../admin.jsp'</script>");
}else{
out.print("<script>alert('添加失败!!');location.href='add_new.jsp'</script>");
}
%>
其它类似,所以我只举一例
总结:
** javaBean封装后,一些冗长重复的代码可以直接拿来调用,省时省力,代码整洁清晰。**
标签:
java
本文转载自: https://blog.csdn.net/m0_60837612/article/details/124087413
版权归原作者 I小菜鸡 所有, 如有侵权,请联系我们删除。
版权归原作者 I小菜鸡 所有, 如有侵权,请联系我们删除。