SSM编程---Day 02

目录

一、核心配置文件

二、junit介绍

三、自定义java注解

四、自定义注解

五、添加log4j的支持

六、sql映射文件的介绍

一、核心配置文件

        1、核心配置文件中需要注意顺序
        2、根节点
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
        3、环境:可以配置多套环境,但是必须id 唯一,同时 default 属性默认需要选择一个 id 对应的值
        4、 mappers
      (1)指定绝对路径去找到我们的 sql 映射文件,弊端: 需要一个 sql 映射文件对应一个配置,容易忘记
      (2)我们可以根据包去统一查找:但需要我们的接口的名字和 sql 映射文件的名字同名(保持一致)

二、junit介绍

        Junit是一个 java 语言的单元测试框架、也就是回归测试框架、在软件开发中也叫白盒测试、继承 TestCase 类( Junit4的测试类不再继承TestCase 父类、引入了 Annotation 注解),用于编写和可重复运行的自动化测试。
        单元测试的好处:
        编码完成后就可以立即测试、应今早发现问题
        将测试保存成为代码、可以随时快速执行
        junit4的使用:
        JUnit4.x是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 Annotation 特性简化测试用例的编写。
        junit4.x版本我们常用的注解:
        @BeforeClass 全局只会执行一次,而且是第一个运行
        @Before 在测试方法运行之前运行(每个测试方法之前都会执行一次)
        @Test 测试方法
        @After 在测试方法运行之后允许(每个测试方法之后都会执行一次)
        @AfterClass 全局只会执行一次,而且是最后一个运行
        @BeforeClass>@before>@test>@after>@afterClass
        @Ignore 忽略此方法
        @Runwith 放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器
        @Parameters 用于使用参数化功能
        @SuiteClasses 用于套件测试
        @BeforeClass @Before @After @AfterClass这些注解标注的方法又称测试的 Fixture
        导入依赖:
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>compile</scope>
</dependency>

三、自定义java注解

        Java注解 Annotation 又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用。起到说明、配置的功能。
        注解其实就是代码里的特殊标记、它用于替代配置文件。传统方式通过配置文件告诉类如何运行,有了注解技术之后,开发人员可以通过注解告诉类如何运行。在java 技术里注解的典型应用就是,可以通过反射技术去得到类里面的注解、以决定怎么去运行类。
        注解实际上就是一种数据结构,为我们的类、属性、方法等添加附加信息,我们可以利用这些附加信息对宿主进行一些逻辑判断。
        注解的生命周期有三个阶段:1 Java 源文件阶段; 2 、编译到 class 文件阶段; 3 、运行期阶段。
      
        浅显来讲、注解就像访问某种资源的一种约束条件、你只有满足了该条件、你才有权限进行某些操作。在实际开发中,创建注解很简单、怎么履行注解的约束条件才时要害。

四、自定义注解

        创建自定义注解包含三部分内容:
        1、注解姓名前面要用@interface 进行标识
        2、元注解
        3、特点
        元注解:元注解又叫做注解的注解,其实便是对该注解的一些解说阐明。常用的元注解有两个: @Target @Retention
        @Retention 表明该注解的运行时间、里边的变量是一个枚举

         @Target 表明该注解作用的方位、里面的变量是一个枚举

        ElementType.TYPE:作用在类、接口或枚举上面
        ElementType.FIELD:作用在成员变量上面
        ElementType.METHOD:作用在办法上面
        ElementType.PARAMETER:作用在方法参数上面
        ElementType.CONSTRUCTOR:作用在构造器上面
        ElementType.LOCAL_VARIABLE:作用在局部变量上面
        ElementType.ANNOTATION_TYPE:作用在注解上面
        ElementType.PACKAGE:作用在包上面
        在实践开发中咱们会常常用到 TYPE METHODPARAMETER
        注解@interface 不是接口是注解类
        在jdk1.5 之后加入的功能,使用 @interface 自定义注解时,自动继承了 java.lang.annotation.Annotation 接口。

五、添加log4j的支持

        导入依赖:
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>
        添加log4j.properties 文件:
# 全局日志配置
log4j.rootLogger=ERROR, stdout
# MyBatis 日志配置
log4j.logger.com.hqyj=TRACE
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

        使用:

private Logger logger = Logger.getLogger(StudentMapperTest.class);
logger.info();

六、sql映射文件的介绍

        1、也是 xml 文件,但是需要头文件的支持 。注意命名方式
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        属性 namespace 必须要有的,指向接口,涉及到路径基本上都是 包名 + 类名
        select 标签: id 必须要有,resultType 返回值类型 int /Integer
parameterType 参数的类型
        如果返回值是对象或者集合 resultType=“ 类名 ,其他基本类型保持一致
        如果参数是一个,parameterType 根据参数类型保持一致,
        如果参数大于一个,必须使用注解 @Param 来进行区分
        sql映射文件中,参数的占位符 #{} ,如果参数前面添加注解,我们可以不用添加 @parameterType 参数占位符一定要使用@param 中指定的名字来占位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打家劫舍 III——力扣337

文章目录 题目描述法一&#xff1a;动态规划 题目描述 法一&#xff1a;动态规划 问题简化&#xff1a;一棵二叉树&#xff0c;树上的每个点都有对应的权值&#xff0c;每个点有两种状态&#xff08;选中和不选中&#xff09;&#xff0c;问在不能同时选中有父子关系的点的情况…

js正则校验特殊的不可见字符

背景 表单的输入框&#xff0c;用户可能从Excel或者其他地方直接复制粘贴&#xff0c;这时候提交到后端会导致获取的用户输入中包含一些特殊的不可见字符&#xff0c;比如tab键或者制表符等&#xff0c;这时需要在前端对用户输入做一些检验&#xff0c;检查是否存在不可见字符…

【PHP】问题已解决:宝塔面板搭建php网站无法上传图片或是文件(保姆级图文)

目录 问题情况原因和解决方法总结 『PHP』分享PHP环境配置到项目实战个人学习笔记。 欢迎关注 『PHP』 系列&#xff0c;持续更新中 欢迎关注 『PHP』 系列&#xff0c;持续更新中 问题情况 宝塔面板搭建php网站无法上传图片或是文件。 原因和解决方法 检查你的php里是否安装…

任务19 简单个人电话号码查询系统

系列文章 任务19 简单个人电话号码查询系统 问题描述 人们在日常生活中经常需要查找某个人或某个单位的电话号码&#xff0c;本实验将实现一个简单的个人电话号码查询系统&#xff0c;根据用户输入的信息&#xff08;例如姓名等&#xff09;进行快速查询。基本要求 (1) 在外存…

k8s 对已完成job自动清理

job在处理完一个任务以后&#xff0c;状态会变成Completed&#xff0c;job在状态为Completed的时候默认不会自动清理的&#xff0c;还会继续占用系统资源。 TTL-after-finished控制器 kubernetes中有专门的控制器可以自动清理已完成的job,就是TTL-after-finished控制器。 TTL…

股东刚减持,股价却起飞?用Python量化A股解禁数据,利空出尽是利好? | 邢不行

2019年6月11日&#xff0c;宁德时代上市一周年之际&#xff0c;有45%的股票迎来了解禁。 这些由大股东、高管、早期投资者持有的股份&#xff0c;原先无法交易&#xff0c;但从这一天起就可以自由卖出了。 很多人出于对解禁后巨大卖盘的担忧纷纷提前卖出&#xff0c;导致宁德时…

如何有效的向 AI 提问 ?

文章目录 〇、导言一、Base LLM 与 Instruction Tuned LLM二、如何提出有效的问题 &#xff1f;1. 明确问题&#xff1a;2. 简明扼要&#xff1a;3. 避免二义性&#xff1a;4. 避免绝对化的问题&#xff1a;5. 利用引导词&#xff1a;6. 检查语法和拼写&#xff1a;7. 追问细节…

路由器端口映射-原理+图解

文章目录 1. 前言2. 内部服务器3. 内网IP3.1 含义3.2 查询内网IP方法3.3 直观法判断内网IP 4. 内部端口5. 外部端口6. 远程桌面连接7. 端口映射原理图8. 欢迎纠正~ 1. 前言 端口映射就是可将N台主机的内网IP地址映射成一个公网IP地址&#xff0c;从而让外网可以访问到局域网内…

nodejs安装教程

1. 下载 官网地址 https://nodejs.cn/download/ 2. 安装 双击安装包&#xff0c;一直点 Next 安装好后 cmd查看是否安装成功&#xff1a; node -v 查看nodejs版本 npm -v 查看npm版本&#xff0c;npm&#xff08;node package manager&#xff09;是nodejs的包管理器&#…

应急响应-web

应急响应的流程分为6个阶段 PDCERF 准备 &#xff0c;检测&#xff0c;抑制&#xff0c;根除&#xff0c;恢复&#xff0c;总结 准备&#xff1a; 准备阶段就是以预防为主&#xff0c;准备一些应急响应的预案&#xff0c;对应急响应的分工操作制定一些计划&#xff0c;进行应…

设计事务所项目管理指南

在数字化的浪潮下&#xff0c;各行各业都面临着升级转型的问题。对设计团队而言&#xff0c;传统的管理方式已经无法满足日益前进的团队需求。 设计事务所可能存在的管理问题&#xff1a; 1&#xff0c;项目过程中信息流通慢&#xff0c;成员工作进度无法及时同步&#xff1b; …

Dubbo源码篇08---依赖注入和AOP在Dubbo中的实现

Dubbo源码篇08---依赖注入和AOP在Dubbo中的实现 引言依赖注入使用实践 Wrapper机制使用实践注意 引言 前面三篇文章&#xff0c;我们从使用到原理&#xff0c;详细分析了一遍Dubbo SPI机制的实现原理: Dubbo源码篇05—SPI神秘的面纱—使用篇Dubbo源码篇06—SPI神秘的面纱—原…

【JavaSE】Java基础语法(十九):接口新特性

文章目录 1. 接口组成更新概述2. 接口中默认方法3. 接口中静态方法4. 接口中私有方法 1. 接口组成更新概述 常量&#xff1a;接口可以定义全局常量&#xff0c;使用关键字public static final修饰。 抽象方法&#xff1a;接口中可以定义抽象方法&#xff0c;使用关键字public…

首发Yolov8优化:Adam该换了!斯坦福最新Sophia优化器,比Adam快2倍 | 2023.5月斯坦福最新成果

1.Sophia优化器介绍 斯坦福2023.5月发表的最新研究成果,他们提出了「一种叫Sophia的优化器,相比Adam,它在LLM上能够快2倍,可以大幅降低训练成本」。 论文:https://arxiv.org/pdf/2305.14342.pdf 本文介绍了一种新的模型预训练优化器:Sophia(Second-order Clippe…

<Linux开发>驱动开发 -之-基于pinctrl/gpio子系统的beep驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -之-基于pinctrl/gpio子系统的beep驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植…

完整卸载office以及重装office 2021

完整卸载office以及重装 一.背景 之前很早安装的word最近发现打开&#xff0c;编辑等操作都很卡&#xff0c;而且占用的CPU很多&#xff0c;20%左右&#xff0c;而在网上搜索了一些结果无法解决问题后&#xff0c;决定卸载重装 二. 卸载的建议方法 直接参考官方链接从PC卸载…

Pytest自动化测试框架之Allure报告

简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容&#xff0c; 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。 从开发/测试的角度来看&#xff1a; Allure报告可以…

弘基笔记本电脑怎么使用U盘重装系统?

弘基笔记本电脑怎么使用U盘重装系统&#xff1f;有的用户的弘基笔记本电脑使用过程中出现了蓝屏的情况&#xff0c;系统频繁的出现蓝屏问题导致自己的使用受到了影响&#xff0c;那么这个情况怎么去进行问题的解决呢&#xff1f;一起来看看以下的解决方法吧。 准备工作&#xf…

直接缓存访问DCA

直接缓存访问DCA&#xff1a;网卡原本DMA写是将接收到的数据帧写入系统内存&#xff0c;DCA机制是网卡DMA写输入的数据能直接发送到属于CPU内部的L2高速缓存中&#xff0c;从而提高网络IO的性能。 设备驱动程序要初始化网卡的DCA功能&#xff0c;将CPU ID号&#xff08;通过获取…

Unity-vr用眼睛注视选择物体

Unity-vr用眼睛注视选择物体 文章目录 Unity-vr用眼睛注视选择物体工程版本用法说明脚本说明WatchController - 注视主控制器WatchEvent - 注视事件WatchGameobject - 被注视物体TimerTool - 计时器工具 总结 工程版本 unity2019.4.9f1 vs2019 项目工程源代码下载 用法说明 …