หากคุณต้องการทราบว่า Java Annotation คืออะไร? คุณสามารถดูก่อน: "http://www.infoq.com/articles/Annotation-Hammer"
นี่คือตัวอย่างที่ฉันทำ:
โครงสร้างโครงการ:
ผลการดำเนินงาน:
================================================== ==
ส่วนรหัส:
หมายเหตุ: หลายๆ คนคงจะพิจารณาคำถามนี้ว่า "จุดประสงค์ในการทำเช่นนี้คืออะไร เราสามารถสร้างไฟล์กำหนดค่าได้ (xml, คุณสมบัติ ฯลฯ) ซึ่งไม่สะดวกไปกว่านี้... หรือ
เขียนข้อมูลการกำหนดค่าของเราลงในโปรแกรมโดยตรง... วิธีนี้ความคิดเห็นที่เราเขียนจะไม่ถูกแยกวิเคราะห์.."
แต่ข้อดีและข้อเสียของไฟล์คำอธิบายประกอบและการกำหนดค่า เช่น xml และคุณสมบัติคืออะไร
ความเห็นส่วนตัว: เวลาเขียนคอมเม้นท์จะสะดวกกว่า...สามารถปรับปรุงประสิทธิภาพของการพัฒนา Annotation Framework ได้มีประโยชน์ เช่น 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
-
* @ผู้เขียน Hongten
* @วันที่ 10-4-2556
-
@จัดทำเป็นเอกสาร
@การเก็บรักษา (RetentionPolicy.RUNTIME)
@เป้าหมาย(ElementType.TYPE)
สาธารณะ @interface JDBCAnnotation {
ไดรเวอร์สตริง () ค่าเริ่มต้น "com.mysql.jdbc.Driver";
สตริง dbName() ค่าเริ่มต้น "";
การเข้ารหัสสตริง () ค่าเริ่มต้น "UTF-8";
พอร์ตสตริง () ค่าเริ่มต้น "3306";
โฮสต์สตริง () ค่าเริ่มต้น "localhost";
สตริงชื่อผู้ใช้() ค่าเริ่มต้น "root";
รหัสผ่านสตริง () ค่าเริ่มต้น "";
-
นำเข้า com.b510.hongten.annotation.JDBCAnnotation;
-
* @ผู้เขียน Hongten
* @วันที่ 2013-4-12
-
@JDBCAnnotation(dbName = "db_lucene", พอร์ต = "3306", โฮสต์ = "192.168.0.119", ชื่อผู้ใช้ = "root", รหัสผ่าน = "root")
JDBCUtil คลาสสาธารณะ {
ไดรเวอร์สตริงคงที่ส่วนตัว
dbName สตริงคงที่ส่วนตัว;
การเข้ารหัสสตริงแบบคงที่ส่วนตัว
พอร์ตสตริงคงที่ส่วนตัว
โฮสต์สตริงคงที่ส่วนตัว
รหัสผ่านสตริงคงที่ส่วนตัว;
ชื่อผู้ใช้สตริงคงที่ส่วนตัว;
URL สตริงคงที่ส่วนตัว;
โมฆะสาธารณะ checkInterceptor (คลาส <?> 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 สาธารณะ () {
พยายาม {
ตรวจสอบInterceptor(JDBCUtil.class);
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
-
-
สาธารณะ getDriver สตริงคงที่ () {
คนขับขากลับ;
-
setDriver โมฆะคงที่สาธารณะ (ไดรเวอร์สตริง) {
JDBCUtil.driver = ไดรเวอร์;
-
สตริงสาธารณะ getDbName() {
กลับ dbName;
-
setDbName เป็นโมฆะคงที่สาธารณะ (String dbName) {
JDBCUtil.dbName = dbName;
-
getEncoding สตริงสาธารณะแบบคงที่ () {
การเข้ารหัสส่งคืน;
-
setEncoding โมฆะคงที่สาธารณะ (การเข้ารหัสสตริง) {
JDBCUtil.encoding = การเข้ารหัส;
-
สาธารณะ getPort สตริงคงที่ () {
พอร์ตส่งคืน;
-
setPort เป็นโมฆะคงที่สาธารณะ (พอร์ต String) {
JDBCUtil.port = พอร์ต;
-
สตริงสาธารณะ getHost() {
ส่งคืนโฮสต์;
-
setHost โมฆะสาธารณะคงที่ (โฮสต์สตริง) {
JDBCUtil.host = โฮสต์;
-
สาธารณะสตริงคงที่ getPasswrod() {
ส่งคืนรหัสผ่าน;
-
โมฆะสาธารณะ setPasswrod (รหัสผ่านสตริง) {
JDBCUtil.passwrod = รหัสผ่าน;
-
สตริงสาธารณะ getUserName() {
ส่งคืนชื่อผู้ใช้;
-
โมฆะสาธารณะคงที่ setUserName (ชื่อผู้ใช้สตริง) {
JDBCUtil.userName = ชื่อผู้ใช้;
-
สตริงสาธารณะ getUrl() {
URL ส่งคืน;
-
setUrl โมฆะคงที่สาธารณะ (URL สตริง) {
JDBCUtil.url = url;
-
-
นำเข้า java.sql.Connection;
นำเข้า java.sql.DriverManager;
นำเข้า java.sql.PreparedStatement;
นำเข้า java.sql.ResultSet;
นำเข้า java.sql.SQLException;
-
-
* @ผู้เขียน หงเตน</br>
* @วันที่ 7-16-2555
-
-
JDBCTest คลาสสาธารณะ {
@SuppressWarnings("การเข้าถึงแบบคงที่")
โมฆะสาธารณะคงหลัก (สตริง [] args) {
JDBCUtil jdbcUtil = JDBCUtil ใหม่();
String sql = "select * จาก mymails";
พยายาม {
Class.forName(jdbcUtil.getDriver());
การเชื่อมต่อการเชื่อมต่อ = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
ReadyStatement 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));
-
//ปิดชุดระเบียน
ถ้า (อาร์เอส != null) {
พยายาม {
rs.ปิด();
} จับ (SQLException e) {
e.printStackTrace();
-
-
//ปิดคำสั่ง
ถ้า (ปล.!= null) {
พยายาม {
ปล.ปิด();
} จับ (SQLException e) {
e.printStackTrace();
-
-
// ปิดอ็อบเจ็กต์ลิงก์
ถ้า (conn != null) {
พยายาม {
conn.ปิด();
} จับ (SQLException e) {
e.printStackTrace();
-
-
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
-
-
-