Si vous voulez savoir ce qu’est l’annotation Java ? Vous pouvez d'abord y jeter un oeil : "http://www.infoq.com/articles/Annotation-Hammer"
Voici une démo que j'ai faite :
Structure du projet :
Effet de fonctionnement :
=================================================== ==
Partie codée :
Remarque : De nombreuses personnes se poseront la question suivante : « Quel est le but de faire cela ? Nous pouvons créer un fichier de configuration (xml, propriétés, etc.), ce qui n'est pas plus pratique que cela... ou
Écrivez nos informations de configuration directement dans le programme... De cette façon, les commentaires que nous avons écrits ne seront pas analysés.."
Mais quels sont les avantages et les inconvénients des fichiers d'annotation et de configuration tels que XML et les propriétés ?
Opinion personnelle : lors de la rédaction de commentaires, c'est plus pratique... cela peut améliorer l'efficacité du développement. Les frameworks d'annotation sont utiles, tels que : Hibernate, Struts, Spring, etc.
Retour au sujet d'origine, "Quel est le but de faire cela ?" --- Ceci est juste une démo pour que tout le monde sache ce qu'est l'annotation.... Dans de nombreux projets que nous développons
Dans le processus, nos propres annotations définies sont rarement utilisées. Si elles sont réellement utilisées, alors ce blog peut être utile..^_^.
=================================================== ==
/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java
importer java.lang.annotation.Documented ;
importer java.lang.annotation.ElementType ;
importer java.lang.annotation.Retention ;
importer java.lang.annotation.RetentionPolicy ;
importer java.lang.annotation.Target ;
/**
*Annotation JDBC
*
* @auteur Hongten
* @date 2013-4-10
*/
@Documenté
@Rétention(RetentionPolicy.RUNTIME)
@Target (ElementType.TYPE)
public @interface JDBCAnotation {
String driver() par défaut "com.mysql.jdbc.Driver" ;
String dbName() par défaut "" ;
Encodage de chaîne() par défaut "UTF-8" ;
Chaîne port() par défaut "3306" ;
String host() par défaut "localhost" ;
String userName() par défaut "root" ;
Chaîne password() par défaut "" ;
}
importer com.b510.hongten.annotation.JDBCAnnotation;
/**
* @auteur Hongten
* @date 2013-4-12
*/
@JDBCAnnotation(dbName = "db_lucene", port = "3306", hôte = "192.168.0.119", userName = "root", mot de passe = "root")
classe publique JDBCUtil {
pilote de chaîne statique privé ;
chaîne statique privée nom de base de données ;
Encodage de chaîne statique privé ;
port de chaîne statique privé ;
hôte de chaîne statique privé ;
Mot de passe de chaîne statique privé ;
nom d'utilisateur de chaîne statique privée ;
URL de chaîne statique privée ;
public void checkInterceptor(Class<?> cl) lève une exception {
indicateur booléen = cl.isAnnotationPresent(JDBCAnnotation.class);
si (drapeau) {
JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);
pilote = jdbcAnnotation.driver();
dbName = jdbcAnnotation.dbName();
encodage = jdbcAnnotation.encoding();
port = jdbcAnnotation.port();
hôte = jdbcAnnotation.host();
userName = jdbcAnnotation.userName();
mot de passe = jdbcAnnotation.password();
url = "jdbc:mysql://" + hôte + ":" + port + "/" + dbName + "?characterEncoding=" + encodage ;
System.out.println("JDBCUtil chargement des commentaires terminé...");
}
}
public JDBCUtil() {
essayer {
checkInterceptor(JDBCUtil.class);
} attraper (Exception e) {
e.printStackTrace();
}
}
chaîne statique publique getDriver() {
chauffeur de retour ;
}
public static void setDriver (pilote de chaîne) {
JDBCUtil.driver = pilote ;
}
chaîne statique publique getDbName() {
retourner le nom de base de données ;
}
public static void setDbName (String dbName) {
JDBCUtil.dbName = dbName ;
}
chaîne statique publique getEncoding() {
codage de retour ;
}
public static void setEncoding (codage de chaîne) {
JDBCUtil.encoding = encodage ;
}
chaîne statique publique getPort() {
port de retour ;
}
public static void setPort (port de chaîne) {
JDBCUtil.port = port ;
}
chaîne statique publique getHost() {
renvoyer l'hôte ;
}
public static void setHost (hôte de chaîne) {
JDBCUtil.host = hôte ;
}
chaîne statique publique getPasswrod() {
renvoyer le mot de passe ;
}
public static void setPasswrod (String passwrod) {
JDBCUtil.passwrod = mot de passe ;
}
chaîne statique publique getUserName() {
retourner le nom d'utilisateur ;
}
public static void setUserName (String userName) {
JDBCUtil.userName = userName ;
}
chaîne statique publique getUrl() {
URL de retour ;
}
public static void setUrl (URL de chaîne) {
JDBCUtil.url = url;
}
}
importer java.sql.Connection ;
importer java.sql.DriverManager ;
importer java.sql.PreparedStatement ;
importer java.sql.ResultSet ;
importer java.sql.SQLException ;
/**
*
* @auteur Hongten</br>
* @date 2012-7-16
*
*/
classe publique JDBCTest {
@SuppressWarnings("accès statique")
public static void main (String[] arguments) {
JDBCUtil jdbcUtil = new JDBCUtil();
String sql = "select * from mymails" ;
essayer {
Class.forName(jdbcUtil.getDriver());
Connexion conn = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
tandis que (rs.next()) {
System.out.println("id : " + rs.getInt(1) + " nom : " + rs.getString(2) + " mail : " + rs.getString(3));
}
//Ferme le jeu d'enregistrements
si (rs != nul) {
essayer {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// ferme l'instruction
si (ps != nul) {
essayer {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// Ferme l'objet lien
si (conn != null) {
essayer {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} attraper (Exception e) {
e.printStackTrace();
}
}
}