1. 程式人生 > >java自定義註解的方式連線MySQL資料庫來走進註解

java自定義註解的方式連線MySQL資料庫來走進註解

最近在學習spring。裡面有一個非常的強大的功能叫做註解,剛才,同學們的每日一講講到了註解,學以致用來總計一下註解機制

什麼是註解?

註解(Annotation):提供了一種安全的類似註釋的機制,為我們在程式碼中新增資訊提供了一種形式化的方法,使我們可以在稍後某個時刻方便的使用這些資料(通過解析註解來使用這些資料),用來將任何的資訊或者元資料與程式元素(類、方法、成員變數等)進行關聯。其實就是更加直觀更加明瞭的說明,這些說明資訊與程式業務邏輯沒有關係,並且是供指定的工

Annotation其實是一種介面。通過java的反射機制相關的API來訪問Annotation資訊。相關類(框架或工具中的類)根據這些資訊來決定如何使用該程式元素或改變它們的行為。Java語言解釋

器在工作時會忽略這些Annotation,因此在JVM中這些Annotation是“不起作用”的,只能通過配套的工具才能對這些Annotation型別的資訊進行訪問和處理。

Annotation像一種修飾符一樣,應用於包、型別、構造方法、方法、成員變數、引數及本地變數的申明語句中。

用註解來連線MySQL的例子學習註解

首先我們說過註解就像介面,所以自定義一個註解。

Dbinfo.java

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import
java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Inherited public @interface Dbinfo { public String url(); public String drivername(); public String username
(); public String password(); }

=====引數解釋=====
@Documented :將此註解包含在 javadoc 中
@Retention :表示在什麼級別儲存該註解資訊
@Retention這裡面有這些級別
這裡寫圖片描述

@Target:表示該註解用於什麼地方
@Target有這些地方可以用到:
這裡寫圖片描述

@Inherited :允許子類繼承父類中的註解

宣告好了一個自己的註解方法,我們就要來解析這個註解,這裡主要用到反射的知識。

ParseAnnotation.java

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import com.rindy.maven.self_annotation.Dbinfo;

public class ParseAnnotation {
    public void parseMethod(Class clazz) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{
        Object obj = clazz.newInstance();
        Method[] methods=clazz.getDeclaredMethods();

        for(Method m:methods){
            Dbinfo db=m.getAnnotation(Dbinfo.class);
            String url="";
            String drivername="";
            String username="";
            String password="";
            if(db!=null){
                url=db.url();
                drivername=db.drivername();
                username=db.username();
                password=db.password();
                m.invoke(obj, url,drivername,username,password);
            }
        }

 }
}

其中我們用到了getDeclaredMethods帶得到裡面的方法,那麼 我們回顧一下

getDeclaredMethods()和getMethods()區別

getDeclaredMethods()
返回 Method 物件的一個數組,這些物件反映此 Class 物件表示的類或介面宣告的所有方法,包括公共、保護、預設(包)訪問和私有方法,但不包括繼承的方法。

getMethods()
返回一個包含某些 Method 物件的陣列,這些物件反映此 Class 物件所表示的類或介面(包括那些由該類或介面宣告的以及從超類和超介面繼承的那些的類或介面)的公共 member 方法。

然後我們使用我們的註解,因為是測試連線MySQL資料庫,所有別。

SayHello.java –用來使用註解連線MySQL

import java.sql.DriverManager;
import com.mysql.jdbc.Connection;
public class SayHello{

    @Dbinfo( url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", drivername="com.mysql.jdbc.Driver",username="root" , password="a")
    public Connection getCon( String url, String drivername, String username, String password  ) throws Exception{
        Class.forName( drivername).newInstance();
        System.out.println(drivername);
        Connection con=null;
        //if(url!=null&&username!=null&&password!=null){
        con=(Connection) DriverManager.getConnection( url, username, password);
        System.out.println(con);
        //}
        return con;
    }

}

測試類測試:

public void testApp() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException
    {
        ParseAnnotation pa=new ParseAnnotation();
        pa.parseMethod(SayHello.class); 
    }

測試結果:
這裡寫圖片描述

這裡寫圖片描述

好勒連線資料庫的自定義註解方式寫完了,至此對註解的使用有了一個大致的瞭解和使用。

相關推薦

java定義註解方式連線MySQL資料庫走進註解

最近在學習spring。裡面有一個非常的強大的功能叫做註解,剛才,同學們的每日一講講到了註解,學以致用來總計一下註解機制 什麼是註解? 註解(Annotation):提供了一種安全的類似註釋的機制,為我們在程式碼中新增資訊提供了一種形式化的方法,使我們可

C++ API方式連線mysql資料庫實現增刪改查

轉自 http://www.bitscn.com/pdb/mysql/201407/226252.html 一、環境配置 1,裝好mysql,新建一個C++控制檯工程(從最簡單的弄起,這個會了,可以往任何c++工程移植),在vs2010中設定,工程--屬性--VC++目

java程式中使用JDBC連線mysql資料庫

  在java程式中我們時常會用到資料庫中的資料或操作資料庫中的資料,如果java程式沒有和我們得資料庫連線,就不能實現在java程式中直接操作資料庫。使用jdbc就能將java程式和資料庫連起來,此時我們就能在java程式裡通過java程式碼完成我們要對資料庫的操作。但是使用jdbc怎麼實現連線呢? 具體

C#通過讀取配置檔案方式連線mysql資料庫

連線資料庫最常用的方式就是通過字串連線,如下: public static string connstr = "server = localhost; uid = root; pwd = 123456; database = db_sms;"; MySqlConnect

RF定義資料庫訪問模組,連線mysql資料庫

程式碼簡單,不多贅述 import MySQLdb class Mysqlexc(): database_name = 'payment' host = '1.1.1.2' port = '3306' username = 'root' passwor

java定義註解、mybatis 外掛 實現資料庫 分庫分表

一、自定義註解實現分庫 為什麼會有資料庫切庫一說 首先,許多專案都有主庫與從庫,有的主庫後面甚至會有很多個從庫,主從庫之間的通常同步也很快,這為資料庫切庫提供了一個基礎,因為可以去不同的資料庫查詢,得到相同的結果(如果不同的資料庫是完全不同的,這個不在我們這篇文章討論的範圍之內,那個屬於讓專

經典的java定義資料庫連線池程式碼

import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import j

java連線MySQL資料庫的幾種方式

1.1概念 DBCP(DataBase Connection Pool)資料庫連線池,是java資料庫連線池的一種,由Apache開發,通過資料庫連線池,可以讓程式自動管理資料庫連線的釋放和斷開。 1.2程式碼示例 所需jar包:commons-dbcp2-2.2.1.j

Java定義註解反射校驗數據

sda new out 格式 是否 本地 imp 使用範圍 數據類型 package com.annotations.ecargo; import java.lang.annotation.ElementType; import java.lang.annotati

java定義註解

不包含 doc 1.2 color 子類 局部變量 ati 包含 ant Java註解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。註解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annot

java 定義註解

tar 基本用法 而且 最簡 ida outline plain 現在 傳播 參考鏈接:https://blog.csdn.net/hbzyaxiu520/article/details/6212969 JAVA自定義註釋(Target,Retention,Document

ERROR:java連線mysql資料庫8.0以上版本

先上解決辦法: 1、修改jdbc.properties    原來是: jdbc.url=jdbc:mysql://localhost:3306/language_protection?useUnicode=true&characterEncoding=UTF

Java 定義註解&通過反射獲取類、方法、屬性上的註解

反射 JAVA中的反射是執行中的程式檢查自己和軟體執行環境的能力,它可以根據它發現的進行改變。通俗的講就是反射可以在執行時根據指定的類名獲得類的資訊。   註解的定義 註解通過 @interface 關鍵字進行定義。 /** * 自定義註解 *

Java連線Mysql資料庫警告 Establishing SSL connection without server'

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java定義註解之元註解(meta-annotation)Target、Retention、Documented、Inherited介紹

元註解:   元註解的作用就是負責註解其他(如:自定義)註解,用來對其它 annotation型別作說明。Java定義了4個標準的meta-annotation型別:    [email protected]    [email protected

mysql自身報錯、java、reids連線mysql資料庫報錯彙總

1、Can't connect to local MySQL server through socket 'tmpmysql.sock' (2) 原因是mysql根本沒有啟動   2、Access denied for user 'root'@'localhost' (using passwo

java定義註解2】java定義註解結合Spring AOP

      承接上一篇,註解應用於屬性,本篇定義了一個用於方法的註解,結合Spring AOP 實現 切面程式設計。       以下demo演示使用了SpringBoot,與SSM中使用方式大致相同,效果如下: 1、自定義註解(用

java定義註解1】java定義註解-屬性

        關於自定義註解,以前專案種應用的不多,最近看新專案過程中發現了挺多自定義註解相關內容,使用起來比較巧妙,於是 總結了兩種方式,記錄如下:         第一種:結合反射進行屬性注入,程式碼如下:

java 定義註解驗證 (僅限於實體屬性值上的註解

資源下載地址:http://download.csdn.net/detail/weilai_zhilu/9761533   該驗證主要包含三部分 註解驗證類 註解處理方法類 實體類 測試類 第一部分:註解驗證類(此部分暫時只寫了三個驗證類) 下面

java定義註解解析及相關場景實現

註解(Annotation)是java1.5之後提供的一種語法。其主要作用是編譯檢查(比如@override)和程式碼分析(通過程式碼中添加註解,利用註解解析器對添加了註解的程式碼進行分析,獲取想要的結果,一般自定義的註解都是這一種功能)。 1.1 JDK提供的註解 JDK提供的