自定义java注解(二) 实现DBHelper中的getCon( )得到数据库连接
来源:互联网 发布:mac连上wifi打不开网页 编辑:程序博客网 时间:2024/04/27 22:06
- 定义一个DBinfo 注解
@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Inheritedpublic @interface DBinfo { public String URL() ; public String Username() ; public String Password() ; public String Driver() ;}
- 新建DBHelper,实现 getCon方法 注意导包
public class DBHelper { @DBinfo(URL="jdbc:mysql://localhost:3306/test",Username="root",Password="Rindy_RR",Driver="com.mysql.jdbc.Driver") public Connection getCon(String URL,String Username,String Password,String Driver){ Connection con=null; try{ Class.forName(Driver).newInstance(); con=DriverManager.getConnection(URL,Username,Password); } catch (Exception e) { throw new RuntimeException(e); } //直接在控制台输出,看con是否成功得到 System.out.println(con.toString()); return con; }}
- 解析框架的实现
public class ParseDBinfo { public void parseMethod(Class clazz) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{ Object obj = clazz.newInstance(); Method[] methods=clazz.getDeclaredMethods(); for(Method m:methods){ DBinfo dbinfo=m.getAnnotation(DBinfo.class); if(dbinfo!=null){ String URL=dbinfo.URL(); String Username=dbinfo.Username(); String Password=dbinfo.Password(); String Driver=dbinfo.Driver(); //容错处理 if(URL!=null && Username!=null && Password!=null && Driver!=null && !URL.equals("") && !Username.equals("") && !Password.equals("") && !Driver.equals("")){ m.invoke(obj, URL,Username,Password,Driver); }else{ System.out.println("参数不能为空!"); } } } }}
- 测试类
public void testApp() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { ParseDBinfo pb=new ParseDBinfo(); pb.parseMethod(DBHelper.class); }
测试结果:
注意getCon( ) 的参数不要写错了,根据自己实际的mysql配置来,其实多写几次,还是很好理解的。下一次,自定义个Junit,@Test @Before @After
1 0
- 自定义java注解(二) 实现DBHelper中的getCon( )得到数据库连接
- Java注解二 自定义注解
- Java中的自定义注解
- Java中的自定义注解
- Java中的自定义注解
- java注解(二)自定义注解……
- Android中的自定义注解(反射实现-运行时注解)
- Android中的自定义注解(反射实现-运行时注解)
- Android中的自定义注解(反射实现-运行时注解)
- Android中的自定义注解(反射实现-运行时注解)
- Android中的自定义注解(反射实现-运行时注解)
- 自定义注解(二)
- 注解二之Java自定义注解
- WinRT/Metro SQLite 数据库连接方法(DBHelper)
- java数据库连接(二)
- java中的注解以及自定义注解
- 自定义java注解(三) 实现Junit中的@Test、@Before、@After
- java 自定义注解 spring aop 实现注解
- 地图与定位
- 倒油问题之深搜和广搜算法
- POJ 3621(0/1分数规划,二分) Sightseeing Cows
- Ubuntu下制作ISO镜像的U盘启动盘方法
- 爬虫登陆极客学院,并下载视频
- 自定义java注解(二) 实现DBHelper中的getCon( )得到数据库连接
- hive 实战笔记case4
- linux/windows 命令行,如何退出某条命令。如何重新执行另一命令
- CNN卷积神经网络新想法
- 集中关注的焦点。云计算捌说敢惩惩
- Android指南针之加速度传感器地磁传感器-android学习之旅(67)
- Swift学习笔记(二十二)——字典的基本操作
- SQL增删改查——实战
- 设计模式-创建型之工厂模式