五、一步步做一个查询

1.准备一个数据源

  1. DruidDataSource dataSource = null;
  2. try {
  3. String druidpath = TEnv.getSystemPath("conf" + File.separator + "datasource.properties");
  4. Properties druidProperites = TProperties.getProperties(new File(druidpath));
  5. dataSource = TObject.cast(DruidDataSourceFactory.createDataSource(druidProperites));
  6. dataSource.init();
  7. Logger.info("Database connection pool init finished");
  8. } catch (Exception e) {
  9. Logger.error(e);
  10. }

上面我们用阿里的Druid框架创建了一个数据源.


2.New 一个 JdbcOperator 对象

  1. JdbcOperate jOperate = new JdbcOperate(dataSource);

现在我们就拥有了一个JdbcOperator对象了。


3.准备SQL

  1. String sql = "select * from sc_script where PackagePath=::packagePath and version=::version";

这个 SQL 有两个参数:PackagePathversion


4.准备数据

  1. HashMap<String, Object> paramMap = new HashMap<String, Object>();
  2. paramMap.put("packagePath", "org.hocate.test");

到这里很多同学就奇怪了,明明有两个参数为什么只准备了一个packagePath参数呢?答案: Voovan ORM特性:自动移除无对应参数的 SQL 查询条件所以在实际执行 sql 的时候 and version=::version条件会被自动过滤掉.


5.执行查询并活的结果

  1. List<Map<String, Object>> manyMapsMapParam = jOperate.queryMapList(sql, paramMap);
  2. Logger.simple("Map参数 => 返回List<Map>: " + manyMapsMapParam);