-
注:模型層:主要包括兩個(gè)部分,一部分是對應(yīng)的數(shù)據(jù)庫的映射,一部分是對數(shù)據(jù)庫映射的抽象的方法。如增加,修改,刪除,查詢,簡稱CRUD。
控制層:控制數(shù)據(jù)的流通過程 ,控制CRUD方法的運(yùn)用,把數(shù)據(jù)拼裝起來展示給視圖層。
視圖層:對于數(shù)據(jù)的展示,展示給用戶用的。
?
查看全部 -
JDBC使用詳情
查看全部 -
JDBC 必要的工具
查看全部 -
數(shù)據(jù)庫大致流程
查看全部 -
MVC三層架構(gòu)
查看全部 -
@MySQL---List傳參和StringBuilder的使用
public?List<Goddess>?query(List<Map<String,?Object>>?params)?throws?Exception{//傳入List集合參數(shù) ?List<Goddess>?result=new?ArrayList<Goddess>(); ? ?Connection?conn=DBUtil.getConnection();//連接數(shù)據(jù)庫 ?StringBuilder?sb=new?StringBuilder();//線程不安全,但大部分情況下速度快 ?sb.append("select?*?from?imooc_goddess?where?1=1?"); ? ?if(params!=null&¶ms.size()>0){//判斷是否為空 ??for?(int?i?=?0;?i?<?params.size();?i++)?{ ???Map<String,?Object>?map=params.get(i); ???sb.append("?and??"+map.get("name")+"?"+map.get("rela")+"?"+map.get("value")+"?"); ??} ?} ? ?PreparedStatement?ptmt=conn.prepareStatement(sb.toString());//預(yù)編譯 ? ?System.out.println(sb.toString()); ?ResultSet?rs=ptmt.executeQuery();//執(zhí)行查詢 ? ?Goddess?g=null; ?while(rs.next()){//遍歷查詢結(jié)果集 ??g=new?Goddess();//賦值 ??g.setId(rs.getInt("id")); ??g.setUser_name(rs.getString("user_name")); ??g.setAge(rs.getInt("age")); ??g.setSex(rs.getInt("sex")); ??g.setBirthday(rs.getDate("birthday")); ??g.setEmail(rs.getString("email")); ??g.setMobile(rs.getString("mobile")); ??g.setCreate_date(rs.getDate("create_date")); ??g.setCreate_user(rs.getString("create_user")); ??g.setUpdate_date(rs.getDate("update_date")); ??g.setUpdate_user(rs.getString("update_user")); ??g.setIsdel(rs.getInt("isdel")); ?? ??result.add(g);//添加 ?} ?return?result; }
查看全部 -
@JDBC---execute方法比較
boolean?execute(String?sql)
執(zhí)行給定的 SQL 語句,如果SQL語句返回結(jié)果,該方法返回true,否則返回false。
ResultSet?executeQuery(String?sql)
執(zhí)行給定的 SQL 語句,該方法返回 查詢所獲得的結(jié)果集ResultSet 對象
int?executeUpdate(String?sql)
執(zhí)行給定 SQL 語句,該語句可能為 INSERT、UPDATE 或DELETE語句,返回更新所影響的行數(shù)。
查看全部 -
@JDBC---預(yù)編譯與日期轉(zhuǎn)變
1.預(yù)編譯
PreparedStatement和Statement的區(qū)別
一.代碼的可讀性和可維護(hù)性。
二.PreparedStatement提高性能,因在被編譯后有緩存,下次用相同的不編譯,傳參直接執(zhí)行。
三.提高安全性。PrepareStatement?ptmt=conn.prepareStatement(sql);//將sql加載到驅(qū)動(dòng)程序中但不執(zhí)行; ptmt.setString/Int....(index,值);//index為int或String ptmt.execute;//再執(zhí)行
2.日期轉(zhuǎn)換
java.sql.Date類是java.util.Date類的子類
java.util.Date轉(zhuǎn)java.sql.Datenew?java.sql.Date(new?java.util.Date().getTime());
java.sql.Date轉(zhuǎn)java.util.Date
new?java.util.Date(new?java.sql.Date());
3.實(shí)例
//通過靜態(tài)方法,獲取連接數(shù)據(jù)庫的連接 Connection?conn?=?DBUtil.getConnection(); //sql語句 String?sql?=?"insert?into?imooc_goddess?"?+ "(user_name,sex,age,birthday,email,mobile,?"?+ "create_user,create_date,update_user,update_date,isdel)?"?+ "values(?,?,?,?,?,?,?,current_date(),?,current_date(),?);"?; //預(yù)編譯sql語句 PreparedStatement?ptmt?=?conn.prepareStatement(sql); //賦值 ptmt.setString(1,?g.getUser_name()); ptmt.setInt(2,?g.getSex()); ptmt.setInt(3,?g.getAge()); //java.util.Date轉(zhuǎn)換java.sql.Date ptmt.setDate(4,?new?Date(g.getBirthday().getTime())); ptmt.setString(5,?g.getEmail()); ptmt.setString(6,?g.getMobile()); ptmt.setString(7,?g.getCreate_user()); ptmt.setString(8,?g.getUpdate_user()); ptmt.setInt(9,?g.getIsdel()); //執(zhí)行sql語句 ptmt.execute();
查看全部 -
@JDBC---MVC的流程
MVC架構(gòu)模式:View(視圖層)、Control(控制層)、Model(模型層)。
Model:模型包括兩部分,一個(gè)是對應(yīng)數(shù)據(jù)庫的映射,另一個(gè)是對數(shù)據(jù)庫對應(yīng)映射的方法?!救鐢?shù)據(jù)庫操作的增查改刪,簡稱CRUD。】
Control:控制數(shù)據(jù)流通過程。
View:將拼裝起來的數(shù)據(jù)進(jìn)行展示。查看全部 -
@JDBC---連接數(shù)據(jù)庫
三步獲取數(shù)據(jù)庫連接(需導(dǎo)入mysql-connector-java.jar包)1.加載驅(qū)動(dòng)程序: Class.forName(driverClass)
加載Mysql驅(qū)動(dòng):Class.forName("com.mysql.jdbc.Driver")
加載Oracle驅(qū)動(dòng):Class.forName("oracle.jdbc.driver.OracleDriver")
***注意:驅(qū)動(dòng)是固定寫法2.獲得數(shù)據(jù)庫連接:
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc","root","root");
***注釋:其中jdbc:mysql表示jdbc連接mysql,127.0.0.1:3306為服務(wù)器地址和端口,imooc為數(shù)據(jù)庫名稱,root分別是用戶名和密碼3.創(chuàng)建Statement對象: conn.createStatement();
4.連接數(shù)據(jù)庫實(shí)例:
import?java.sql.Connection; import?java.sql.DriverManager; import?java.sql.ResultSet; import?java.sql.Statement; public?class?DBUtil?{ ????private?static?final?String?URL?=?"jdbc:mysql://127.0.0.1:3306/imooc";?//imooc數(shù)據(jù)庫名 ???//這樣可以避免中文亂碼 ???//private?static?final?String?URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf8";? ????private?static?final?String?USER?=?"root"; ????private?static?final?String?PASSWORD?=?"root"; ????//使用static靜態(tài)語句塊,只會(huì)執(zhí)行一次. ????/*private?static?Connection?conn=null; ????static{?? ????????Class.forName("com.mysql.jdbc.Driver"); ????????conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc","root","root"); ????} ????public?static?Connection?getConnection(){ return?conn; ????}*/ ????? ????public?static?void?main(String[]?args)?throws?Exception?{ ????????//1.加載驅(qū)動(dòng)程序 ????????Class.forName("com.mysql.jdbc.Driver"); ????????//2.獲取數(shù)據(jù)庫連接 ????????Connection?conn?=?DriverManager.getConnection(URL,?USER,?PASSWORD); ????????//3.通過數(shù)據(jù)庫連接操作數(shù)據(jù)庫,實(shí)現(xiàn)增刪改查 ????????Statement?stmt?=?conn.createStatement(); ????????ResultSet?rs?=?stmt.executeQuery("SELECT?user_name,age?FROM?imooc_goddess"); ????????while?(rs.next())?{ ????????????System.out.println(rs.getString("user_name")?+?","?+?rs.getInt("age")); ????????} ????} }
查看全部 -
@JDBC---JDBC簡介
1、Java Data Base Connectivity(Java數(shù)據(jù)庫連接):是java與數(shù)據(jù)庫的橋梁,提供讀寫操作
2、可以為多種數(shù)據(jù)庫提供統(tǒng)一的訪問,是一種統(tǒng)一標(biāo)準(zhǔn)
3、通過JDBC可以連接Oracle、MySql、Sql Server數(shù)據(jù)庫查看全部 -
地址,用戶名,密碼查看全部
-
1.JDBC java數(shù)據(jù)庫連接查看全部
-
public Goddess query(String name) throws SQLException{
//實(shí)例化一個(gè)數(shù)據(jù)庫對應(yīng)實(shí)體類對象
Goddess g = new Goddess();
//通過connection獲取數(shù)據(jù)庫連接
Connection conn = DBUtil.getConnection();
//根據(jù)姓名查詢對應(yīng)信息
String sql = "select * from imooc_goddess where user_name = ?";
//預(yù)編譯sql語句
PreparedStatement pstm = conn.prepareStatement(sql);
//對占位符參數(shù)進(jìn)行賦值
pstm.setString(1, name);
//執(zhí)行查詢獲取結(jié)果集
ResultSet rs = pstm.executeQuery();
//判斷rs是否為空
if(rs.next()){
//通過實(shí)體類set方法根據(jù)查詢結(jié)果為對象g賦值
g.setId(rs.getInt("id"));
g.setUser_name(rs.getString("user_name"));
g.setSex(rs.getInt("sex"));
g.setAge(rs.getInt("age"));
g.setBirthday(rs.getDate("birthday"));
g.setEmail(rs.getString("email"));
g.setMobile(rs.getString("mobile"));
g.setCreate_date(rs.getString("create_date"));
g.setCreate_user(rs.getString("create_user"));
g.setUpdate_date(rs.getString("update_date"));
g.setUpdate_user(rs.getString("update_user"));
g.setIsdel(rs.getInt("isdel"));
}
//返回對象
return g;
}
GoddessDao gs = new GoddessDao();
System.out.println(gs.query("lucy"));
查看全部 -
JDBC編程步驟
查看全部
舉報(bào)