Jsp新闻小项目 封装Java代码

本文介绍了一种JSP项目中常见的代码封装方法,从数据访问层(DAL)的角度,详细阐述了如何将JSP中的Java代码封装为独立的DAO类。通过实例展示了如何将login和dologin页面的登陆逻辑进行封装,并强调了封装后的代码在维护和使用上的优势。此外,还讨论了主题分页查询的常见误区,包括根据ID查询和全部查询的差异化处理,以及在JSP页面中正确使用封装后的对象。
摘要由CSDN通过智能技术生成

众所周知,一般的项目都会有三层架构(UI,BLL,DAL),而之前写代码时都是混写,以后会慢慢分开处理(为什么呢:这样减少代码量,更便于维护数据,更直观等)。

今天在这儿封装的Java代码,属于DAL(数据访问层),怎么用呢让我们一起去看看:

第一步、找到需要封装的代码:

Java代码是很明显的,就是之前提到的七步走代码


第二步、分装代码:

jsp文件中只用到了dao包中的代码;但当封装出来时还需要用到util包(DBHelper帮助类)entity包(实体类)。并且实体类与dao类一一对应(在以前的学习中应该有了解到,这里简介的概括一下,以例子说明)

例子(这里以用户user为例,用于login页面登陆,dologin页面是内部代码):

DBHelper帮助类(通用的):

public class DBHelper {
	private static String cname="oracle.jdbc.driver.OracleDriver";
	private static String user="scott";
	private static String upwd="123";
	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,upwd);
		} 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=0;
	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;
    }

实体类:

public class User {
	private int uidd;
	private String uname;
	private String upwd;
	private String uinfo;
	
	@Override
	public String toString() {
		return "User [uidd=" + uidd + ", uname=" + uname + ", upwd=" + upwd + ", uinfo=" + uinfo + "]";
	}
	public User() {
		super();
	}
	public User(String uname, String upwd, String uinfo) {
		super();
		this.uname = uname;
		this.upwd = upwd;
		this.uinfo = uinfo;
	}
	public User(int uidd, String uname, String upwd, String uinfo) {
		super();
		this.uidd = uidd;
		this.uname = uname;
		this.upwd = upwd;
		this.uinfo = uinfo;
	}
	public int getUidd() {
		return uidd;
	}
	public void setUidd(int uidd) {
		this.uidd = uidd;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getUpwd() {
		return upwd;
	}
	public void setUpwd(S
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值