前后端連接(BootStrap_MySQL_MyEclipse)


    今天學了前后台的連接。之前腦子一團漿糊,就連后端對數據庫的操作都不熟。就一點點來寫吧,會多少寫多少,錯了以后再改吧,可能進步比較慢,但肯定會慢慢好起來的。

    以前一直對數據庫連接就不太懂。先從數據庫連接寫起。

疑問點1:之前就是不明白為什么要有一個con,而且還是Connection類型的,

   理解:你想對數據庫操作,肯定的先連上數據庫吧,那就得用一個變量來告訴別人,連接情況是啥,到底連沒連 上,剛開始肯定是null的呀,連上了還寫啥。至於Connection,還是不太清楚,可能只有這樣的類型才能獲取連接吧

疑問點2:Class.forName("com.mysql.jdbc.Driver");都說是加載驅動類,怎么加載的不太清楚。

   理解:Class.forName動態加載指定的JDBC驅動,由DriverManager管理。DriverManager類用來管理數據庫中的所有驅動程序,是JDBC的管理層,作用於用戶和驅動程序之間,跟蹤可用的驅動程序,並在數據庫的驅動程序之間建立連接。(別人說的)

然后用這個con=(Connection)DriverManager.getConnection(url, user, password);就連上了唄。數據庫連接就勉強過關吧,以后工作了也許會有更深的理解,暫時都能連上了,就先不考慮了。

 

 

 

然后就出現一個很大的誤區,數據庫里不是有張表格嘛是這樣的

然后我在后台也寫了個這個

 

這下好了,我一直以為我對這些類里屬性操作的就是對后台操作,(我可能是個傻子)

 

UserDao里是這樣(我一直不明白為什么加個這個玩意,別人說是為了簡單方便,我先這么理解吧)

package com.user.dao;

import java.util.List;
import com.user.entity.User;

public interface UserDao {
 public boolean isExist(String username,String password);//判斷用戶名和密碼是否正確
 public boolean add(User user);
 public List<User> selectAll();
 public boolean delete(int uid);
 public User selectByUid(int uid);
 public boolean update (User user);
 //List<User> list=udi.mohuselect(namecondition);
 public List<User> mohunameselect(String namecondition);
 public List<User> mohuageselect(int minage,int maxage);
 public List<User> mohuadressselect(String adresscondition);
 public List<User> mohusexselect(String sexcondition);
}

UserDaoImp類是這樣

DBCon db=new DBCon();
 //4個數據庫連接對象
 Connection con=null;
 Statement stmt=null;//為了發送Sql語句
 PreparedStatement pstmt=null;//???
 ResultSet rs=null;//存放集合
 public void close()//這個方法跟理解沒啥關系,就是為了關閉偷懶
 {
  try {
   if(rs!=null){
    rs.close();
   }
   if(pstmt!=null){
    pstmt.close();
   }
   if(stmt!=null){
    stmt.close();
   }
   if(con!=null){
    con.close();
   }
   
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 @Override
 public boolean isExist(String username, String password) {
  System.out.println("正在執行DAO中isExist方法");
  Boolean flag=false;
  try {
   con=db.getCon();
   if(con==null)
   {
    System.out.println("DAO中selectByName方法連接失敗");
    return flag;
   }
   String sql="select * from tb_users where username=? AND password=?";//寫了sql語句
   pstmt=(PreparedStatement) con.prepareStatement(sql);//???
   pstmt.setString(1, username);
   pstmt.setString(2, password);
   rs=pstmt.executeQuery();//這才是正八經將語句發給了mysql
   if(rs.next())//開始找有沒有符合的
   {
    flag=true;
   }else{
    System.out.println("不能找到該人");
   }
   this.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return flag;
 }

//困了,睡覺,不明白的是找是找到了,找到了,沒點顯示嗎?在flag=ture那寫個    System.out.println("找到該人");???我自己看到了有啥用,我想給頁面跳到別的頁面才行啊,嗯,明天再寫寫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM