java代码的四层结构

2023-11-07

 一.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

二.实体类包

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java代码的四层结构 的相关文章

随机推荐

  • spring配置文件解读——applicationContext.xml

    spring的配置文件 applicationContext xml 听着晴天看星晴的博客 CSDN博客
  • binutils internal struct

    http fossies org dox binutils 2 23 2 structelf internal sym html dl iterate phdr REPAIR RAX inline hook
  • [动态规划] leetcode 416. 分割等和子集

    问题描述 分割等和子集 给你一个只包含正整数的非空数组 nums 请你判断是否可以将这个数组分割成两个子集 使得两个子集的元素和相等 例子 输入nums 1 5 11 5 输出true 动态规划求解 这是一个0 1背包问题的变种 也就是每种
  • Idea工具使用经典总结

    安装教程 下载地址 https www jetbrains com idea download section windows 准备idea ideaIU 2017 2 3 exe 软件与激活包 JetbrainsCrack 2 6 9 r
  • 设备节点如何与设备驱动关联

    1 上层应用如何调用设备驱动 1 在linux中一切皆是文件 设备驱动程序对上层应用程序来说和普通文件没什么差异 2 上层应用程序通过设备节点来访问驱动程序 在驱动程序注册到内核后 用申请到的主次设备号来创建设备节点 2 向内核注册字符驱动
  • 【已解决】Error: Unable to access jarfile .\xxxx.jar

    报错类型 Error Unable to access jarfile xxxx jar 复现工具的时候 通过命令 java jar xxxx jar 运行 jar 包报了这个错误 报错原因是 在命令行中出现的路径下找不到 xxxx jar
  • micro-app在vue-element-admin中一些使用研究

    1 简述 本文承接上一篇micro app在vue element admi中的搭建 对micro app在vue element admin中的一些平时开发中常用的功能做了一些研究 本文代码 2 路由 关于路由 这边从两方面进行研究 一方
  • ass字幕格式

    ssa ass字幕格式全解析 内容 一 概述 二 文件各个部分解析 三 各种类型的行 四 Script Info 部分的标题行 五 v4 Styles 部分的风格行Style 六 Events 事件部分的对话行Dialogue 七 Even
  • 高通功耗调试18之Tsensor中断频繁触发导致低温下待机功耗高的问题

    问题背景 在内核4 9及之后的版本 低于5C环境温度下待机 由于触发了Tsensor的低温保护机制 可能会遇到较频繁 的tsens中断 11 22 07 12 27 914969 0 0 W GICv3 gic show resume ir
  • [echarts]柱状图的点击事件

    先来一段简洁的写echarts图表的代码 这样获取echarts的dom节点是因为 如果将柱状图封装成了一个组件 在一个页面中多次使用 若还是按常规获取dom节点 会报一个警告 let charts echarts getInstanceB
  • Linux驱动开发(应用程序如何调用驱动)

    1 添加读写接口 1 在应用代码中 2 在驱动代码中 2 应用和驱动之间的数据交换 1 copy from user 用来将数据从用户空间复制到内核空间 2 copy to user 用来将数据从内核空间复制到用户空间 3 write和re
  • DAPM之一:概述

    DAPM Dynamic Audio Power Management 对应结构体是snd soc dapm widget和snd soc dapm route 对应的操作函数是snd soc dapm new controls snd s
  • C++对象模型和this指针

    C 对象模型和this指针 成员变量和成员函数分开存储 在C 中 类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 include
  • 逐梦C++补遗篇之一:cout与cerr的区分

    逐梦C 补遗篇之一 cout与cerr的区分 1 从定义看区别 cout 标准输出流 带缓冲 默认输出目的地为屏幕 可以被重定向 cerr 标准错误输出 不带缓冲 输出目的地为屏幕 一般不被重定向 缓冲 带缓冲 就是系统会为你分配一个缓冲区
  • 精彩观点一览

    7月20日下午 大模型的发展路径论坛于北京成功举办 大模型的发展路径论坛作为2023中国互联网大会的分论坛之一 由中国互联网协会人工智能工作委员会承办 中国信通院云计算与大数据研究所 华为云大数据与AI业务协办 并得到阿里云 北京智源研究院
  • 理解什么是 JMM

    理解什么是 JMM 本文已收录至 GitHub https github com yifanzheng java notes Java 虚拟机是一个完整的计算机的一个模型 因此这个模型自然也包含一个内存模型 Java 内存模型 也就是说 J
  • 最短路算法——Dijkstra

    Dijkstra 在大多数最短路径问题中 Dijkstra 算法是最常用 效率最高的 它是一种 单源 最短路径算法 一次计算能得到从一个起点 s 到其他所有点的最短距离长度 最短路径的途径点 一 Dijkstra的算法思想 Dijkstra
  • Upload LABS Pass-6

    第六关在后端使用了黑名单 并过滤了大小写和点 但未过滤空格 我们使用代理抓包在后缀名中添加空格 即可绕过黑名单 准备一个 6 php 文件 内容为一句话木马 上传 6 php 文件 并开启代理 此处使用 Burp Suite 拦截请求 在文
  • python旋转矩阵_python将四元数变换为旋转矩阵

    import numpy as np from autolab core import RigidTransform 写上用四元数表示的orientation和xyz表示的position orientation y 0 697127881
  • java代码的四层结构

    一 util包 放共同类的包 整个项目中 可以共用的一些代码 例如 一些常用的字符串的非空验证 身份证或者电话号码的正则验证等等 1 JDBC类功能的封装 package util import java io IOException im