获取数据源
程序员文章站
2022-03-22 08:31:19
读取配置文件,创建数据源使用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
- 导入druid-1.0.9.jar包
- 使用 InputStream is = class.getClassLoader().getResourceAsStream(“druid.properties”)
- Properties pro = new Porperties()
pro.load(is)
DataSource ds = DruidDataSourceFactory.createDataSource(pro) - getClassLoader()返回类的类加载器
- 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