自定义一个注解来获取数据库的链接

自定义一个注解来获取数据库的链接

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface JdbcInfo {
String driverClass() default “com.mysql.jdbc.Driver”;
String url();
String username() default “root”;
String password() default “1012”;
}


import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;

public class JdbcUtils {
@JdbcInfo(url = “jdbc:mysql://localhost:3306/day16”)
public static Connection getConnection() throws Exception{
//获取字节码文件
Class clazz = JdbcUtils.class;
//获取getConnection()
Method method = clazz.getMethod(“getConnection”, null);
if(method.isAnnotationPresent(JdbcInfo.class)){//判断方法上是否有注解
//获取注解
JdbcInfo jdbcInfo = method.getAnnotation(JdbcInfo.class);
//获取四大参数
String driverClass = jdbcInfo.driverClass();
String url = jdbcInfo.url();
String username = jdbcInfo.username();
String password = jdbcInfo.password();
//注册驱动
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url, username, password);
//获取连接
return connection;
}
return null;
}
public static void main(String[] args) throws Exception {
System.out.println(getConnection());
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100805.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • XML解析___使用Dom or使用Sax

    XML解析___使用Dom or使用Sax

    2021年10月3日
    220
  • 诺基亚面向开发商推出下一代手机游戏平台

    诺基亚面向开发商推出下一代手机游戏平台转自:新浪游戏http://tech.sina.com.cn/t/2005-12-21/1748799015.shtml 北京时间12月21日消息,在下一代手机游戏研讨会上,芬兰移动通信巨头诺基亚公司首次向16家诺基亚第一批游戏开发商展示了其下一代手机游戏开发平台。下一代手机游戏研讨会于2005年12月1日到2日在赫尔辛基举行,于12月7日到8日在温哥华举行。 通过下一代手机游

    2022年5月18日
    38
  • OSTaskCreate创建失败原因之一

    OSTaskCreate创建失败原因之一在μcos中调用这个任务创建函数发现失败,debug进去,发现在err=OS_TCBInit(prio,psp,(OS_STK*)0,0u,0u,(void*)0,0u);后err=OS_ERR_TASK_NO_MORE_TCB这是因为在创建任务之初没有调用OSInit();…

    2022年9月3日
    2
  • 【离散数学】单射、满射和双射的定义、区别

    【离散数学】单射、满射和双射的定义、区别满射:对任意b,存在a满足f(a)=b~即:值域y是满的,每个y都有x对应,不存在某个y没有x对应的情况~单射:(one-to-onefunction)一对一函数,x不同则y不同~即:没有一个x对应两个y,也没有一个y有对应两个x~双射:既是满射,也是单射~即:每个y都有x对应,而且都是一一对应~…

    2022年6月10日
    220
  • laravel中不使用 remember_token时退出报错,如何解决?

    laravel中不使用 remember_token时退出报错,如何解决?

    2021年10月28日
    52
  • 深度学习100例-循环神经网络(LSTM)实现股票预测 | 第10天

    深度学习100例-循环神经网络(LSTM)实现股票预测 | 第10天文章目录一、前言二、LSTM的是什么三、准备工作1.设置GPU2.设置相关参数3.加载数据四、数据预处理1.归一化2.时间戳函数五、构建模型六、激活模型七、训练模型八、结果可视化1.绘制loss图2.预测3.评估一、前言今天是第10天,我们将使用LSTM完成股票开盘价格的预测,最后的R2可达到0.74,相对传统的RNN的0.72提高了两个百分点。我的环境:语言环境:Python3.6.5编译器:jupyternotebook深度学习环境:TensorFlow2.4.1来自专栏:【深度学习

    2022年6月16日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号