关于接口在J2EE编程中的小运用及一些体会
来源:互联网 发布:手机全包壳 知乎 编辑:程序博客网 时间:2024/06/07 18:48
关于接口在J2EE编程中的小运用及一些体会
关于接口
接口是一些列方法的抽象,并没有给出具体的实现,需要特定的类去实现它,在J2EE编程中,通常分为三块,前台的显示,业务逻辑部分以及数据库访问部分,也就是DAO层。在DAO层,则可以定义一个接口,这样换底层是数据库的话,更改起来也比较方便
代码块
例如定义一个将产品存入数据库的接口ProductDAO.java,例如:
@requires_authorizationimport java.sql.Timestamp;import java.util.List;import com.bandc.shopping.Product;public interface ProductDAO { public List<Product> getProductlist(); public boolean addProduct(Product p); public List<Product> findProducts(int id, String name, String descr, double lownormalprice, double highnormalprice, double lowmembershipprice, double highmembershiprice, Timestamp pdate, int categoryid); public void deleteProductByCategoryId(int categoryid); public void deleteProductById(int id); public boolean updateProduct(Product p);}
这里定义了一个接口,然后定义一个类去实现它ProductMySQLDAO.java,这就是一个基于MySQL数据库的一个具体的实现
package com.bandc.shopping.DAO;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Timestamp;import java.util.*;import com.bandc.shopping.Product;import com.bandc.shopping.util.DB;public class ProductMySQLDAO implements ProductDAO { public List<Product> getProductlist() { return null; } public boolean addProduct(Product p) { int id = p.getId(); String name = p.getName(); String descr = p.getDescr(); double normalprice = p.getNormalprice(); double memberprice = p.getMemberprice(); Timestamp pdate =p.getPdate(); int categoryid = p.getCategoryid(); Connection conn =null; String sql = null; PreparedStatement pstmt = null; try{ conn = DB.getConn(); if(id == -1){ sql = "insert into product values(null,?,?,?,?,?,?)"; }else{ sql = "insert into product values("+id+",?,?,?,?,?,?)"; } pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); pstmt.setString(2, descr); pstmt.setDouble(3, normalprice); pstmt.setDouble(4, memberprice); pstmt.setTimestamp(5, pdate); pstmt.setInt(6, categoryid); //System.out.println(sql); pstmt.executeUpdate(); System.out.println("插入成功"); }catch(SQLException e){ e.printStackTrace(); return false; }finally{ DB.closePstmt(pstmt); DB.closeConn(conn); } //System.out.println("插入成功"); return true; } public List<Product> findProducts(int id, String name, String descr, double lownormalprice, double highnormalprice, double lowmembershipprice, double highmembershiprice, Timestamp pdate, int categoryid) { // TODO Auto-generated method stub return null; } public void deleteProductByCategoryId(int categoryid) { // TODO Auto-generated method stub } public void deleteProductById(int id) { // TODO Auto-generated method stub } public boolean updateProduct(Product p) { // TODO Auto-generated method stub return false; } public List<Product> findProducts(int id, String name, String descr, double lownormalprice, double highnormalprice, double lowmembershipprice, double highmembershiprice, com.sun.jmx.snmp.Timestamp pdate, int categoryid) { // TODO Auto-generated method stub return null; } ```然后在业务逻辑层,有一个关于产品的管理类ProductManager.java``` pythonpackage com.bandc.shopping;import java.util.List;import com.bandc.shopping.DAO.ProductDAO;import com.bandc.shopping.DAO.ProductMySQLDAO;public class ProductManager { ProductDAO dao = null; private static ProductManager pm = null; static{ if(pm == null){ pm = new ProductManager(); pm.setDAO(new ProductMySQLDAO());//只要改变这一句话,并生成相应的数据库的DAO,那么改变就完成了 } } public static ProductManager getInstance(){ return pm; } public List<Product> getProductlist() { return dao.getProductlist(); } public ProductDAO getDAO(){ return dao; } private void setDAO(ProductDAO dao) { this.dao = dao; } public boolean addProduct(Product p) { return dao.addProduct(p); } public List<Product> findProducts(int id, String name, String descr, double lownormalprice, double highnormalprice, double lowmembershipprice, double highmembershiprice, Timestamp pdate, int categoryid) { // TODO Auto-generated method stub return null; } public void deleteProductByCategoryId(int categoryid) { // TODO Auto-generated method stub } public void deleteProductById(int id) { // TODO Auto-generated method stub } public boolean updateProduct(Product p) { // TODO Auto-generated method stub return false; }}
这样可以大大的提高代码的灵活性。
0 0
- 关于接口在J2EE编程中的小运用及一些体会
- 初步体会数学在编程中的运用
- 在flash编程过程中的一些小技巧
- 自己总结的在编程中的一些小技巧
- 从一些小例子体会面向抽象编程(一)
- 一些WIN32API在C#中的运用
- 一些WIN32API在C#中的运用
- Java在ACM中的一些运用
- 关于编程过程中的一些疑惑及问题
- 编程的一些体会
- 编程中的一些小知识点
- 编程中的一些小问题
- 关于指针在Windows编程中的一些用法
- 关于在J2EE开发中的角色
- 正则表达式在网络编程中的运用
- 正则表达式在网络编程中的运用
- 正则表达式在网络编程中的运用
- 正则表达式在网络编程中的运用
- uva11093 Just Finish it up
- android使用帧动画防止内存溢出工具类
- android 开发中的三元运算符【转】
- OpenGL学习笔记(1)开发环境的搭建
- python threading的学习
- 关于接口在J2EE编程中的小运用及一些体会
- 蓝桥杯-入门训练-圆的面积
- 创建github仓库后如何推送代码
- linkedList
- iOS设计模式简介
- HDU 2438 Turn the corner
- Python字典的json格式化处理
- DZNEmptyDataSet,优秀的空白页或者出错页封装
- 69. Sqrt(x)