自定义注解实现简单的orm映射框架

package com.mj;

import javax.xml.bind.Element;
import java.lang.annotation.*;
import java.lang.reflect.Field;

public class Test01 {

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface table{
        String value();
    }

    @Target(value = {ElementType.FIELD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface myproper{
        public String name();
        public int length() default 0;

    }

    public static void main(String[] args) throws ClassNotFoundException {
        long l1 = System.currentTimeMillis();
        Class<?> aClass = Class.forName("com.mj.Student");
        myproper declaredAnnotation2 = aClass.getDeclaredAnnotation(myproper.class);
        StringBuffer sb=new StringBuffer();
        sb.append("select ");
        Field[] declaredFields = aClass.getDeclaredFields();
        for (int i=0;i<declaredFields.length;i++){
            Field declaredField = declaredFields[i];
            myproper declaredAnnotation = declaredField.getDeclaredAnnotation(myproper.class);
            String name = declaredAnnotation.name();
            sb.append(name);
            if(i<declaredFields.length-1){
                sb.append(",");
            }
        }

        table declaredAnnotation1 = aClass.getDeclaredAnnotation(table.class);
        String tablename = declaredAnnotation1.value();
        sb.append(" from ").append(tablename);
        long l2 = System.currentTimeMillis();
//        System.out.println((l2-l1));
        System.out.println(sb.toString());

    }
}
package com.mj;

@Test01.table("student")
class Student {
    @Test01.myproper(name="name",length = 255)
    private String s_name;
    @Test01.myproper(name="age",length = 11)
    private int s_age;
    @Test01.myproper(name="id",length = 11)
    private int s_id;
}

原文地址:https://www.cnblogs.com/a1304908180/p/11376206.html

时间: 2024-10-28 20:29:11

自定义注解实现简单的orm映射框架的相关文章

自定义注解的简单使用

    框架开发时不免会涉及到配置文件,如properties.xml以及txt等格式的文件.这里介绍框架中通过自定义注解的形式简化配置: 根据需求编写自定义注解中的属性(这里以JDBCConfig为例,这是一个注入数据库常用配置的注解类) @Target是java的元注解(即修饰注解的注解),这里的@Target({METHOD,TYPE})指可以修饰方法.描述类.接口(包括注解类型) 或enum声明. @Retention是java中的运行时注解,可以划分为三类   1.RetentionP

SpringBoot入门十八,自定义注解的简单实现

项目基本配置参考文章SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可,此示例springboot升级为2.2.1版本. 1. pom.xml添加aop支持 <!-- 引入aop切面支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-

开源组件:(4)用元数据和BeanUtils写一个简单的ORM映射BaseDAO.java

1.JDBC元数据 在jdbc中可以使用: 数据库元数据.参数元数据.结果集元数据 (1)数据库元数据 通过Connection对象的getMetaData() 方法可以得到DatabaseMetaData对象.DatabaseMetaData对象包含了数据库的元信息. DatabaseMetaData java.sql.Connection.getMetaData() Retrieves a DatabaseMetaData object that contains metadata abou

ODB——基于c++的ORM映射框架尝试(使用)

摘要: 2.使用 首先,需要定义一个对象,用来和数据库字段对应: [cce lang=”cpp”] #ifndef VOLUME_H #define VOLUME_H #include #include #pragma db object cl 2.使用首先,需要定义一个对象,用来和数据库字段对应:[cce lang=”cpp”]#ifndef VOLUME_H#define VOLUME_H #include <string>#include <odb/core.hxx> #pr

基于java注解实现自己的orm框架

ORM即Object Relation Mapping,Object就是对象,Relation就是关系数据库,Mapping映射,就是说Java中的对象和关系数据库中的表存在一种对应关系. 现在常见的ORM框架比如Hibernate和mybatis,都是采用了ORM的方式,基本原则就是类-表(Table).属性-列(Column)这样的对应,所以一个对象就能表示数据表中的一行数据啦. 本文转自http://m.blog.csdn.net/woshisangsang/article/details

转:C#制作ORM映射学习笔记三 ORM映射实现

现在开始实现ORM的主体模块,首先需要在项目中新建一个类,命名为DbAccess,然后在项目的引用中添加两个dll,分别是MySql.Data.dll和System.Data.SQLite.dll,这两个dll都可以在对应的数据库官网上下载到,为了方便我这里也提供一个下载地址.添加好dll后需要在DbAccess中添加几个名空间,具体代码如下: using System; using System.Collections; using System.Collections.Generic; us

自定义注解之运行时注解(RetentionPolicy.RUNTIME)

对注解概念不了解的可以先看这个:Java注解基础概念总结 前面有提到注解按生命周期来划分可分为3类: 1.RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃: 2.RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期: 3.RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在: 这3个生

自定义注解框架的那些事

一.前言 距离上次更新已过一个半月,工作太忙也不是停更的理由.我这方面做得很不好,希望大家给予监督.首先会讲解[编译期资源注入],接着是[下拉刷新注入](通过注解来实现下拉刷新功能),最后打造一款[特色的注解框架]. 大家准备好公交卡了吗,开车了 - 二.什么是注解 每位童鞋对 注解 都有自己的理解,字面上的意思就是[额外的加入],在项目当中使用的注解的框架已经越来越多,如 : retrofit ,butterknife,androidannotations - 2017年Android百大框架

反射+自定义注解---实现Excel数据列属性和JavaBean属性的自动映射

简单粗暴,直奔主题.   需求:通过自定义注解和反射技术,将Excel文件中的数据自动映射到pojo类中,最终返回一个List<pojo>集合? 今天我只是通过一位使用者的身份来给各位分享一套超级可以的POI"工具",这套工具我只是第一个使用者,创作者是我的朋友,他喜好钻研底层和算法,擅长计算机软硬件,在我心里他一直是神一样的存在,每天晚上10点后我才能看到他,因为他每天需要加班,需要有更多时间能够学习,唉,这种毅力和耐力,我是真的羡慕,因为我也一直在努力,能够得到更多的东