@[TOC](第三章 DAO模式(分层) ① 笔记)
内容回顾
jdbc事务
确保一系列数据操作(增、删、改)作为整体执行的机制,要么都执行,都不执行;
- setAutoCommit(false);
- commit()
- rollback()
BaseDAO封装
简化jdbc的数据操作,减少冗余代码,重用,隐藏了细节的实现;
学习目标
DAO模式,分层处理业务
第一节 DAO模式
dao: database access object 数据访问对象
企业开发过程中的项目的架构:(分层模式)
显示层:jsp,显示数据,和用户交互。
控制层:用来控制前端的请求,交给后端的业务层去处理。 管家。承上启下。
业务层:具体的业务逻辑(Bussiness) ,服务层(Service),在实现业务的过程中可以调
用一系列数据层的数据操作。
数据层:原子级别的数据操作(增、删、改、查 CRUD)操作。
实体层: 封装数据,在各层之间传递。
dao模式简介:
DAO:Data Access Object :数据存取对象;数据访问层。封装了jdbc操作,实现数据的
CRUD,套路。
实体层:
实体类:数据的 载体
数据访问层:
BaseDao:封装过了通用的数据操作
dao接口:提供的CRUD的标准
dao实现类:实现接口的方法
业务层:
service接口:定义业务接口方法
service实现类:实现业务接口的方法
dao的实现步骤:
//DAO模式的实现步骤:
/*
* ---数据库
* 1.建库建表
* ---java项目
* 2.创建java项目
*
* ---实体层:使用实体封装数据,在各层传递
* 3.创建实体包 com.entity
* 4.在实体包中创建实体类 UserInfo.java
* 在实体类中根据表字段定义属性和getter setter
*
*---dao层(数据访问层):只负责数据的增删改查
* 5.创建dao接口包 com.dao
* 6.在dao接口包中创建 dao接口 : IUserInfoDAO.java
*
* 7.创建dao接口实现包 com.dao.impl
* 8.在dao接口实现包中创建 dao接口实现类: UserInfoDAOImpl.java
*
* ---service层(业务层):实现业务功能的处理,例如:注册业务,发帖,转账
* 9.创建service接口包 com.service
* 10.在service接口包中创建service接口: IUserInfoService.java
*
* 11.创建service接口实现包 com.service.impl
* 12.在service接口实现包中添加service实现类: UserInfoServiceImpl.java
*
* ---应用程序界面:显示程序的功能菜单,作为程序入口
* 13.创建应用程序入口包:com.test
* 14.在程序入口包创建程序测试类:Test.java
*
*/
第二节 log4j的使用(日志工具)
在程序执行的过程中,我们需要记录程序执行的细节,用于程序分析或解决程序执行出
现的问题。
如何使用log4j工具记录日志:
1.导入log4j.jar包:
项目的src文件夹上—>右键-新建文件夹或包lib
将jar文件拷贝到lib目录中
lib目录上右键-【Add as LIbrary】
2.创建log4j工具的配置文件log4j.properties文件
复制log4j.properties文件->选中项目的src文件夹->黏贴log4j.properties文件
3.使用日志记录对象
#定义日志信息的输出源:输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
#定义日志信息的输出源:输出到文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# %d:日期 %l:行号 %m:信息 %n:换行 %M:方法名 %F:文件名 %p:信息级别
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%
#定义日志信息的输出源:输出到文件
log4j.appender.x=org.apache.log4j.FileAppender
log4j.appender.x.File=d:/smx_log.txt
log4j.appender.x.layout=org.apache.log4j.PatternLayout
log4j.appender.x.layout.ConversionPattern=%d{yyyy-MM-dd} %F %M %p %l %m%n
#配置日志记录器,记录信息的级别,以及信息输出的目标
log4j.rootLogger=info,stdout,file,x
package com.test1;
import org.apache.log4j.Logger;
public class Test1 {
public static void main(String[] args) {
//log4j:程序日志记录工具
//特点:能够记录不同级别(不同重要性)的信息到不同的地方(输出目标)
//使用步骤:
//1.导入log4j的工具包(jar文件)
//2.创建log4j的配置文件(log4j.properties)
//3.在程序代码中,嵌入日志记录代码
Logger log = Logger.getLogger("Test");
log.debug("记录Debug(调试)级别的内容");
log.info("记录info(信息)级别的内容");
log.warn("记录warn(警告)级别的信息");
log.error("记录error(错误)级别的信息");
log.fatal("记录fatal(终极错误)级别的信息");
}
}
DEBUG – debug调试级别的⽇志
INFO – info 正常级别的⽇志
WARN – warn警告级别的⽇志
ERROR – error错误级别的⽇志
FATAL – fatal致命级别的⽇志
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越
少
public class Test2 {
public static void main(String[] args) {
//输入两个数,做除法运算
Scanner scanner = new Scanner(System.in);
Logger logger =Logger.getLogger(Test2.class);
logger.debug("程序开始执行");
try {
logger.debug("准备输入第一个数");
System.out.println("请输入第一个数:");
int num1 = scanner.nextInt();
logger.info("用户输入第一个数:"+num1);
logger.debug("准备输入第二个数");
System.out.println("请输入第二个数:");
int num2 = scanner.nextInt();
logger.info("用户输入的第二个数:"+num2);
logger.debug("准备计算结果");
int res = num1/num2;
logger.info("计算的结果是:"+res);
System.out.println("结果:"+res);
} catch (Exception exception) {
logger.error("发生错误:"+exception.getMessage());
exception.printStackTrace();
}
logger.debug("程序执行结束");
System.out.println("程序执行结束");
}
}
练习任务
1、熟练掌握dao模式,实现CRUD操作。
2、员工管理功能实现
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/118093.html