mybatis學習第一天

 

  mybatis  開發dao兩種方法:java

                                   dao方法mysql

                                  mapper接口代理方法sql

原生態JDBC程序中問題:數據庫

package com.mybatis.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcTest {
 public static void main(String[] args) {
  
  //數據庫鏈接
  Connection connection = null;
  //預編譯的Statement,使用預編譯的Statement提升數據庫性能
  PreparedStatement preparedStatement = null;
  //結果 集
  ResultSet resultSet = null;
  
  try {
   //加載數據庫驅動
   Class.forName("com.mysql.jdbc.Driver");
   
   //經過驅動管理類獲取數據庫連接
   connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "gaolei123");
   //定義sql語句 ?表示佔位符
   String sql = "select * from user where username = ?";
   //獲取預處理statement
   preparedStatement = connection.prepareStatement(sql);
   //設置參數,第一個參數爲sql語句中參數的序號(從1開始),第二個參數爲設置的參數值
   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 (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if(preparedStatement!=null){
    try {
     preparedStatement.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if(connection!=null){
    try {
     connection.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }

 }
}

          1 數據庫使用鏈接,使用時鏈接,不使用時釋放,形成資源浪費,影像數據庫性能:  使用鏈接池管理數據庫鏈接mybatis

          2  將sql語句硬編碼到java代碼中不利於維護:   sql語句配置到配置文件中app

          3 向prepareStatement 中設置參數,對佔位符號位置和設置參數值,硬編碼在java代碼中不利於維護:   sql語句及參數值,佔位符位置配置在配置文件中性能

          4從resultSet中  遍歷結果集數據存在硬編碼,將獲取表的字段進行硬編碼,不利於維護:  將查詢的結果集,自動映射成java對象編碼

相關文章
相關標籤/搜索