新闻资讯

新闻资讯 行业动态

Java反射案例(JDBC)

编辑:008     时间:2020-03-09

相信大家都写过jdbc的代码,我贴一小段,大家回顾一下:

Class.forName("com.mysql.jdbc.Driver"); //获取与数据库连接的对象-Connetcion connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/java3y""root""root"); //获取执行sql语句的statement对象 statement = connection.createStatement(); //执行sql语句,拿到结果集 resultSet = statement.executeQuery("SELECT * FROM users");

后来为什么要变成下面这种形式呢?

//获取配置文件的读入流 InputStream inputStream = UtilsDemo.class.getClassLoader().getResourceAsStream("db.properties");

Properties properties = new Properties();
properties.load(inputStream); //获取配置文件的信息 driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password"); //加载驱动类 Class.forName(driver);

理由很简单,人们不想修改代码。只要存在有变动的地方,我写在配置里边,不香吗?但凡有一天,我的username,password,url甚至是数据库都改了,我都能够通过修改配置的方式去实现。

不需要动我丝毫的代码,改下配置就完事了,这就能提供程序的灵活性。

有人可能会问:“那还是要改啊,我改代码也很快啊,你改配置不也是要改吗”。

其实不一样的,我举个例子:

  • 三歪写了一个JDBC组件,把各种配置都写死在代码上,比如上面的driver/username/数据库连接数等等。现在三歪不干了,要跑路了。
  • 敖丙来接手三歪的代码,敖丙刚开始接手项目,公司说要换数据库。敖丙给领导说:这玩意,我改改配置就好了,几分钟完事。
  • 敖丙找了半天都没找到配置的地方,由于三歪写的代码又臭又烂,找了半天才找到入口和对应的位置。

改代码的风险要比改配置大,即便不知道代码的实现都能通过改配置来完成要做的事。

这种就能通过可配的,其内部很可能就是通过反射来做的。

原文链接:https://my.oschina.net/u/3777556/blog/3167226


郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐