关于接口在J2EE编程中的小运用及一些体会

2024-05-13 03:38
文章标签 接口 编程 运用 体会 j2ee

本文主要是介绍关于接口在J2EE编程中的小运用及一些体会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于接口在J2EE编程中的小运用及一些体会


关于接口

接口是一些列方法的抽象,并没有给出具体的实现,需要特定的类去实现它,在J2EE编程中,通常分为三块,前台的显示,业务逻辑部分以及数据库访问部分,也就是DAO层。在DAO层,则可以定义一个接口,这样换底层是数据库的话,更改起来也比较方便

代码块

例如定义一个将产品存入数据库的接口ProductDAO.java,例如:

@requires_authorization
import 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 stubreturn 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 stubreturn 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 stubreturn null;}```
然后在业务逻辑层,有一个关于产品的管理类ProductManager.java
``` python
package 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 stubreturn 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 stubreturn false;}
}

这样可以大大的提高代码的灵活性。

这篇关于关于接口在J2EE编程中的小运用及一些体会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984579

相关文章

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

Java中接口和抽象类的异同以及具体的使用场景

《Java中接口和抽象类的异同以及具体的使用场景》文章主要介绍了Java中接口(Interface)和抽象类(AbstractClass)的区别和联系,包括相同点和不同点,以及它们在实际开发中的具体使... 目录一、接口和抽象类的 “相同点”二、接口和抽象类的 “核心区别”关键区别详解(避免踩坑)三、具体使

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2