本周首先暫時(shí)結(jié)束了Java高級(jí)知識(shí),進(jìn)入到了數(shù)據(jù)庫(kù)的學(xué)習(xí):
java高級(jí)部分:
? ? ? ? ? ? ? ? ? ?1.多線程:線程并發(fā)(多個(gè)線程操作共享變量);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?鎖機(jī)制,關(guān)鍵字有synchronize(并發(fā)線程安全,可鎖對(duì)象和方法),wait,notify
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(悲觀)死鎖,,wait,notify,notifyAll;
? ? ? ? ? ? ? ? ? ? 2.網(wǎng)絡(luò)編程:udp數(shù)據(jù)廣播(數(shù)據(jù)發(fā)送者只需向交換機(jī)發(fā)送一個(gè)拷貝,交換機(jī)負(fù)責(zé)將這個(gè)信息制作n個(gè)拷貝發(fā)送給所有機(jī)器)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http協(xié)議(HyperText Transfer Protocol)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? json數(shù)據(jù)格式,語(yǔ)法規(guī)則:JSON對(duì)象{“屬性名”:”屬性值”}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? JSON數(shù)組[“元素1”,”元素2″…]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? JSON插件:- Json-lib
– Gson
– Jackson
– FastJSON – alibaba
;
數(shù)據(jù)庫(kù)部分:(采用mysql5.5數(shù)據(jù)庫(kù),以及navicat圖形工具對(duì)其操作)
? ? ? ? ? ? ? ? ? ? ?3.系統(tǒng)以及mysql常用命令
? ? ? ? ? ? ? ? ? ? ? ? ? 系統(tǒng)命令(以管理員身份運(yùn)行)
: ? #啟動(dòng)服務(wù)
? ? net start mysql
? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#停止服務(wù)
? ? net stop mysql
? ??
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#進(jìn)入mysql命令行
? ? mysql -uroot -p密碼 ??
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#退出mysql命令行
? ? exit
? ??
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #修改密碼
? ? mysqladmin -uroot -p123456 password 密碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #備份數(shù)據(jù)庫(kù)實(shí)例 ?mysqldump -uroot -proot mydb > d:/mydb.sql
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #備份表 ?mysqldump -uroot -proot mydb tbuser > d:/tbuser.sql ? ?
? ? ? ? ? ? ? ? ? ? ? ? ??
Mysql常用命令
? : ?–顯示數(shù)據(jù)庫(kù)實(shí)例
? ? show databases;
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? –創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例
? ? create database mydb;
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? –使用數(shù)據(jù)庫(kù)實(shí)例
? ? user mydb;
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? –顯示實(shí)例中所有數(shù)據(jù)庫(kù)表
? ? show tables;
SQL語(yǔ)句
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? auto_increment:設(shè)置列自增,可用于主鍵列以及非空唯一列(not NULL unique)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? unsigned:設(shè)置無符號(hào)列(列值不允許為負(fù)數(shù))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?zerofill:設(shè)置零填充列(當(dāng)列數(shù)據(jù)長(zhǎng)度不到定義長(zhǎng)度時(shí),數(shù)值前補(bǔ)0)
? ? ? ? ? ? ? ? ? ? ? ? 4.SQL語(yǔ)句:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DDL(數(shù)據(jù)庫(kù)定義語(yǔ)言:用來建立數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象和定義其列):create、desc(查看表結(jié)構(gòu))、alter、drop
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DML (數(shù)據(jù)庫(kù)操縱語(yǔ)言:增刪改查):select、insert、delete、update;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DCL(數(shù)據(jù)庫(kù)控制語(yǔ)言:控制權(quán)限)revork,grant;
? ? ? ? ? ? ? ? ? ? ? ? 5.(完整性條件)約束:1. 主鍵約束
2. 外鍵約束
3. 不為空約束
4. 唯一約束
5. 檢查約束(mysql暫不支持)
? ? ? ? ? ? ? ? ? ? ? ? 6.數(shù)據(jù)類型、運(yùn)算符
? ? ? ? ? ? ? ? ? ? ? ? 7.查詢(重點(diǎn)):SELECT 查詢列1,查詢列2,…?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? FROM 目標(biāo)表
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【W(wǎng)HERE 查詢條件】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【GROUP BY 列名稱】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【HAVING 查詢條件】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【ORDER BY 列名稱 ASC|DESC】
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【LIMIT [偏移行,]記錄行數(shù)】
??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 單表查詢:模糊查詢(“%”,“_”),聚合函數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 多表查詢:等值連接,外連接
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mysql函數(shù)的使用。
import?java.io.Serializable; /** ?*?工作詳情類 ?*?@author?NIUXUYUAN ?*/ public?class?Jobs?implements?Serializable{ /** ?*? ?*/ private?static?final?long?serialVersionUID?=?1L; private?String?id;??????????//id private?String?experience;??//工作經(jīng)驗(yàn) private?String?city;????????//工作地點(diǎn) private?String?industry;????//行業(yè) private?String?detail;??????//工作詳情 private?String?company;?????//公司 private?String?jobname;?????//職位 public?Jobs(String?id,?String?experience,?String?city,?String?industry,?String?detail,?String?company, String?jobname)?{ super(); this.id?=?id; this.experience?=?experience; this.city?=?city; this.industry?=?industry; this.detail?=?detail; this.company?=?company; this.jobname?=?jobname; } @Override public?String?toString()?{ return?"Jobs?[id="?+?id?+?",?experience="?+?experience?+?",?city="?+?city?+?",?industry="?+?industry +?",?detail="?+?detail?+?",?company="?+?company?+?",?jobname="?+?jobname?+?"]"; } public?String?toString(int?i)?{ return?experience+city+industry+detail+company+jobname; } public?Jobs()?{ //?TODO?Auto-generated?constructor?stub } public?String?getId()?{ return?id; } public?void?setId(String?id)?{ this.id?=?id; } public?String?getExperience()?{ return?experience; } public?void?setExperience(String?experience)?{ this.experience?=?experience; } public?String?getCity()?{ return?city; } public?void?setCity(String?city)?{ this.city?=?city; } public?String?getIndustry()?{ return?industry; } public?void?setIndustry(String?industry)?{ this.industry?=?industry; } public?String?getDetail()?{ return?detail; } public?void?setDetail(String?detail)?{ this.detail?=?detail; } public?String?getCompany()?{ return?company; } public?void?setCompany(String?company)?{ this.company?=?company; } public?String?getJobname()?{ return?jobname; } public?void?setJobname(String?jobname)?{ this.jobname?=?jobname; } }
import?java.io.BufferedReader; import?java.io.File; import?java.io.FileInputStream; import?java.io.FileNotFoundException; import?java.io.FileOutputStream; import?java.io.IOException; import?java.io.InputStreamReader; import?java.io.ObjectInputStream; import?java.io.ObjectOutputStream; import?java.util.ArrayList; import?java.util.List; public?class?AddJobs?{ static?List<jobs>?list?=?new?ArrayList(); File?file?=?new?File("jobs"); /** ?*?輸入數(shù)據(jù) ?*?@throws?IOException ?*/ public?void?input()?throws?IOException?{ ?????BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in)); ?????System.out.println("以id/experience/education/city/industry/detail/company/jobname格式填入:"); ?????String?msg?=?""; ?????while(!(msg?=?br.readLine()).equalsIgnoreCase("quit"))?{ ???? ?add(msg); ?????} ?????br.close(); } /** ?*?將數(shù)據(jù)變?yōu)镴obs對(duì)象存入list集合 ?*?@param?msg ?*/ private?void?add(String?msg)?{ String[]?s?=?msg.split("/"); Jobs?job?=?new?Jobs(s[0],?s[1],?s[2],?s[3],?s[4],?s[5],?s[6]); list.add(job); } private?void?checkFile()?throws?FileNotFoundException,?IOException,?ClassNotFoundException?{ if(file.length()>0)?{ ObjectInputStream?ois?=?new?ObjectInputStream(new?FileInputStream(file)); List<jobs>?temp?=?(List<jobs>)ois.readObject(); if(temp!=null)?{ list.clear(); for(Jobs?t:temp)?{ list.add(t); } } ois.close(); } } public?static?void?main(String[]?args)?throws?FileNotFoundException,?IOException,?ClassNotFoundException?{ AddJobs?aj?=?new?AddJobs(); if(!aj.file.exists())?{ aj.file.createNewFile(); } aj.checkFile(); aj.input(); ObjectOutputStream?oos?=?new?ObjectOutputStream(new?FileOutputStream(aj.file)); oos.writeObject(list); oos.close(); } }</jobs></jobs></jobs>
import?java.io.BufferedReader; import?java.io.File; import?java.io.FileInputStream; import?java.io.FileNotFoundException; import?java.io.IOException; import?java.io.InputStreamReader; import?java.io.ObjectInputStream; import?java.util.ArrayList; import?java.util.List; public?class?Query?{ static?List<jobs>?list?=?new?ArrayList(); File?file?=?new?File("jobs"); /** ?*?查看file文件,將數(shù)據(jù)導(dǎo)入list集合 ?*?@throws?FileNotFoundException ?*?@throws?IOException ?*?@throws?ClassNotFoundException ?*/ private?void?checkFile()?throws?FileNotFoundException,?IOException,?ClassNotFoundException?{ if(file.length()>0)?{ ObjectInputStream?ois?=?new?ObjectInputStream(new?FileInputStream(file)); List<jobs>?temp?=?(List<jobs>)ois.readObject(); if(temp!=null)?{ list.clear(); for(Jobs?t:temp)?{ list.add(t); } } ois.close(); } } public?void?check()?throws?IOException?{ BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in)); System.out.println("請(qǐng)輸入experience/education/city/industry/detail/company/jobname的某些信息"); String?msg?=?br.readLine(); String[]?s?=?msg.split("/"); String?regex?=?""; for?(String?str?:?s)?{ regex?+=?"[sS]*"?+?str?+?"[sS]*"; } List<jobs>?temp?=?new?ArrayList(); for?(Jobs?j?:?list)?{ msg?=?j.toString(1); if(msg.matches(regex))?{ temp.add(j); } } System.out.println("結(jié)果"); for?(Jobs?jobs?:?temp)?{ System.out.println(jobs); } } public?static?void?main(String[]?args)?throws?FileNotFoundException,?ClassNotFoundException,?IOException?{ Query?q?=?new?Query(); q.checkFile(); q.check(); } }</jobs></jobs></jobs></jobs>
?相關(guān)文章: