-
查詢條件用 List<Map<>> 來存儲,使查詢更加靈活,妙啊~
查看全部 -
查詢一個女神是通過先實例化女神的空對象,再用該女神在數據庫中的屬性去填充空女神的屬性得到一個和數據庫中的記錄女神一樣的女神對象,最后返回這個飽滿的女神。
查看全部 -
java.sql.Date 是 java.util.Date 的子集,因此從 java.sql.Date 到 java.util.Date 不需要進行類型轉換
查看全部 -
SUN公司為了簡化、統一對數據庫的操作,定義了一套Java操作數據庫的規范(接口),稱之為JDBC。這套接口由數據庫廠商去實現,這樣,開發人員只需要學習jdbc接口,并通過jdbc加載具體的驅動,就可以操作數據庫。
查看全部 -
JDBC連接數據庫查看全部
-
Establishing SSL connection without server's identity :
solution:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
查看全部 -
Class.forName("com.mysql.jdbc.Driver"); Connection?conn?=??DriverManager.getConnection(URL,?USER?,?PRSSWORD); Statement?stat?=?conn.createStatement(); ResultSet?rs?=?stat.executeQuery("select?*?from?goddess"); while?(rs.next()){ ????System.out.println(rs.getString("user_name")+","+rs.getInt("age")); }
查看全部 -
搭建視圖層
查看全部 -
搭建控制層
查看全部 -
PreparedStatement?ptmt?=?conn.prepareStatement(sql); ... ptmt.execute();//預編譯sql語句,執行該語句時才會生效
sql語句中 使用 ?做占位符。
sql語句中 可以current_data()等語句
查看全部 -
JDBC的使用
//1.加載驅動程序 Class.forName(dirverClass);? //2.連接數據庫?? Connection?conn?=?DriverManager.getConnection( ????????"jdbc:mysql://127.0.0.1:3306/imooc", ????????"root","root");?? //3.創建Statement對象,使用該對象執行SQL語句? Statement?stmt?=?conn.createStatement();? ???????????????????????????????????????? ResultSet?rs?=?stmt.excuteQuery("SELECT?..."); while(rs.next())?{ ??...rs.getString("user_name")...rs.getInt("user_id")... }
查看全部 -
like用于模糊查詢?
通配符“%”代表任意長的多個字符,“_”代表任意1個字符
List<Map<String,Object>>
List集合中存放Map集合,而這個Map對象的鍵是String類型,值是Object類型
sql語句:通過append追加,(" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" "),即查詢條件+關系(=、>、like)+值,這樣就比較自主。
技巧:where 1=1
步驟:
//創建List集合實例
//得到訪問數據庫的連接對象實例
//創建StringBuilder對象實例
//向StringBuilder實例增加字符串
//對sql語句進行預編譯
//進行sql語句的編譯,并返回結果集
//定義一個Goddess對象類型
//通過得到的結果集對Goddess對象里的變量進行賦值
//創建一個Goddess對象
//賦值
//把Goddess對象添加到result集合中
//返回result集合,便于GoddessAction層調用Goddess層的get方法查看全部 -
ptmt.execute();//executeecute()是用于更改數據庫的操作,包括新增、修改和刪除
executeQuery()用于查詢操作
查看全部 -
java.util.Date和java.sql.Date的區別和相互轉化
一、共同點:
都有getTime方法返回毫秒數,可以直接構建
二、不同點:
1、java.sql.Date是針對SQL語句使用的,它只包含日期而沒有時間部分,一般在讀寫數據庫的時候用,PreparedStament的setDate()的參數和ResultSet的getDate()方法的都是java.sql.Date
2、java.util.Date是在除了SQL語句的情況下面使用,一般是日常日期字段
3、java.util.Date 是 java.sql.Date 的父類,即:繼承關系:java.lang.Object --》 java.util.Date --》 java.sql.Date
三、相互轉化:
1.java.sql.Date轉為java.util.Date
java.sql.Date date=new java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
2.java.util.Date轉為java.sql.Date
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());
四、這里所有時間日期都可以被SimpleDateFormat格式化format()
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
f.format(stp);
f.format(sTime);
f.format(sqlDate);
f.format(utilDate)
java.sql.Date sqlDate=java.sql.Date.valueOf(" 2005-12-12");
utilDate=new java.util.Date(sqlDate.getTime());
另類取得年月日的方法:
import java.text.SimpleDateFormat;
import java.util.*;
java.util.Date date = new java.util.Date();
如果希望得到YYYYMMDD的格式SimpleDateFormat
sy1=new SimpleDateFormat("yyyyMMDD");
String dateFormat=sy1.format(date);
如果希望分開得到年,月,日SimpleDateFormat
sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);
查看全部 -
1.String sql="..."+"..."+"..."+"...",插入表+字段+values+占位符
2.執行sql語句:conn.prepareStatement();//預編譯sql語句,prepareStatement()這個方法,將sql語句加載到驅動程序的執行程序中,在調用execute()方法時才真正執行。
3.“?”是占位符
4.給sql語句傳遞參數時,把對數據庫進行映射的model里的那個類傳進來,public void addGoddess(Goddess g) throws Exception{...};,再從g的這個對象獲取數據,即ptmt.setString(1, g.getUser_name());這個下標是從1開始。
5.//ptmt.setDate(4, g.getBirthday());
//錯誤,當前的getBirthday是java.util.Date,而setDate需要的參數卻是java.sql.Date
ptmt.setDate(4, new Date(g.getBirthday().getTime()));
6.create_date和update——date不需要前臺寫入,這是根據創建的時間決定的,所以直接在sql語句里將這個創建日期傳入進去,即current_date()。
綜上,新增的方法步驟為1.拿到數據庫的連接;2.拼寫sql語句;3.預編譯;4.傳參,給這些“?”預編譯符去賦值;5.執行。
查看全部
舉報