本次主要内容:
1、注解
2、手写一个ORM
注解
注解就是一个标记。用来简化代码,提高开发效率。在框架的学习中,像spring,springboot中,注解的作用尤为明显。
注解分为两大类:内置注解和自定义的注解。
内置注解就是jdk自带的注解,本次主要介绍一些常见到的注解。
比如:
@override 作用就是标识重写正不正确
@SuppressWarnings() 去除警告
@Deprecated 标识方法过时
在我们自定义注解的时候,我们还要加两个内置注解:
@Target() 用来定义注解的应用场景,就是说定义的该注解可以放在哪里(
类ElementType.TYPE,方法ElementType.METHOD,属性ElementType.FIELD)
当可以放在多个地方的时候,同时传多个参数,写法为
@Target(value=)
@Retention() 表示注解的生命周期,注解在什么范围内有效,一般参数为RetentionPolicy.RUNTIME,运行时有效
@Retention(RetentionPolicy.RUNTIME) 必须要加的
自定义注解时,使用@interface 类名,声明为注解类,对于注解里面的参数,除数组以外,都可以设置默认值,有设置默认值的参数,在使用注解时,可以不用传参数,系统自动选择默认值。
手写ORM
下面我们利用注解和反射手写一个简单的ORM。
什么是ORM?学习过mybatis或者hibernate的都知道,我们在类中定义和数据库对应的属性,在上面加入@Propety("数据库字段名"),Java利用反射获取注解中的参数,给我们拼接成一个sql语句。这也是我们手写的一个思路。
需求是这样的:数据库中有一个学生表stu,表中有三个字段,学号stu_id,姓名stu_name,年龄stu_age,写一个ORM返回一个查询学生信息的sql语句。
stu有表名和字段,我们首先需要定义一个表格的注解,参数为表名,再定义一个属性的注解,参数对应数据库中的字段,同时还可以给字段传长度,然后定义一个实体类Student,里面有属性,并使用自定义的注解。
不要忘记注解的使用环境
接下来就是利用反射来获取注解中的参数进行拼接。
一个简单的ORM就写完了。输出结果为
反射代码中有相关的注释,后面也会更新详细的章节。
领取专属 10元无门槛券
私享最新 技术干货