程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Mybatis學習筆記(一) 之框架原理,mybatis學習筆記

Mybatis學習筆記(一) 之框架原理,mybatis學習筆記

編輯:JAVA綜合教程

Mybatis學習筆記(一) 之框架原理,mybatis學習筆記


原生態JDBC編程中問題總結

1、單獨使用jdbc連接數據庫

maven依賴包:

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.31</version>
        </dependency>    

使用代碼

package com.test;
import java.sql.*; 

public class jdbc {
	public static void main(String[] args) {		
		//數據庫連接
		Connection connection = null;
		//預編譯的statement
		PreparedStatement preparedStatement = null;
		//結果集
		ResultSet resultSet = null;		
		try{
			//加載數據庫驅動
			Class.forName("com.mysql.jdbc.Driver");
			//通過驅動管理類獲取數據庫鏈接,用戶名及密碼
			connection = DriverManager.getConnection("jdbc:mysql://192.168.6.12:3306/test","dev","mybatis");
			//定義sql語句   ?表示占位符
			String sql = "select * from user where userName= ?";
			//獲取預處理statement
			preparedStatement = connection.prepareStatement(sql);
			//設置參數,第一個參數為sql語句中參數的序號,第二個參數為設置的參數值
			preparedStatement.setString(1, "小明");
			
			//向數據庫發出sql執行查詢,查詢出結果集
			resultSet = preparedStatement.executeQuery();
			//遍歷結果集
			while(resultSet.next()){
				System.out.println(resultSet.getString("id")+"   "+resultSet.getString("username"));
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			//釋放資源
			if(resultSet != null){
				try{
					resultSet.close();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	}
}

2、所遇到問題

1).數據庫連接,使用時就創建,但是不使用立即釋放,導致對數據庫進行頻繁的開啟和關閉,造成數據庫資源浪費,性能下降。

  解決:使用數據庫連接池管理數據庫鏈接

2).將sql語句硬編碼到java代碼中,及sql語句也寫在代碼中,如果sql語句需要修改,需要重新編譯java代碼,不利於系統維護。

  解決:將sql語句配置在xml配置文件中,即使sql變化,不需要對java代碼進行重新編譯。

3).向PreparedStatement中設置參數,對占位符(?)位置和設置參數值也是硬編碼在java代碼中。不利於維護。

  解決:也是將sql和占位符全部配置在xml中

4).從resutSet中遍歷結果集數據時,存在硬編碼,將獲取標的字段進行硬編碼,不利於維護。

  解決:將查詢結果集,自動映射成java對象。

 Mybatis框架

Mybatis是一個持久層架構,是apache下的頂級項目, 他是讓程序將主要精力放在sql上,通過mybatis提供的映射方式,自由靈活生成(半自動化,大部分需要程序員編寫sql)滿足需要的sql。

mybatis可以將向PreparedStatement中輸入參數自動進行輸入映射,將程序查詢結果集靈活的映射出java對象(輸出映射)

mybatis代碼下載地址:https://github.com/mybatis/mybatis-3/releases

1、mybatis框架

 

 

 

參考

鏈接:http://www.icoolxue.com/album/show/216

深入理解mybatis原理:http://blog.csdn.net/column/details/mybatis-principle.html?page=1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved