bootstrap操作mysql数据库_前后端连接(BootStrap_MySQL_MyEclipse)
今天學(xué)了前后臺的連接。之前腦子一團(tuán)漿糊,就連后端對數(shù)據(jù)庫的操作都不熟。就一點(diǎn)點(diǎn)來寫吧,會多少寫多少,錯(cuò)了以后再改吧,可能進(jìn)步比較慢,但肯定會慢慢好起來的。
以前一直對數(shù)據(jù)庫連接就不太懂。先從數(shù)據(jù)庫連接寫起。
疑問點(diǎn)1:之前就是不明白為什么要有一個(gè)con,而且還是Connection類型的,
理解:你想對數(shù)據(jù)庫操作,肯定的先連上數(shù)據(jù)庫吧,那就得用一個(gè)變量來告訴別人,連接情況是啥,到底連沒連 上,剛開始肯定是null的呀,連上了還寫啥。至于Connection,還是不太清楚,可能只有這樣的類型才能獲取連接吧
疑問點(diǎn)2:Class.forName("com.mysql.jdbc.Driver");都說是加載驅(qū)動類,怎么加載的不太清楚。
理解:Class.forName動態(tài)加載指定的JDBC驅(qū)動,由DriverManager管理。DriverManager類用來管理數(shù)據(jù)庫中的所有驅(qū)動程序,是JDBC的管理層,作用于用戶和驅(qū)動程序之間,跟蹤可用的驅(qū)動程序,并在數(shù)據(jù)庫的驅(qū)動程序之間建立連接。(別人說的)
然后用這個(gè)con=(Connection)DriverManager.getConnection(url, user, password);就連上了唄。數(shù)據(jù)庫連接就勉強(qiáng)過關(guān)吧,以后工作了也許會有更深的理解,暫時(shí)都能連上了,就先不考慮了。
然后就出現(xiàn)一個(gè)很大的誤區(qū),數(shù)據(jù)庫里不是有張表格嘛是這樣的
然后我在后臺也寫了個(gè)這個(gè)
這下好了,我一直以為我對這些類里屬性操作的就是對后臺操作,(我可能是個(gè)傻子)
UserDao里是這樣(我一直不明白為什么加個(gè)這個(gè)玩意,別人說是為了簡單方便,我先這么理解吧)
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 selectAll();
public boolean delete(int uid);
public User selectByUid(int uid);
public boolean update (User user);
//List list=udi.mohuselect(namecondition);
public List mohunameselect(String namecondition);
public List mohuageselect(int minage,int maxage);
public List mohuadressselect(String adresscondition);
public List mohusexselect(String sexcondition);
}
UserDaoImp類是這樣
DBCon db=new DBCon();
//4個(gè)數(shù)據(jù)庫連接對象
Connection con=null;
Statement stmt=null;//為了發(fā)送Sql語句
PreparedStatement pstmt=null;//???
ResultSet rs=null;//存放集合
public void close()//這個(gè)方法跟理解沒啥關(guān)系,就是為了關(guān)閉偷懶
{
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("正在執(zhí)行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();//這才是正八經(jīng)將語句發(fā)給了mysql
if(rs.next())//開始找有沒有符合的
{
flag=true;
}else{
System.out.println("不能找到該人");
}
this.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
//困了,睡覺,不明白的是找是找到了,找到了,沒點(diǎn)顯示嗎?在flag=ture那寫個(gè)????System.out.println("找到該人");???我自己看到了有啥用,我想給頁面跳到別的頁面才行啊,嗯,明天再寫寫。
總結(jié)
以上是生活随笔為你收集整理的bootstrap操作mysql数据库_前后端连接(BootStrap_MySQL_MyEclipse)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 熟悉mysql基本数据库操作系统_MyS
- 下一篇: 建湖居民用电价格?