Java Annotation(Java 注解)的实现代码_Java教程-查字典教程网
Java Annotation(Java 注解)的实现代码
Java Annotation(Java 注解)的实现代码
发布时间:2016-12-28 来源:查字典编辑
摘要:如果你想知道javaannotation是什么?你可以先看看:“http://www.infoq.com/articles/Annotati...

如果你想知道java annotation是什么?你可以先看看:“http://www.infoq.com/articles/Annotation-Hammer”

下面是我做的一个demo:

项目结构:

运行效果:

====================================================

代码部分:

注:很多人会考虑这个问题,“这样做的目的是什么?我们可以做一个配置文件(xml,properties等),不是比这个跟方便...或者说

直接把我们的配置信息写入程序...这样也不会去解析我们写的注释..”

但是annotation和xml,properties等配置文件的优缺点是什么呢..

个人观点:写注释的时候,比较方便...可以提高开发的效率.有用到注释的框架,如:Hibernate,Struts,Spring等

回到原话题,“这样做的目的是什么?“---这里只是做一个demo,让大家知道annotation是怎么一回事儿....在很多我们开发的

过程中,很少用到我们自己定义的注释(Annotation),如果真的用到了,那么这篇blog也许就有帮助了..^_^

====================================================

/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java

复制代码 代码如下:

/**

*

*/

package com.b510.hongten.annotation;

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

* JDBC annotation

*

* @author Hongten

* @date 2013-4-10

*/

@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public @interface JDBCAnnotation {

String driver() default "com.mysql.jdbc.Driver";

String dbName() default "";

String encoding() default "UTF-8";

String port() default "3306";

String host() default "localhost";

String userName() default "root";

String password() default "";

}

/java_annotation/src/com/b510/hongten/jdbc/JDBCUtil.java

复制代码 代码如下:

/**

*

*/

package com.b510.hongten.jdbc;

import com.b510.hongten.annotation.JDBCAnnotation;

/**

* @author Hongten

* @date 2013-4-12

*/

@JDBCAnnotation(dbName = "db_lucene", port = "3306", host = "192.168.0.119", userName = "root", password = "root")

public class JDBCUtil {

private static String driver;

private static String dbName;

private static String encoding;

private static String port;

private static String host;

private static String passwrod;

private static String userName;

private static String url;

public void checkInterceptor(Class<?> cl) throws Exception {

boolean flag = cl.isAnnotationPresent(JDBCAnnotation.class);

if (flag) {

JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);

driver = jdbcAnnotation.driver();

dbName = jdbcAnnotation.dbName();

encoding = jdbcAnnotation.encoding();

port = jdbcAnnotation.port();

host = jdbcAnnotation.host();

userName = jdbcAnnotation.userName();

passwrod = jdbcAnnotation.password();

url = "jdbc:mysql://" + host + ":" + port + "/" + dbName + "?characterEncoding=" + encoding;

System.out.println("JDBCUtil加载注释完成...");

}

}

public JDBCUtil() {

try {

checkInterceptor(JDBCUtil.class);

} catch (Exception e) {

e.printStackTrace();

}

}

public static String getDriver() {

return driver;

}

public static void setDriver(String driver) {

JDBCUtil.driver = driver;

}

public static String getDbName() {

return dbName;

}

public static void setDbName(String dbName) {

JDBCUtil.dbName = dbName;

}

public static String getEncoding() {

return encoding;

}

public static void setEncoding(String encoding) {

JDBCUtil.encoding = encoding;

}

public static String getPort() {

return port;

}

public static void setPort(String port) {

JDBCUtil.port = port;

}

public static String getHost() {

return host;

}

public static void setHost(String host) {

JDBCUtil.host = host;

}

public static String getPasswrod() {

return passwrod;

}

public static void setPasswrod(String passwrod) {

JDBCUtil.passwrod = passwrod;

}

public static String getUserName() {

return userName;

}

public static void setUserName(String userName) {

JDBCUtil.userName = userName;

}

public static String getUrl() {

return url;

}

public static void setUrl(String url) {

JDBCUtil.url = url;

}

}

/java_annotation/src/com/b510/hongten/jdbc/JDBCTest.java

复制代码 代码如下:

/**

*

*/

package com.b510.hongten.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

/**

*

* @author Hongten</br>

* @date 2012-7-16

*

*/

public class JDBCTest {

@SuppressWarnings("static-access")

public static void main(String[] args) {

JDBCUtil jdbcUtil = new JDBCUtil();

String sql = "select * from mymails";

try {

Class.forName(jdbcUtil.getDriver());

Connection conn = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());

PreparedStatement ps = conn.prepareStatement(sql);

ResultSet rs = ps.executeQuery();

while (rs.next()) {

System.out.println("id : " + rs.getInt(1) + " name : " + rs.getString(2) + " mail : " + rs.getString(3));

}

// 关闭记录集

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

// 关闭声明

if (ps != null) {

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

// 关闭链接对象

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类