Se você quer saber o que é anotação java? Você pode dar uma olhada primeiro: "http://www.infoq.com/articles/Annotation-Hammer"
Aqui está uma demonstração que fiz:
Estrutura do projeto:
Efeito da operação:
================================================= ==
Parte do código:
Nota: Muitas pessoas considerarão esta questão: "Qual é o propósito de fazer isso? Podemos criar um arquivo de configuração (xml, propriedades, etc.), que não é mais conveniente que isso... ou
Escreva nossas informações de configuração diretamente no programa... Desta forma, os comentários que escrevemos não serão analisados.."
Mas quais são as vantagens e desvantagens dos arquivos de anotação e configuração como xml e propriedades?
Opinião pessoal: Ao escrever comentários, é mais conveniente... pode melhorar a eficiência do desenvolvimento. Frameworks de anotação são úteis, como: Hibernate, Struts, Spring, etc.
Voltando ao tópico original, "Qual é o propósito de fazer isso?"---Esta é apenas uma demonstração para que todos saibam do que se trata a anotação.... Em muitos dos projetos que desenvolvemos
No processo, nossas próprias anotações definidas raramente são usadas. Se forem realmente usadas, então este blog pode ser útil..^_^.
================================================= ==
/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java
importar java.lang.annotation.Documented;
importar java.lang.annotation.ElementType;
importar java.lang.annotation.Retention;
importar java.lang.annotation.RetentionPolicy;
importar java.lang.annotation.Target;
/**
* Anotação JDBC
*
* @autor Hongten
* @data 10/04/2013
*/
@Documentado
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface JDBCAnnotation {
String driver() padrão "com.mysql.jdbc.Driver";
String dbName() padrão "";
Codificação de string() padrão "UTF-8";
String port() padrão "3306";
String host() padrão "localhost";
String userName() padrão "root";
String senha() padrão "";
}
importar com.b510.hongten.annotation.JDBCAnnotation;
/**
* @autor Hongten
* @data 12/04/2013
*/
@JDBCAnnotation(dbName = "db_lucene", porta = "3306", host = "192.168.0.119", userName = "root", senha = "root")
classe pública JDBCUtil {
driver de string estático privado;
private static String dbName;
codificação de string estática privada;
porta String estática privada;
host de string estático privado;
senha de String estática privada;
private static String nome_do_usuário;
URL de string estática privada;
public void checkInterceptor(Class<?> cl) lança exceção {
sinalizador booleano = cl.isAnnotationPresent(JDBCAnnotation.class);
se (sinalizador) {
JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);
driver = jdbcAnnotation.driver();
nomedb = jdbcAnnotation.dbName();
codificação = jdbcAnnotation.encoding();
porta = jdbcAnnotation.port();
host = jdbcAnnotation.host();
nome_do_usuário = jdbcAnnotation.nome_do_usuário();
senha = jdbcAnnotation.password();
url = "jdbc:mysql://" + host + ":" + porta + "/" + dbName + "?characterEncoding=" + codificação;
System.out.println("Comentários de carregamento do JDBCUtil concluídos...");
}
}
public JDBCUtil() {
tentar {
checkInterceptor(JDBCUtil.class);
} catch (Exceção e) {
e.printStackTrace();
}
}
string estática pública getDriver() {
motorista de retorno;
}
public static void setDriver(String driver) {
JDBCUtil.driver = driver;
}
string estática pública getDbName() {
return nome_bd;
}
public static void setDbName(String nomedb) {
JDBCUtil.dbName = nomedb;
}
public static String getEncoding() {
codificação de retorno;
}
public static void setEncoding(Codificação de string) {
JDBCUtil.encoding = codificação;
}
public static String getPort() {
porto de retorno;
}
public static void setPort(String porta) {
JDBCUtil.port = porta;
}
string estática pública getHost() {
hospedeiro de retorno;
}
public static void setHost(String host) {
JDBCUtil.host = host;
}
public static String getPasswrod() {
devolver senha;
}
public static void setPasswrod(String senha) {
JDBCUtil.passwrod = senha;
}
public static String getNomeUsuário() {
retornar nome do usuário;
}
public static void setUserName(String nome_do_usuário) {
JDBCUtil.userName = nome do usuário;
}
string estática pública getUrl() {
url de retorno;
}
public static void setUrl(String url) {
JDBCUtil.url = url;
}
}
importar java.sql.Connection;
importar java.sql.DriverManager;
importar java.sql.PreparedStatement;
importar java.sql.ResultSet;
importar java.sql.SQLException;
/**
*
* @autor Hongten</br>
* @data 16/07/2012
*
*/
classe pública JDBCTest {
@SuppressWarnings("acesso estático")
public static void main(String[] args) {
JDBCUtil jdbcUtil = new JDBCUtil();
String sql = "selecione * em meus e-mails";
tentar {
Class.forName(jdbcUtil.getDriver());
Conexão de conexão = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
enquanto (rs.next()) {
System.out.println("id: " + rs.getInt(1) + " nome: " + rs.getString(2) + " correio: " + rs.getString(3));
}
//Fecha o conjunto de registros
if (rs! = nulo) {
tentar {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//fecha a declaração
if (ps! = nulo) {
tentar {
close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//Fecha o objeto link
if (conn! = nulo) {
tentar {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (Exceção e) {
e.printStackTrace();
}
}
}