Jika Anda ingin tahu apa itu anotasi java? Anda dapat melihat terlebih dahulu: "http://www.infoq.com/articles/Annotation-Hammer"
Berikut demo yang saya buat:
Struktur proyek:
Efek operasi:
==================== ==
Bagian kode:
Catatan: Banyak orang akan mempertimbangkan pertanyaan ini, "Apa tujuan melakukan ini? Kita dapat membuat file konfigurasi (xml, properti, dll.), yang tidak lebih nyaman dari ini... atau
Tulis informasi konfigurasi kami langsung ke dalam program... Dengan cara ini komentar yang kami tulis tidak akan diuraikan.."
Namun apa kelebihan dan kekurangan file anotasi dan konfigurasi seperti xml dan properti?
Pendapat pribadi: Saat menulis komentar, akan lebih nyaman...dapat meningkatkan efisiensi pengembangan Kerangka anotasi yang berguna, seperti: Hibernate, Struts, Spring, dll.
Kembali ke topik awal, "Apa tujuan melakukan ini?"---Ini hanyalah demo agar semua orang mengetahui apa itu anotasi.... Di banyak proyek yang kami kembangkan
Dalam prosesnya, anotasi yang kami tentukan sendiri jarang digunakan. Jika benar-benar digunakan, mungkin blog ini dapat membantu..^_^
==================== ==
/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java
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;
/**
* Anotasi JDBC
*
* @penulis Hongten
* @tanggal 10-4-2013
*/
@Didokumentasikan
@Retensi(Kebijakan Retensi.RUNTIME)
@Target(ElementType.TYPE)
publik @interface JDBCAnnotation {
String driver() default "com.mysql.jdbc.Driver";
String dbNama() default "";
Pengkodean string() default "UTF-8";
Pelabuhan string() default "3306";
String host() default "localhost";
String nama pengguna() default "root";
Kata sandi string() default "";
}
import com.b510.hongten.annotation.JDBCAnnotation;
/**
* @penulis Hongten
* @tanggal 12-4-2013
*/
@JDBCAnnotation(dbName = "db_lucene", port = "3306", host = "192.168.0.119", userName = "root", kata sandi = "root")
kelas publik JDBCUtil {
driver String statis pribadi;
String dbName statis pribadi;
pengkodean String statis pribadi;
port String statis pribadi;
host String statis pribadi;
kata sandi String statis pribadi;
nama pengguna String statis pribadi;
url String statis pribadi;
public void checkInterceptor(Kelas<?> cl) melempar Pengecualian {
bendera boolean = cl.isAnnotationPresent(JDBCAnnotation.class);
jika (bendera) {
JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);
pengemudi = jdbcAnnotation.driver();
dbName = jdbcAnnotation.dbName();
pengkodean = jdbcAnnotation.encoding();
port = jdbcAnnotation.port();
host = jdbcAnnotation.host();
namapengguna = jdbcAnnotation.namapengguna();
kata sandi = jdbcAnnotation.password();
url = "jdbc:mysql://" + host + ":" + port + "/" + dbName + "?characterEncoding=" + pengkodean;
System.out.println("JDBCUsampai pemuatan komentar selesai...");
}
}
publik JDBCUtil() {
mencoba {
checkInterceptor(JDBCUtil.kelas);
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
String statis publik getDriver() {
pengemudi kembali;
}
public static void setDriver(Pengandar string) {
JDBCUtil.driver = pengemudi;
}
String statis publik getDbName() {
kembalikan dbName;
}
public static void setDbName(String dbName) {
JDBCUtil.dbName = Nama db;
}
String statis publik getEncoding() {
mengembalikan pengkodean;
}
public static void setEncoding(Pengkodean string) {
JDBCUtil.encoding = pengkodean;
}
String statis publik getPort() {
pelabuhan kembali;
}
public static void setPort(Port string) {
JDBCUtil.port = pelabuhan;
}
String statis publik getHost() {
kembali menjadi tuan rumah;
}
public static void setHost(String host) {
JDBCUtil.host = tuan rumah;
}
String statis publik getPasswrod() {
kembalikan kata sandi;
}
public static void setPasswrod(String kata sandi) {
JDBCUtil.passwrod = kata sandi;
}
String statis publik getUserName() {
kembalikan nama pengguna;
}
public static void setUserName(String nama pengguna) {
JDBCUtil.userName = nama pengguna;
}
String statis publik getUrl() {
kembalikan url;
}
public static void setUrl(String url) {
JDBCUtil.url = url;
}
}
impor java.sql.Koneksi;
impor java.sql.DriverManager;
impor java.sql.PreparedStatement;
impor java.sql.ResultSet;
impor java.sql.SQLException;
/**
*
* @penulis Hongten</br>
* @tanggal 16-7-2012
*
*/
Tes JDBCT kelas publik {
@SuppressWarnings("akses statis")
public static void main(String[] args) {
JDBCUtil jdbcUtil = JDBCUtil baru();
String sql = "pilih * dari email saya";
mencoba {
Kelas.forName(jdbcUtil.getDriver());
Sambungan koneksi = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
PreparedStatement ps = samb.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("id : " + rs.getInt(1) + " nama : " + rs.getString(2) + " surat : " + rs.getString(3));
}
//Tutup kumpulan data
jika (rs != nol) {
mencoba {
rs.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
// tutup pernyataan
jika (ps != nol) {
mencoba {
ps.tutup();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
// Tutup objek tautan
jika (sambungan != nol) {
mencoba {
samb.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
}