Если вы хотите знать, что такое Java-аннотация? Вы можете сначала посмотреть: "http://www.infoq.com/articles/Annotation-Hammer"
Вот демо, которое я сделал:
Структура проекта:
Эффект операции:
=============================================== ==
Часть кода:
Примечание. Многие люди задумаются над вопросом: «Какова цель этого? Мы можем создать файл конфигурации (xml, свойства и т. д.), что не удобнее этого... или
Запишите нашу информацию о конфигурации непосредственно в программу... Таким образом, написанные нами комментарии не будут проанализированы."
Но каковы преимущества и недостатки файлов аннотаций и конфигурации, таких как XML и свойства?
Личное мнение: При написании комментариев удобнее...полезны фреймворки аннотаций, такие как: Hibernate, Struts, Spring и т.д.
Вернемся к исходной теме: «Какова цель этого?» — Это всего лишь демонстрация, чтобы все знали, что такое аннотации… Во многих проектах, которые мы разрабатываем,
При этом наши собственные аннотации используются редко. Если они действительно используются, то этот блог может оказаться полезным..^_^.
=============================================== ==
/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java
импортировать java.lang.annotation.Documented;
импортировать java.lang.annotation.ElementType;
импортировать java.lang.annotation.Retention;
импортировать java.lang.annotation.RetentionPolicy;
импортировать java.lang.annotation.Target;
/**
* Аннотация JDBC
*
* @author Хонгтен
* @дата 10 апреля 2013 г.
*/
@Документировано
@Retention(RetentionPolicy.RUNTIME)
@Target(ТипЭлемента.ТИП)
общественный @interface JDBCAnnotation {
Строковый драйвер() по умолчанию «com.mysql.jdbc.Driver»;
Строка dbName() по умолчанию "";
Кодировка строки() по умолчанию "UTF-8";
Строка port() по умолчанию «3306»;
Строка хост() по умолчанию «localhost»;
Строка userName() по умолчанию «корень»;
Строка пароля() по умолчанию "";
}
импортировать com.b510.hongten.annotation.JDBCAnnotation;
/**
* @author Хонгтен
* @дата 12 апреля 2013 г.
*/
@JDBCAnnotation(dbName = "db_lucene", порт = "3306", хост = "192.168.0.119", имя пользователя = "root", пароль = "root")
общественный класс JDBCUtil {
частный статический строковый драйвер;
частная статическая строка dbName;
частная статическая строковая кодировка;
частный статический строковый порт;
частный статический строковый хост;
частный статический строковый пароль;
частная статическая строка userName;
частный статический URL-адрес строки;
public void checkInterceptor(Class<?> cl) выдает исключение {
логический флаг = cl.isAnnotationPresent(JDBCAnnotation.class);
если (флаг) {
JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);
драйвер = jdbcAnnotation.driver();
dbName = jdbcAnnotation.dbName();
кодирование = jdbcAnnotation.encoding();
порт = jdbcAnnotation.port();
хост = jdbcAnnotation.host();
имя_пользователя = jdbcAnnotation.userName();
passwrod = jdbcAnnotation.password();
url = "jdbc:mysql://" + хост + ":" + порт + "/" + dbName + "?characterEncoding=" + кодировка;
System.out.println("Загрузка комментариев JDBCUtil завершена...");
}
}
общественный JDBCUtil() {
пытаться {
checkInterceptor(JDBCUtil.class);
} catch (Исключение е) {
е.printStackTrace();
}
}
публичная статическая строка getDriver() {
возвратный водитель;
}
public static void setDriver (String driver) {
JDBCUtil.driver = драйвер;
}
общедоступная статическая строка getDbName() {
вернуть имя базы данных;
}
public static void setDbName(String dbName) {
JDBCUtil.dbName = имя_базы данных;
}
публичная статическая строка getEncoding() {
возвратная кодировка;
}
public static void setEncoding (кодирование строки) {
JDBCUtil.encoding = кодировка;
}
общественная статическая строка getPort() {
обратный порт;
}
public static void setPort (String port) {
JDBCUtil.port = порт;
}
общественная статическая строка getHost() {
вернуть хост;
}
public static void setHost (String хост) {
JDBCUtil.host = хост;
}
общественная статическая строка getPasswrod() {
вернуть пароль;
}
public static void setPasswrod(String passwrod) {
JDBCUtil.passwrod = пароль;
}
общедоступная статическая строка getUserName() {
вернуть имя пользователя;
}
public static void setUserName(String userName) {
JDBCUtil.userName = имя пользователя;
}
публичная статическая строка getUrl() {
обратный URL;
}
public static void setUrl(String url) {
JDBCUtil.url = URL;
}
}
импортировать java.sql.Connection;
импортировать java.sql.DriverManager;
импортировать java.sql.PreparedStatement;
импортировать java.sql.ResultSet;
импортировать java.sql.SQLException;
/**
*
* @author Хунтен</br>
* @дата 16 июля 2012 г.
*
*/
общественный класс JDBCTest {
@SuppressWarnings("статический доступ")
public static void main(String[] args) {
JDBCUtil jdbcUtil = новый JDBCUtil ();
String sql = "выбрать * из моих писем";
пытаться {
Class.forName(jdbcUtil.getDriver());
Соединение conn = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
ReadedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
в то время как (rs.next()) {
System.out.println("id: " + rs.getInt(1) + " name: " + rs.getString(2) + " mail : " + rs.getString(3));
}
//Закрываем набор записей
если (rs != ноль) {
пытаться {
рс.закрыть();
} catch (SQLException e) {
е.printStackTrace();
}
}
// оператор закрытия
если (пс != ноль) {
пытаться {
пс.закрыть();
} catch (SQLException e) {
е.printStackTrace();
}
}
// Закрываем объект ссылки
если (conn != ноль) {
пытаться {
конн.закрыть();
} catch (SQLException e) {
е.printStackTrace();
}
}
} catch (Исключение е) {
е.printStackTrace();
}
}
}