一:什么是連接池?使用連接池的好處是什么?
連接池就是一個存放數據庫連接對象的容器。當系統初始化后,就會向數據庫申請一些連接對象存放到容器里,用的時候直接從容器里取,用完后放回連接池。
連接池可以提高數據庫訪問效率,也可以節約資源。
二:java中提供了一個接口叫DataSource,他提供了連接池規范。開發者一般使用第三方的類庫實現這個接口。C3P0 和 Druid(由阿里巴巴提供);
三:C3P0的具體使用:
1. 導入jar包 c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.12.jar
注意:不要了數據庫驅動jar包
2. 定義配置文件
名稱:c3p0.properties or c3p0-config.xml
路徑:直接將配置放到src目錄下即可
3:DataSource dataSource = new ComboPooledDataSource(); //創建連接池
Connection conn = dataSource.getConnection(); //創建連接對象
四:Druid的使用:
1:導入druid所需的包和數據庫驅動包
2:定義配置文件,放在src目錄下
Properties pro = new Properties(); //創建配置文件對象
InputStream is = Demo03.class.getClassLoader().getResourceAsStream("druid.properties"); //讀到定義的配置文件
pro.load(is); //將配置文件加載到配置文件對象中
DataSource ds = DruidDataSourceFactory.createDataSource(pro); //獲取連接池‘
Connection conn = ds.getConnection(); //獲取連接對象
五:JDBCTemplate :JDBCTemplate是以Spring在JDBCAPI上定義的抽象層建立的JDBC存取框架,有了它可以更方便的操作數據庫,增刪查改操作更方便。
1:創建JDBCTemplate:
JDBCTemplate jdbc = new JDBCTemplate(DataSource data) //傳入一個連接池對象
2:常用方法:所有方法都傳入查詢字符串
(1):uddate() 執行增刪改操作
(2):queryForMap() 查詢單條數據使用,返回map集合。
(3):queryForList() 查詢多條數據使用,返回 List<Map<String,Object>>
(4):query() 查詢單條數據,將數據封裝成自定義對象
(5):queryForObject() 查詢多條數據,將數據封裝成自定義對象 例:jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),user.getName(),user.getPassword()); sql:查詢語句 User:自定義類
(6):execute() 可以執行任何語句,一般用於執行DDL語句