晋江规划建设局网站,手机端的网站怎么做的,手机网站主页面文艺,东莞常平中学开发环境 Eclipse2022JDK1.8
目录
1. 概述
2. 实现步骤 2.1 定义通用接口 2.2 定义实体类 2.3 接口扩展 2.4 接口实现 2.5 功能测试
3. 结语 1. 概述 每一个信息系统或多或少都带有一些数据字典#xff0c;在维护上#xff0c;基本上分为增删改查#xff0c;也就是对数据…开发环境 Eclipse2022JDK1.8
目录
1. 概述
2. 实现步骤 2.1 定义通用接口 2.2 定义实体类 2.3 接口扩展 2.4 接口实现 2.5 功能测试
3. 结语 1. 概述 每一个信息系统或多或少都带有一些数据字典在维护上基本上分为增删改查也就是对数据库进行CRUD操作。为每一个字典新建实体类在dao层也就会进行一些常规的CRUD接口操作。如果为每一个实体类都写一个interface接口这个感觉就比较繁琐。为此想简化下工作量在网上找了不少文章具有此想法的大佬还是不少。设计的思路是定义一个通用接口通过泛型定义CRUD相关基本接口.
2. 实现步骤 2.1 定义通用接口 通过泛型定义接口也就是说传递进来的V可以是任意实体类比如User(用户)、Dept(科室)等数据字典表.
package fxjk;import java.util.List;public interface ICommonIntfK,V {int add(V v);int delete(V v);int update(V v);V find(V v);
} 2.2 定义实体类 我在本地新建了User类赋予账号、密码属性。
package entity;public class User {private String username;private String password;public User() {super();}public User(String username, String password) {super();this.username username;this.password password;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}Overridepublic String toString() {return User [username username , password password ];}} 2.3 接口扩展 考虑到User类可能有特殊的操作通过接口继承接口对通用接口进行了扩展这只是一个思路. 需要注意的是在代码实现接口部分确定了具体实体类User. 在此基础上额外的扩展了query方法。
package fxjk;import java.util.Map;
import entity.User;public interface IUserIntf extends ICommonIntfString, User {MapString,Object query(Object obj);
}2.4 接口实现 新建类 UserIntfImpl 实现接口 IUserIntf而 IUserIntf 又继承了通用接口 ICommonIntf所有在 UserIntfImpl 里实现了IUserIntf 和 ICommonIntf的方法。此处我直接写了实现
package fxjk;import java.util.*;
import entity.User;public class UserIntfImpl implements IUserIntf {Overridepublic int add(User v) {User user (User)v;System.out.println([add]: user);return 1;}Overridepublic int delete(User v) {User user (User)v;System.out.println([delete]: user);return 1;}Overridepublic int update(User v) {User user (User)v;System.out.println([update]: user);return 1;}Overridepublic User find(User v) {User user (User)v;System.out.println([find]: user);return user;}Overridepublic MapString, Object query(Object obj) {Page page (Page)obj;MapString,Object map new HashMap();User user1 new User(ceaning,123qwe,.);User user2 new User(king,321qwe,.);map.put(1, user1);map.put(2, user2);map.put(1, user2);System.out.println([query]: map);return map;}}2.5 功能测试 新建一个测试类加入main方法代码如下:
package fxjk;import entity.User;public class UserTest {public static void main(String[] args) {// TODO Auto-generated method stubIUserIntf service new UserIntfImpl();User user new User(heelo, world);//Page page new Page(1, 10);service.add(user);service.delete(user);service.update(user);service.find(user);service.query(user);}}
3. 结语 这种写法适合维护数据字典在实际开发中可能还是有这种写法。开发方法多种多样也许还有其他更有趣的写法。