-
查詢條件用 List<Map<>> 來存儲(chǔ),使查詢更加靈活,妙啊~
查看全部 -
查詢一個(gè)女神是通過先實(shí)例化女神的空對(duì)象,再用該女神在數(shù)據(jù)庫(kù)中的屬性去填充空女神的屬性得到一個(gè)和數(shù)據(jù)庫(kù)中的記錄女神一樣的女神對(duì)象,最后返回這個(gè)飽滿的女神。
查看全部 -
java.sql.Date 是 java.util.Date 的子集,因此從 java.sql.Date 到 java.util.Date 不需要進(jìn)行類型轉(zhuǎn)換
查看全部 -
SUN公司為了簡(jiǎn)化、統(tǒng)一對(duì)數(shù)據(jù)庫(kù)的操作,定義了一套Java操作數(shù)據(jù)庫(kù)的規(guī)范(接口),稱之為JDBC。這套接口由數(shù)據(jù)庫(kù)廠商去實(shí)現(xiàn),這樣,開發(fā)人員只需要學(xué)習(xí)jdbc接口,并通過jdbc加載具體的驅(qū)動(dòng),就可以操作數(shù)據(jù)庫(kù)。
查看全部 -
JDBC連接數(shù)據(jù)庫(kù)查看全部
-
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();//預(yù)編譯sql語(yǔ)句,執(zhí)行該語(yǔ)句時(shí)才會(huì)生效
sql語(yǔ)句中 使用 ?做占位符。
sql語(yǔ)句中 可以current_data()等語(yǔ)句
查看全部 -
JDBC的使用
//1.加載驅(qū)動(dòng)程序 Class.forName(dirverClass);? //2.連接數(shù)據(jù)庫(kù)?? Connection?conn?=?DriverManager.getConnection( ????????"jdbc:mysql://127.0.0.1:3306/imooc", ????????"root","root");?? //3.創(chuàng)建Statement對(duì)象,使用該對(duì)象執(zhí)行SQL語(yǔ)句? Statement?stmt?=?conn.createStatement();? ???????????????????????????????????????? ResultSet?rs?=?stmt.excuteQuery("SELECT?..."); while(rs.next())?{ ??...rs.getString("user_name")...rs.getInt("user_id")... }
查看全部 -
like用于模糊查詢?
通配符“%”代表任意長(zhǎng)的多個(gè)字符,“_”代表任意1個(gè)字符
List<Map<String,Object>>
List集合中存放Map集合,而這個(gè)Map對(duì)象的鍵是String類型,值是Object類型
sql語(yǔ)句:通過append追加,(" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" "),即查詢條件+關(guān)系(=、>、like)+值,這樣就比較自主。
技巧:where 1=1
步驟:
//創(chuàng)建List集合實(shí)例
//得到訪問數(shù)據(jù)庫(kù)的連接對(duì)象實(shí)例
//創(chuàng)建StringBuilder對(duì)象實(shí)例
//向StringBuilder實(shí)例增加字符串
//對(duì)sql語(yǔ)句進(jìn)行預(yù)編譯
//進(jìn)行sql語(yǔ)句的編譯,并返回結(jié)果集
//定義一個(gè)Goddess對(duì)象類型
//通過得到的結(jié)果集對(duì)Goddess對(duì)象里的變量進(jìn)行賦值
//創(chuàng)建一個(gè)Goddess對(duì)象
//賦值
//把Goddess對(duì)象添加到result集合中
//返回result集合,便于GoddessAction層調(diào)用Goddess層的get方法查看全部 -
ptmt.execute();//executeecute()是用于更改數(shù)據(jù)庫(kù)的操作,包括新增、修改和刪除
executeQuery()用于查詢操作
查看全部 -
java.util.Date和java.sql.Date的區(qū)別和相互轉(zhuǎn)化
一、共同點(diǎn):
都有g(shù)etTime方法返回毫秒數(shù),可以直接構(gòu)建
二、不同點(diǎn):
1、java.sql.Date是針對(duì)SQL語(yǔ)句使用的,它只包含日期而沒有時(shí)間部分,一般在讀寫數(shù)據(jù)庫(kù)的時(shí)候用,PreparedStament的setDate()的參數(shù)和ResultSet的getDate()方法的都是java.sql.Date
2、java.util.Date是在除了SQL語(yǔ)句的情況下面使用,一般是日常日期字段
3、java.util.Date 是 java.sql.Date 的父類,即:繼承關(guān)系:java.lang.Object --》 java.util.Date --》 java.sql.Date
三、相互轉(zhuǎn)化:
1.java.sql.Date轉(zhuǎn)為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轉(zhuǎn)為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());
四、這里所有時(shí)間日期都可以被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();
如果希望得到Y(jié)YYYMMDD的格式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.執(zhí)行sql語(yǔ)句:conn.prepareStatement();//預(yù)編譯sql語(yǔ)句,prepareStatement()這個(gè)方法,將sql語(yǔ)句加載到驅(qū)動(dòng)程序的執(zhí)行程序中,在調(diào)用execute()方法時(shí)才真正執(zhí)行。
3.“?”是占位符
4.給sql語(yǔ)句傳遞參數(shù)時(shí),把對(duì)數(shù)據(jù)庫(kù)進(jìn)行映射的model里的那個(gè)類傳進(jìn)來,public void addGoddess(Goddess g) throws Exception{...};,再?gòu)膅的這個(gè)對(duì)象獲取數(shù)據(jù),即ptmt.setString(1, g.getUser_name());這個(gè)下標(biāo)是從1開始。
5.//ptmt.setDate(4, g.getBirthday());
//錯(cuò)誤,當(dāng)前的getBirthday是java.util.Date,而setDate需要的參數(shù)卻是java.sql.Date
ptmt.setDate(4, new Date(g.getBirthday().getTime()));
6.create_date和update——date不需要前臺(tái)寫入,這是根據(jù)創(chuàng)建的時(shí)間決定的,所以直接在sql語(yǔ)句里將這個(gè)創(chuàng)建日期傳入進(jìn)去,即current_date()。
綜上,新增的方法步驟為1.拿到數(shù)據(jù)庫(kù)的連接;2.拼寫sql語(yǔ)句;3.預(yù)編譯;4.傳參,給這些“?”預(yù)編譯符去賦值;5.執(zhí)行。
查看全部
舉報(bào)