上一节讲的tree前端,下面咱就讲讲tree的后台,既然是后台工作,那就少不了三层架构,在升级一下就是mvc(模型层----视图层----控制机器)版项目,前台和后台联动实现功能效果。
首先就是搭好底层代码也就是三层架构
数据库辅助类
《代码演示》
private static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String CNAME ="oracle.jdbc.driver.OracleDriver";
/**
* 加载驱动
*/
static {
try {
Class.forName(CNAME);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建链接
* @return 链接
*/
public static Connection getCon() {
Connection con = null;
try {
con = DriverManager.getConnection(URL, "scott", "tiger");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭资源
* @param con
* @param ps
* @param rs
*/
public static void myclos(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
if(ps!=null) {
ps.close();
}
if(con!=null&&!con.isClosed()) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
实体类
数据库访问层
图片为一个父接口
以下代码需继承以及实现该接口的方法
private Connection con = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
@Override
public List<Module> getAllByPid(int pid) {
List<Module> ls = new ArrayList<Module>();
try {
//获得连接
con = DBHelper.getCon();
//定义sql语句
String sql = "select * from tb_module where pid=? order by sort";
//获得执行对象
ps = con.prepareStatement(sql);
//给站位符赋值
ps.setInt(1, pid);
//获得结果集
rs = ps.executeQuery();
//循环遍历
while(rs.next()) {
//实例化
Module m = new Module();
//给对象赋值
m.setId(rs.getInt(1));
m.setPid(rs.getInt(2));
m.setText(rs.getString(3));
m.setIconCls(rs.getString(4));
m.setUrl(rs.getString(5));
m.setSort(rs.getInt(6));
//加到集合里
ls.add(m);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
DBHelper.myclos(con, ps, rs);
}
return ls;
}
业务逻辑层
(和数据访问层相似,先定义一个父接口后需实现该接口的方法,不同点在于,业务逻辑层秩序要实例化数据访问层调用里面的方法就可以。提示:实例化需用里氏替换原则)
《如图所示----仅供参考》
其次,搭好底层代码后,先着手搭前台界面
再者,写逻辑代码页面,也就是servlet
在前台界面获取到逻辑界面的地址
最后需要将数据绑到前台界面,在逻辑界面调用数据访问层的方法,连接到数据库