读取配置文件,创建数据源

使用Druid

读取Druid.properties

  1. 导入druid-1.0.9.jar包
  2. 使用 InputStream is = class.getClassLoader().getResourceAsStream(“druid.properties”)
  3. Properties pro = new Porperties()
    pro.load(is)
    DataSource ds = DruidDataSourceFactory.createDataSource(pro)
  4. getClassLoader()返回类的类加载器
  5. getResourceAsStream返回用于读取指定资源的输入流。

而在c3p0中,

使用ComboPooledDataSource ds = new ComboPooledDataSource(pro); 加载数据源DataSource

使用JdbcTemplate
同Query Runner,在获取连接对象时所用方法不同
JdbcTemplate template = new JdbcTemplate(JdbcUtil.getDataSource());

使用QueryRunner

使用JDBC技术是一件繁琐的事情,为了使数据库更加高效,有一种简化jdbc技术的操作--DBUtils。DbUtils(org.apache.commons.dbutils.DbUtils)是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。DbUtils类主要负责装载驱动、关闭连接的常规工作。

 QreryRunner类(org.apache.commons.dbutils.QueryRunner) 是Dbutils的核心类之一,它显著的简化了SQL查询,并与ResultSetHandler协同工作将使编码量大为减少。它包含以下几个方法:

1. query(Connection conn, String sql, Object[] params, ResultSetHandler rsh):执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。
2. query(String sql, Object[] params, ResultSetHandler rsh):方法本身不提供数据库连接,执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。
3. query(Connection conn, String sql, ResultSetHandler rsh):执行无需参数的选择查询。
4. update(Connection conn, String sql, Object[] params):被用来执行插入、更新或删除(DML)操作。

其中ResultSetHandler接口(org.apache.commons.dbutils.ResultSethandler)执行处理一个结果集对象,将数据转变并处理为任何一种形式,供其他应用使用。实现类如下:

- ArrayHandler:把结果集中的第一行数据转成对象数组。
- ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
- BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
- BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。//重点
- MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。//重点
- MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
- ColumnListHandler:将结果集中某一列的数据存放到List中。
- KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List<Map>),再把这些map再存到一个map里,其key为指定的列。
- ScalarHandler:将结果集第一行的某一列放到某个对象中。//重点
queryRunner = new QueryRunner(ds);
连接池:
我们在实际开发中都会使用连接池

   因为他可以减少我们获取连接所消耗的时间。
mybatis中的连接池
mybatis连接池提供了3中方式的配置:

     配置的位置:

        主配置文件SalMapConfig.xml中的DataSource标签,type属性就是表示采用何种连接池方式

type属性取值:

POOLED  采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现

  UNPOOLED  采用传统的获取连接的方式,虽然也实现了javax.sql.DataSource,但是没有使用池的思想。

  JNDI  采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSource不一样

              如果不是web或maven的war工程,是不能使用的

              我们课程使用的是tomcat服务器,采用连接池就是dbcp连接池

getSharedPreferences 数据存在哪里 getdatasource_数据

查看文档,看properties对象

getSharedPreferences 数据存在哪里 getdatasource_连接池_02