java数据库注解_Java Annotation(Java 注解)的实现代码(数据库的连接)

下面是我做的一个demo:

项目结构:

48397947_1.png

运行效果:

48397947_2.png

====================================================

代码部分:

注:很多人会考虑这个问题,“这样做的目的是什么?我们可以做一个配置文件(xml,properties等),不是比这个跟方便...或者说

直接把我们的配置信息写入程序...这样也不会去解析我们写的注释..”

但是annotation和xml,properties等配置文件的优缺点是什么呢..

个人观点:写注释的时候,比较方便...可以提高开发的效率.有用到注释的框架,如:Hibernate,Struts,Spring等

回到原话题,“这样做的目的是什么?“---这里只是做一个demo,让大家知道annotation是怎么一回事儿....在很多我们开发的

过程中,很少用到我们自己定义的注释(Annotation),如果真的用到了,那么这篇blog也许就有帮助了..^_^

====================================================

/java_annotation/src/com/b510/hongten/annotation/JDBCAnnotation.java

复制代码

代码如下:

/**

*

*/

package

com.b510.hongten.annotation;

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 annotation

*

*

@author Hongten

* @date 2013-4-10

*/

@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public

@interface JDBCAnnotation {

String driver() default

"com.mysql.jdbc.Driver";

String dbName() default "";

String encoding() default "UTF-8";

String port() default

"3306";

String host() default "localhost";

String

userName() default "root";

String password() default

"";

}

/java_annotation/src/com/b510/hongten/jdbc/JDBCUtil.java

复制代码

代码如下:

/**

*

*/

package

com.b510.hongten.jdbc;

import

com.b510.hongten.annotation.JDBCAnnotation;

/**

* @author

Hongten

* @date 2013-4-12

*/

@JDBCAnnotation(dbName = "db_lucene",

port = "3306", host = "192.168.0.119", userName = "root", password =

"root")

public class JDBCUtil {

private static String

driver;

private static String dbName;

private static String

encoding;

private static String port;

private static String

host;

private static String passwrod;

private static String

userName;

private static String url;

public void

checkInterceptor(Class> cl) throws Exception {

boolean flag

= cl.isAnnotationPresent(JDBCAnnotation.class);

if (flag)

{

JDBCAnnotation jdbcAnnotation =

cl.getAnnotation(JDBCAnnotation.class);

driver =

jdbcAnnotation.driver();

dbName =

jdbcAnnotation.dbName();

encoding =

jdbcAnnotation.encoding();

port =

jdbcAnnotation.port();

host =

jdbcAnnotation.host();

userName =

jdbcAnnotation.userName();

passwrod =

jdbcAnnotation.password();

url = "jdbc:mysql://" + host + ":" +

port + "/" + dbName + "?characterEncoding=" + encoding;

System.out.println("JDBCUtil加载注释完成...");

}

}

public JDBCUtil() {

try {

checkInterceptor(JDBCUtil.class);

} catch (Exception e)

{

e.printStackTrace();

}

}

public static String getDriver() {

return driver;

}

public static void setDriver(String driver) {

JDBCUtil.driver = driver;

}

public static String getDbName()

{

return dbName;

}

public static void

setDbName(String dbName) {

JDBCUtil.dbName = dbName;

}

public static String getEncoding() {

return

encoding;

}

public static void setEncoding(String encoding)

{

JDBCUtil.encoding = encoding;

}

public static

String getPort() {

return port;

}

public static

void setPort(String port) {

JDBCUtil.port = port;

}

public static String getHost() {

return host;

}

public static void setHost(String host) {

JDBCUtil.host = host;

}

public static String getPasswrod()

{

return passwrod;

}

public static void

setPasswrod(String passwrod) {

JDBCUtil.passwrod = passwrod;

}

public static String getUserName() {

return

userName;

}

public static void setUserName(String userName)

{

JDBCUtil.userName = userName;

}

public static

String getUrl() {

return url;

}

public static

void setUrl(String url) {

JDBCUtil.url = url;

}

}

/java_annotation/src/com/b510/hongten/jdbc/JDBCTest.java

复制代码

代码如下:

/**

*

*/

package

com.b510.hongten.jdbc;

import java.sql.Connection;

import

java.sql.DriverManager;

import java.sql.PreparedStatement;

import

java.sql.ResultSet;

import java.sql.SQLException;

/**

*

*

@author Hongten

* @date 2012-7-16

*

*/

public

class JDBCTest {

@SuppressWarnings("static-access")

public

static void main(String[] args) {

JDBCUtil jdbcUtil = new

JDBCUtil();

String sql = "select * from mymails";

try

{

Class.forName(jdbcUtil.getDriver());

Connection conn = DriverManager.getConnection(jdbcUtil.getUrl(),

jdbcUtil.getUserName(), jdbcUtil.getPasswrod());

PreparedStatement ps = conn.prepareStatement(sql);

ResultSet rs

= ps.executeQuery();

while (rs.next()) {

System.out.println("id : " + rs.getInt(1) + " name : " + rs.getString(2) + "

mail : " + rs.getString(3));

}

//

关闭记录集

if (rs != null) {

try

{

rs.close();

} catch (SQLException

e) {

e.printStackTrace();

}

}

// 关闭声明

if (ps != null)

{

try {

ps.close();

} catch (SQLException e)

{

e.printStackTrace();

}

}

// 关闭链接对象

if (conn !=

null) {

try {

conn.close();

} catch (SQLException e)

{

e.printStackTrace();

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值