java代码的四层结构

这篇博客介绍了Java代码的四层结构:util包包含通用类,如字符串验证;实体类包用于创建操作的实体对象;DAO层负责数据库交互,每个表对应一个DAO接口及其实现类;Service层作为业务逻辑层,调用DAO功能并实现业务操作。
摘要由CSDN通过智能技术生成

 一.util包:放共同类的包(整个项目中,可以共用的一些代码)
 例如:一些常用的字符串的非空验证,身份证或者电话号码的正则验证等等

1.JDBC类功能的封装

package util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * entity/pojo:实体类的包
 * dao:直接操作数据库的包(业务逻辑层和数据库持久化层的中间)
 * util:放共同类的包(整个项目中,可以共用的一些代码)
 * 例如:一些常用的字符串的非空验证,身份证或者电话号码的正则验证等等
 * service:业务逻辑层(对dao层再进行一次封装,相当于用来管理指挥dao层的) 
 *
 *一个重要的概念:单例模式(面试简答题):
 *	保证只有一个实例对象(主要针对数据库连接的对象)
 *步骤:
 *1.私有化构造方法(让别人不能直接new对象)
 *2.提供一个公共的访问方法(用来提供该类的唯一的一个对象)
 *-(必须有且仅有一个的静态变量)
 *
 *分支:饿汉模式/懒汉模式
 *饿汉模式:先把对象创建好,只等别人来调用
 *懒汉模式:等别人来调用的时候,再创对象
 */
public class ConfigManager {
	//一个静态的变量(该变量就是用来连接数据库的唯一对象)
	private static ConfigManager configManager 
					=new ConfigManager();//饿汉模式
	//加载以.properties结尾的配置文件的类
	private static Properties properties;
	//构造方法的作用:初始化数据(初始化database.preperties配置文件信息)
	private ConfigManager(){
		properties=new Properties();
		//数据库配置文件的名字/路径
		String configFile="database.properties";
		//通过当前ConfigManager这个类的路径来找到指定的configFile所表示的文件
		//并保存到输入流对象中
		InputStream is=ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
		try {
			properties.load(is);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				is.close();//关闭输入流
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	/**
	 * 该方法是公共的,用来返回该类中唯一的一个ConfigManager变量
	 * 
	 */
	public static ConfigManager getInstance(){
		//懒汉模式
		if(configManager==null){
			configManager=new ConfigManager();
		}
		return configManager;
		/**
		 * 该方法用来获取配置文件中的value值
		 */
		}
	
	public String getValue(String key){
		//根据方法中传入的key值来返回对应的value值
		return properties.getProperty(key);
	}//为什么这个方法加上静态
}

2.database.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/java2106?useUnicode=true&characterEncoding=UTF-8
user=root
pass=123456

二.实体类包

每一个要操作的实体对象都需要新建一个实体类

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是用 Java 代码实现四层树状结构的组合模式: 首先,我们定义抽象类 Component,它是所有节点的抽象类,包含两个方法:add() 和 remove(),用于添加和删除子节点;display() 方法用于显示节点信息。 ```java public abstract class Component { protected String name; public Component(String name) { this.name = name; } public abstract void add(Component c); public abstract void remove(Component c); public abstract void display(); } ``` 然后,我们定义 Composite 类和 Leaf 类。 Composite 表示内部节点,包含子节点,实现了 Component 中定义的方法,其中 add() 和 remove() 方法用于添加和删除子节点,display() 方法用于显示节点信息。 Leaf 表示叶子节点,没有子节点,也实现了 Component 中定义的方法,但 add() 和 remove() 方法不需要实现。 ```java public class Composite extends Component { private List<Component> children; public Composite(String name) { super(name); children = new ArrayList<Component>(); } @Override public void add(Component c) { children.add(c); } @Override public void remove(Component c) { children.remove(c); } @Override public void display() { System.out.println(name); for (Component c : children) { c.display(); } } } public class Leaf extends Component { public Leaf(String name) { super(name); } @Override public void add(Component c) { System.out.println("Cannot add to a leaf"); } @Override public void remove(Component c) { System.out.println("Cannot remove from a leaf"); } @Override public void display() { System.out.println(name); } } ``` 最后,我们可以使用 Composite 和 Leaf 来创建树状结构,如下所示: ```java public class Main { public static void main(String[] args) { Composite root = new Composite("root"); Composite node1 = new Composite("node1"); Composite node2 = new Composite("node2"); Leaf leaf1 = new Leaf("leaf1"); Leaf leaf2 = new Leaf("leaf2"); Leaf leaf3 = new Leaf("leaf3"); node1.add(leaf1); node1.add(leaf2); node2.add(leaf3); root.add(node1); root.add(node2); root.display(); } } ``` 输出结果如下: ``` root node1 leaf1 leaf2 node2 leaf3 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值