1. 程式人生 > 實用技巧 >MD5雜湊演算法(C語言實現)

MD5雜湊演算法(C語言實現)

資料庫連線池

  1. 概念:其實就是一個容器(集合),存放資料庫連線的容器。
    當系統初始化好後,容器被建立,容器中會申請一些連線物件,當用戶來訪問資料庫時,從容器中獲取連線物件,使用者訪問完之後,會將連線物件歸還給容器。

  2. 好處:

    1. 節約資源
    2. 使用者訪問高效
  3. 實現:

    1. 標準介面:DataSource javax.sql包下的

      1. 方法:
        • 獲取連線:getConnection()
        • 歸還連線:Connection.close()。如果連線物件Connection是從連線池中獲取的,那麼呼叫Connection.close()方法,則不會再關閉連線了。而是歸還連線
    2. 一般我們不去實現它,有資料庫廠商來實現

      1. C3P0:資料庫連線池技術
      2. Druid:資料庫連線池實現技術,由阿里巴巴提供的
  4. C3P0:資料庫連線池技術

    • 步驟:
      1. 匯入jar包 (兩個) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,

        • 不要忘記匯入資料庫驅動jar包
      2. 定義配置檔案:

        • 名稱: c3p0.properties 或者 c3p0-config.xml
        • 路徑:直接將檔案放在src目錄下即可。
      3. 建立核心物件 資料庫連線池物件 ComboPooledDataSource

      4. 獲取連線: getConnection

    • 程式碼:
      //1.建立資料庫連線池物件
      DataSource ds = new ComboPooledDataSource();
      //2. 獲取連線物件
      Connection conn = ds.getConnection();
  5. Druid:資料庫連線池實現技術,由阿里巴巴提供的

    1. 步驟:
      1. 匯入jar包 druid-1.0.9.jar
      2. 定義配置檔案:
        • 是properties形式的
        • 可以叫任意名稱,可以放在任意目錄下
      3. 載入配置檔案。Properties
      4. 獲取資料庫連線池物件:通過工廠來來獲取 DruidDataSourceFactory
      5. 獲取連線:getConnection
    • 程式碼:
      //3.載入配置檔案
      Properties pro = new Properties();
      InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
      pro.load(is);
      //4.獲取連線池物件

      DataSource ds = DruidDataSourceFactory.createDataSource(pro);
      //5.獲取連線
      Connection conn = ds.getConnection();
    1. 定義工具類
      1. 定義一個類 JDBCUtils
      2. 提供靜態程式碼塊載入配置檔案,初始化連線池物件
      3. 提供方法
        1. 獲取連線方法:通過資料庫連線池獲取連線
        2. 釋放資源
        3. 獲取連線池的方法
public class JDBCUtils {

		    //1.定義成員變數 DataSource
		    private static DataSource ds ;
		
		    static{
		        try {
		            //1.載入配置檔案
		            Properties pro = new Properties();
		            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
		            //2.獲取DataSource
		            ds = DruidDataSourceFactory.createDataSource(pro);
		        } catch (IOException e) {
		            e.printStackTrace();
		        } catch (Exception e) {
		            e.printStackTrace();
		        }
		    }
		
		    /**
		     * 獲取連線
		     */
		    public static Connection getConnection() throws SQLException {
		        return ds.getConnection();
		    }
		
		    /**
		     * 釋放資源
		     */
		    public static void close(Statement stmt,Connection conn){
		       /* if(stmt != null){
		            try {
		                stmt.close();
		            } catch (SQLException e) {
		                e.printStackTrace();
		            }
		        }
		
		        if(conn != null){
		            try {
		                conn.close();//歸還連線
		            } catch (SQLException e) {
		                e.printStackTrace();
		            }
		        }*/
		
		       close(null,stmt,conn);
		    }
public static void close(ResultSet rs , Statement stmt, Connection conn){


​			
​			        if(rs != null){
​			            try {
​			                rs.close();
​			            } catch (SQLException e) {
​			                e.printStackTrace();
​			            }
​			        }


​			
​			        if(stmt != null){
​			            try {
​			                stmt.close();
​			            } catch (SQLException e) {
​			                e.printStackTrace();
​			            }
​			        }
​			
​			        if(conn != null){
​			            try {
​			                conn.close();//歸還連線
​			            } catch (SQLException e) {
​			                e.printStackTrace();
​			            }
​			        }
​			    }
​			
​			    /**
​			     * 獲取連線池方法
​			     */
public static DataSource getDataSource(){
		        return  ds;
		    }
		
		}

Spring JDBCTemplate對jdbc進行了簡單的封裝,提供了一個JDBCTemplate物件簡化JDBC的開發

使用

1、匯入jar包

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.1.9.RELEASE</version>
</dependency>

2、建立JdbcTemplate物件

JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);

3、api

  • update():執行DML語句。增、刪、改語句
  • queryForMap():查詢結果將結果集封裝為map集合,將列名作為key,將值作為value 將這條記錄封裝為一個map集合
  • 注意:這個方法查詢的結果集長度只能是1
  • queryForList():查詢結果將結果集封裝為list集合
  • 注意:將每一條記錄封裝為一個Map集合,再將Map集合裝載到List集合中
  • query():查詢結果,將結果封裝為JavaBean物件
  • query的引數:RowMapper
  • 一般我們使用BeanPropertyRowMapper實現類。可以完成資料到JavaBean的自動封裝
  • new BeanPropertyRowMapper<型別>(型別.class)
  • queryForObject:查詢結果,將結果封裝為物件
  • 一般用於聚合函式的查詢