欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

获取数据源

程序员文章站 2022-06-23 21:50:03
读取配置文件,创建数据源使用Druid读取Druid.properties导入druid-1.0.9.jar包使用 InputStream is = class.getClassLoader().getResourceAsStream(“druid.properties”)Properties pro = new Porperties()pro.load(is)DataSource ds = DruidDataSourceFactory.createDataSource...

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

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

获取数据源

查看文档,看properties对象

获取数据源

本文地址:https://blog.csdn.net/qq_44606649/article/details/107299184