إذا كنت تريد أن تعرف ما هو التعليق التوضيحي لجافا؟ يمكنك إلقاء نظرة أولاً: "http://www.infoq.com/articles/Annotation-Hammer"
وهنا العرض الذي قمت به:
هيكل المشروع:
تأثير العملية:
================================================================================================== ==
جزء الكود:
ملاحظة: سيفكر العديد من الأشخاص في هذا السؤال، "ما هو الغرض من القيام بذلك؟ يمكننا إنشاء ملف تكوين (xml، خصائص، وما إلى ذلك)، وهو ليس أكثر ملاءمة من هذا... أو
اكتب معلومات التكوين الخاصة بنا مباشرةً في البرنامج... وبهذه الطريقة لن يتم تحليل التعليقات التي كتبناها.."
ولكن ما هي مزايا وعيوب التعليقات التوضيحية وملفات التكوين مثل XML والخصائص؟
رأي شخصي: يكون الأمر أكثر ملاءمة عند كتابة التعليقات... يمكن أن يحسن كفاءة التطوير، وتكون أطر التعليقات التوضيحية مفيدة، مثل: السبات، والدعامات، والربيع، وما إلى ذلك.
العودة إلى الموضوع الأصلي، "ما هو الغرض من القيام بذلك؟" --- هذا مجرد عرض توضيحي لإعلام الجميع بمضمون التعليقات التوضيحية.... في العديد من المشاريع التي نقوم بتطويرها
في هذه العملية، نادرًا ما يتم استخدام التعليقات التوضيحية المحددة لدينا، إذا تم استخدامها بالفعل، فقد تكون هذه المدونة مفيدة..^_^
================================================================================================== ==
/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;
/**
* شرح JDBC
*
* @ المؤلف هونغتن
*@التاريخ 2013-4-10
*/
@موثقة
@الاحتفاظ(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface JDBCAnnotation {
سلسلة السائق () الافتراضية "com.mysql.jdbc.Driver"؛
سلسلة dbName() الافتراضية "";
ترميز السلسلة () الافتراضي "UTF-8"؛
منفذ السلسلة () الافتراضي "3306"؛
سلسلة المضيف () الافتراضي "المضيف المحلي"؛
سلسلة اسم المستخدم () الافتراضي "الجذر"؛
سلسلة كلمة المرور () الافتراضية ""؛
}
import com.b510.hongten.annotation.JDBCAnnotation;
/**
* @ المؤلف هونغتن
*@التاريخ 12-4-2013
*/
@JDBCannotation(dbName = "db_lucene"، المنفذ = "3306"، المضيف = "192.168.0.119"، اسم المستخدم = "الجذر"، كلمة المرور = "الجذر")
الطبقة العامة JDBCUtil {
برنامج تشغيل سلسلة ثابت خاص؛
سلسلة ثابتة خاصة dbName؛
ترميز سلسلة ثابتة خاصة؛
منفذ سلسلة ثابت خاص؛
مضيف سلسلة ثابت خاص؛
كلمة مرور سلسلة ثابتة خاصة؛
اسم مستخدم سلسلة ثابت خاص؛
عنوان URL لسلسلة ثابتة خاصة؛
public void checkInterceptor(Class<?> cl) يطرح استثناء {
علامة منطقية = cl.isAnnotationPresent(JDBCAnnotation.class);
إذا (العلم) {
JDBCAnnotation jdbcAnnotation = cl.getAnnotation(JDBCAnnotation.class);
driver = jdbcAnnotation.driver();
dbName = jdbcAnnotation.dbName();
الترميز = jdbcAnnotation.encoding();
port = jdbcAnnotation.port();
المضيف = jdbcAnnotation.host();
userName = jdbcAnnotation.userName();
passwrod = jdbcAnnotation.password();
url = "jdbc:mysql://" + host + ": " + port + "/" + dbName + "?characterEncoding=" + encoding;
System.out.println("اكتمل تحميل تعليقات JDBCUtil...");
}
}
JDBCUtil العامة () {
يحاول {
checkInterceptor(JDBCUtil.class);
} قبض (الاستثناء ه) {
printStackTrace();
}
}
سلسلة ثابتة عامة getDriver () {
سائق العودة؛
}
مجموعة الفراغ الثابت العام (برنامج تشغيل السلسلة) {
JDBCUtil.driver = driver;
}
سلسلة ثابتة عامة getDbName() {
إرجاع اسم dbName؛
}
مجموعة الفراغ الثابت العام (String dbName) {
JDBCUtil.dbName = dbName;
}
سلسلة ثابتة عامة getEncoding() {
ترميز العودة
}
مجموعة الفراغ الثابت العام (ترميز السلسلة) {
JDBCUtil.encoding = encoding;
}
سلسلة ثابتة عامة getPort () {
ميناء العودة
}
مجموعة الفراغ الثابت العام (منفذ السلسلة) {
JDBCUtil.port = port;
}
سلسلة ثابتة عامة getHost () {
عودة المضيف؛
}
مجموعة المضيف العامة الثابتة (مضيف السلسلة) {
JDBCUtil.host = host;
}
سلسلة ثابتة عامة getPasswrod() {
إرجاع كلمة المرور؛
}
مجموعة الفراغ الثابت العام (سلسلة كلمة المرور) {
JDBCUtil.passwrod = passwrod;
}
سلسلة ثابتة عامة getUserName() {
إرجاع اسم المستخدم؛
}
مجموعة المستخدم الثابتة العامة (String userName) {
JDBCUtil.userName = userName;
}
سلسلة ثابتة عامة getUrl() {
عنوان URL للإرجاع؛
}
مجموعة الفراغ الثابت العام (String url) {
JDBCUtil.url = url;
}
}
استيراد java.sql.Connection؛
استيراد java.sql.DriverManager؛
import java.sql.PreparedStatement;
import java.sql.ResultSet;
استيراد java.sql.SQLException؛
/**
*
* @ المؤلف هونغتن </br>
*@التاريخ 16-7-2012
*
*/
الطبقة العامة JDBCTest {
@SuppressWarnings("الوصول الثابت")
public static void main(String[] args) {
JDBCUtil jdbcUtil = new JDBCUtil();
String sql = "select * from mymails";
يحاول {
Class.forName(jdbcUtil.getDriver());
اتصال conn = DriverManager.getConnection(jdbcUtil.getUrl(), jdbcUtil.getUserName(), jdbcUtil.getPasswrod());
PreparedStatement 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 != فارغة) {
يحاول {
rs. Close();
} قبض على (SQLException ه) {
printStackTrace();
}
}
// بيان إغلاق
إذا (ملاحظة!= فارغة) {
يحاول {
ملاحظة: إغلاق ()؛
} قبض على (SQLException ه) {
printStackTrace();
}
}
// أغلق كائن الارتباط
إذا (كون ! = فارغة) {
يحاول {
conn.Close();
} قبض على (SQLException ه) {
printStackTrace();
}
}
} قبض (الاستثناء ه) {
printStackTrace();
}
}
}