关于接口在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

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

Java 的 Condition 接口与等待通知机制详解

《Java的Condition接口与等待通知机制详解》在Java并发编程里,实现线程间的协作与同步是极为关键的任务,本文将深入探究Condition接口及其背后的等待通知机制,感兴趣的朋友一起看... 目录一、引言二、Condition 接口概述2.1 基本概念2.2 与 Object 类等待通知方法的区别

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选