一、fork源码库
为了方便记录以及查看一些历史的提交信息,我先在github上fork了这个源码库。
 他的原始源码库位置为HikariCP源码位置
 在fork到我的源码库之后,我就可以用git clone拉取下来,然后在我本地打开,做一些修改和笔记。然后提交到我自己的源码库上面了。
 这样比起你直接下载源码zip包的好处就是,你可以看到每一行代码的提交信息,得以知道他们提交的时候修改了什么以及提交的注释等等。
 
二、clone源码,编译运行
使用git clone命令把源码拉取到本地,然后用idea打开。
 打开之后常规操作,设置maven库位置,设置jdk版本等等一堆事情。
三、修改依赖,引入mysql驱动
在测试之前,我们先看一眼他的pom文件,我们发现没有mysql的依赖。他默认的是pg。
 
 而我本地没有pg的服务,所以我又引入了一个mysql的驱动。不然没法读取我的表。
 
 此时我们就具备了一切前置工作。
四、编写测试类,运行测试
我新建了一个包,下面写一个demo类。
public class Demo {
   private static final String querySql = "select * from file_info where id=94";
   public static void main(String[] args) throws SQLException {
	  // // 获取数据源,执行sql,输出执行结果
      HikariDataSource ds = getDs();
      Connection connection = ds.getConnection();
      PreparedStatement preparedStatement = connection.prepareStatement(querySql);
      try(ResultSet resultSet = preparedStatement.executeQuery()) {
         while (resultSet.next()){
            System.out.println(resultSet.getMetaData().getColumnName(1));
            System.out.println(resultSet.getMetaData().getColumnName(2));
            System.out.println(resultSet.getMetaData().getColumnName(3));
            System.out.println(resultSet.getMetaData().getColumnName(4));
         }
      }
   }
   // 获取数据源
   public static HikariDataSource getDs() {
      HikariConfig hikariConfig = new HikariConfig();
      hikariConfig.setJdbcUrl("jdbc:mysql://ip:3306/表名?useUnicode=true&useSSL=false&characterEncoding=utf8");
      hikariConfig.setUsername("root");
      hikariConfig.setPassword("123456");
      hikariConfig.setMaximumPoolSize(10);
      hikariConfig.setMinimumIdle(5);
      hikariConfig.setLeakDetectionThreshold(2000);
      hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
      return new HikariDataSource(hikariConfig);
   }
}
然后启动即可,我们预期是输出我们这个表的前四列的名字。然后发现报错了。
 You need to run the CLI build and you need target/classes in your classpath to run.
 这是我没有编译我的源码,编译一下就好了。简单编译,绕过测试类。
 这个问题在github上的issues列表,开源作者也有描述。启动异常issues
 
 此时就发现可以正常输出了。
 
 而且和我数据表的字段是对的上的。
 
 此时,我们的源码阅读第一步,搭建环境就完成了。我们提交一下代码区github,看看能不能提交上去。
五、提交改动
git commit push就OK了,就提交到你fork的本地库了。



















