從調(diào)試工具比如gdb
那拿到的結(jié)果有時不能保證是正確的。至于這到底是為什么,這也許是gdb
的問題,在深入的話我也不了解了(如果有人知道的話,還請在評論區(qū)指教)。這也是為什么有的時候用IDE
的單步跟蹤查看變量值可能是不正確的。
如果打log
的話,就可以保證完全正確了。
js 和 css 都只是靜態(tài)資源,你裝一個 nginx 啟動起來就可以了。相關(guān)內(nèi)容隨便一搜索就有,比如 http://www.runoob.com/linux/n...
class User {
private String country;
private String province;
private String name;
public User(String country, String province, String name) {
this.country = country;
this.province = province;
this.name = name;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Res {
private String country;
private String province;
private Integer count;
public Res(String country, String province, Integer count) {
this.country = country;
this.province = province;
this.count = count;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
}
@Test
public void test1() throws Exception {
List<Res> result = new ArrayList<>();
List<User> list = new ArrayList<>();
list.add(new User("中國", "北京", "張三"));
list.add(new User("中國", "北京", "張三"));
list.add(new User("中國", "北京", "李四"));
list.add(new User("中國", "北京", "李四"));
list.add(new User("中國", "北京", "李四"));
list.add(new User("中國", "北京", "王五"));
list.add(new User("中國", "湖南", "張三"));
list.add(new User("中國", "湖南", "張三"));
list.add(new User("中國", "湖南", "張三"));
list.stream()
.collect(Collectors.groupingBy(e -> e.getProvince()))
.forEach((k, v) -> {
StringBuilder count = new StringBuilder("0");
v.stream().
collect(Collectors.groupingBy(e -> e.getName()))
.forEach((k2, v2) -> {
if (v2.size() > 1) {
int c = Integer.parseInt(count.toString());
count.delete(0, count.length());
count.append(c + v2.size());
}
});
result.add(new Res(v.get(0).getCountry(), v.get(0).getProvince(), Integer.parseInt(count.toString())));
count.delete(0, count.length());
});
System.out.println(new ObjectMapper().writeValueAsString(result));
}
StringBuilder只是起了一個計數(shù)的作用, 雖然有點low~
很明顯zhiku
表中沒有user
這個表,如果你是想修改數(shù)據(jù)庫中的root
賬號的密碼,你在執(zhí)行update
語句前,要先切換到mysql
這張系統(tǒng)表,方式:mysql> use mysql;
后來自己根據(jù)一樓做了測試,首先執(zhí)行了一下兩個語句
SELECT * FROM media_info WHERE media_id = 0
SELECT * FROM media_info WHERE media_id = '%'+'bb'+'%'
發(fā)現(xiàn)結(jié)果相同,業(yè)績證實了,@范捷琦Jackie的說法是正確的,在這樣情況下會將media強(qiáng)制轉(zhuǎn)化為為0整數(shù),而【'%'+'bb'+'%'】這個值也是為零的。然后我又做了一下測試【SELECT * FROM media_info WHERE media_id =1】,然后發(fā)現(xiàn)匹配出來的是media_id以1開頭的數(shù)據(jù),所以猜測應(yīng)該是,【當(dāng)利用=進(jìn)行整數(shù)判斷時,會根據(jù)你所匹配的值,來進(jìn)行首字母匹配對應(yīng)的數(shù)據(jù)】
這樣的 json 結(jié)果,需要你用 Python 的數(shù)據(jù)庫類里設(shè)置好相應(yīng)的輸出 json 函數(shù)。
不敢再發(fā)我的項目鏈接,老是被那些不認(rèn)真,不仔細(xì),或者說一知半解的人舉報。
如果你想學(xué)習(xí) sql to sqlalchemy,你可以查看我的資料,然后找到相關(guān) github 項目的鏈接。
在商店里安裝,不要手動加載開發(fā)者模式就可以了?;蛘咧苯酉螺dpostman native app。
先確認(rèn)一下mysql workbench和應(yīng)用程序中是不是連的一個數(shù)據(jù)庫;
然后在日志中打印一下sql運(yùn)行的語句,看是否存在漢字亂碼的問題。
從后臺發(fā)過來一個json,和你本地保存一個json的區(qū)別:
1、前者有網(wǎng)絡(luò)傳輸消耗,當(dāng)然比后者慢一點
2、將來城市地名更新,前者只需修改后臺程序,后者需要重新打包前端程序。
綜上所述,我認(rèn)為的最佳方式是調(diào)用后臺接口獲取后,緩存在前端,前端程序退出的時候清空緩存
如果你直接寫在js里,可以省去解析json的時間(可以忽略不計)
oracle主鍵log_id 不能自動遞增
有兩個辦法:
1、使用oracle的自動增長序列
創(chuàng)建序列
create sequence S_T_THINK_LOG
increment by 1 //指定序列以1遞增,如果沒指定,默認(rèn)值1會使用
start with 1 //由1開始計數(shù)
nomaxvalue //不設(shè)置最大值
minvalue 1 //設(shè)置最小值1
cache 20 //預(yù)分配緩存大小為20
order
// 獲取下一個自增ID
public function getNextSeq(){
$sql = "select S_T_THINK_LOG.nextval id from sys.dual";
$result = $this->query($sql);
$nextId = $result[0]['id'];
return $nextId;
}
function writelog($uid,$username,$description,$status)
{
// 注意這里啦
// 注意這里啦
$data['log_id'] = $this->getNextSeq();
$data['admin_id'] = $uid;
$data['admin_name'] = $username;
$data['description'] = $description;
$data['status'] = $status;
$data['ip'] = request()->ip();
$data['add_time'] = time();
$log = Db::name('think_log')->insert($data);
}
第二種,就是樓上說的 觸發(fā)器啦
create or replace trigger trg_TINK_LOG
before insert on TINK_LOG
for each row
declare
begin
:think_log.LOG_ID:= S_T_THINK_LOG.NEXTVAL;
end trg_t1;
報錯信息不是提示你了嗎,server/views路徑下找不到error這個文件,express需要在app.js里設(shè)置view的路徑和模板引擎:
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
對應(yīng)的views文件夾下應(yīng)該有個error.jade。
/usr/local/etc/mongod.conf 里有一項叫'th'的配置它識別不出來
進(jìn)到mongod.conf看看
因為 getRealPath
是返回物理邏輯路徑,參考getRealPath);
你可能應(yīng)該用這個:getContextPath)
問題解決了,最后發(fā)現(xiàn)是mysql的多版本,調(diào)用公司自身服務(wù)接口的時候配了一個5.1.41的版本,項目本身又配了一個5.1.38的版本,后來把項目里的版本注釋掉刷新一下就解決了
KMP算法
KMP字符串模式匹配通俗點說就是一種在一個字符串中定位另一個串的高效算法。簡單匹配算法的時間復(fù)雜度為O(m*n);而KMP算法,可以證明它的時間復(fù)雜度為O(m+n)。
你的數(shù)據(jù)表里面usable_log
沒有指定默認(rèn)值,
然后你的 SQL 語句也沒有對這個字段賦值。
墨菲定律只要有可能出錯,就一定會出錯,不管它的概率有多小。
不能連續(xù)出現(xiàn),單機(jī)服務(wù)。舉個例子,假如你使用 自增ID
在加 System.nanoTime()
組成一個 long
類型數(shù)字(是字符串形式連接,而不是加法)。這個ID就不會重復(fù)了,因為 自增ID
一定不會重復(fù)。
舉個用戶表的栗子:
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT
username CHAR(15) NOT NULL
password CHAR(15) NOT NULL
UNIQUE (username)
現(xiàn)在主鍵是id,索引是username,對于InnoDB來說實際上有兩個索引:
id -> (username, password) // 以下稱為PK
username -> id // 以下稱為UK
如果你這么查:SELECT id FROM user WHERE username = ...
,那么MySQL只會查UK,而不會去查PK;
如果你這么查:SELECT id, password FROM user WHERE username = ...
,那么MySQL會查一次UK,得到id后再查一次PK。
如果你要優(yōu)化第二句,可以多加一個索引:
KEY (username, password)
這樣就有:
(username, password) -> id // IDX
如果你再這么查:SELECT id, password FROM user WHERE username = ...
,MySQL就只需要查IDX,而不用再查PK和UK了。
select * from t2 LEFT JOIN t1 ON t2. m_top_user_list like '%t1. user_id%'
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。