获取DataSoutce数据源

12 篇文章 0 订阅

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

使用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连接池

image

查看文档,看properties对象

image

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值