天天看點

實驗室架構學習1SSM(Spring+SpringMVC+MyBatis)

實驗室架構采用的是SSM,權限管理使用的是RBAC模型,依賴使用Maven進行管理。

SSM(Spring+SpringMVC+MyBatis)

Java

基本文法

注釋{ 單行, 多行, 文檔注釋}

資料類型{

整型`

byte(-2^7^ ~ 2^7^) 
short(-2^15^ ~ 2^15^)     
int(-2^31^ ~ 2^31^)    
long(-2^63^ ~ 2^63^)
           

浮點

小數預設double類型 是以 float f=0.1f; 多加一個f表示float類型

float maxF = Float.MAX_VALUE;

float的最大值

字元,char 定義單個字元

轉義字元 ‘+’

Unicode 編碼輸出中文名

布爾類型

基本類型轉換:

}

運算:

b=a++;  先指派再自增
b=++a;  先自增再指派
           

(條件1)&(條件2) 短路與 條件1不成立就不接着看條件2了

^ 異或 倆操作數不相同時傳回true

三目運算符

(表達式)?a1:b2;

選擇與循環語句

if…else…else if… else

switch(){
case 1:{ break; }
case 2:{ break; }
default: ;
}
           

數組

靜态初始化

int []arr;   
int arr[] = new int[]{1,2,3};
           

foreach方式

for(int i:arr){
	System.out.println(j);
}
           

動态初始

int arry[] = new int[3];
           

面向對象

封裝,繼承,多态

String …hobbies 不固定參數

傳到方法中的對象是可以方法中更改數值,在外部也變化的。

方法:

重載指的參數數量,類型不一樣;

傳回類型不同不算重載。

static

普通方法要 對象.方法

靜态方法 類名.方法

通路控制權限

實驗室架構學習1SSM(Spring+SpringMVC+MyBatis)

package 要導入其他包

構造塊

通用代碼塊在執行個體化就會運作

靜态代碼塊隻要加載類就會執行

String類

直接指派若值相同,指向同一位址;
new 每次都配置設定一個新的位址
==   比較的是引用
.equals()   比較的是内容
           

繼承

子類可用用super()調用父類的構造方法

public Cat(int age, String name){
	super(name, age);
}
           

final關鍵字

使用final聲明的類不能被繼承;

使用final聲明的方法不能被子類覆寫;

使用final聲明的變量不能被修改,即為常量;

抽象類

  • 包含一個抽象方法的類是抽象類;
  • 抽象類和抽象方法都要用abstract關鍵字修飾;
  • 抽象方法隻需要聲明而不需要實作;
  • 抽象類必須被子類(假如不是抽象類)必須重寫抽象中的全部抽象方法;
  • 抽象類不能被執行個體化

接口

方法不用實作

多态性

1,方法的重載和重寫;

2,可以用父類的引用指向子類的具體實作,而且可以随時更換為其他子類的具體實作;

Object類

instanceof

匿名内部類

包裝類:

基本類型和類類型轉化然後操作

《Head First設計模式》

異常處理 27-28講

try{
	...
}catch(Exception e){
	....
}
           

編譯異常要捕獲(try…catch)

運作異常可以不捕獲

自定義異常

JAVA常用類

Date類

Calandar.MONTH從0開始 要+1

SimpleDateFormat 用于日期和字元串轉換

String VS StringBuffer

string通過 str+=“xxx”; 增加内容

在堆區中指向不同區域

對String複雜操作用StringBuffer 如append

在堆區中指向相同區域

Math 類

Arrays類

JAVA泛型

public class Prototyle<T extends type>{
	private T t;
	public Prototyle(T t){
		super( );
		this.t = t;
	}
	set()...
	get()...
}
main(){
	Prototyle<ex1> p1 = new Prototype<ex1>( new ex1());
	Prototyle<ex2> p2 = new Prototype<ex2>( new ex2());
}
           

通配符泛型 32

反射

Class<?> c = Class.format("com.java1234.chap07.sec01.Student")
Student s = (Student) c.newInstance()
           

通過反射獲得構造方法

Constructor<?>[] cons = c.getConstructors();
s = (Student) cons[0].newInstance("abc", 11 );
           

JAVA集合

ArrayList.size() .add(str) .remove(int) .set(int, str)

LinkedList.indexof(str) .peekFirst()

雙向連結清單

集合的周遊

Iterator

LinkedList<Student> list = new LinkList<Student>();
Iterator<Student> it = list.iterator( );
while(it.hasnext()){
	...
}
           

foreach

for(Student s:list) {
	System.out.println(s);
}
           

set集合

HashSet是無序且不重複的

Map<K,V>

hashmap.get(key) 獲得value

value擷取key隻能手寫周遊

Java多線程 37-38講

Class extends Thread

synchronized 線程鎖

I/O流

File file=new File("dir");
InputStream inputStream= new FileInputStream(file);

OutputStream outputStream = new FileOutputStream(file);
OutputStream outputStream = new FileOutputStream(file, true);
           

Buffer

BufferedInputStream bufferedinputStream =new BufferedInputStream(new FileInputStream("C://Users//83926//Desktop//1).txt"));
BufferedOutputStream bufferedoutputStream =new BufferedOutputStream( new FileOutputStream("C://Users//83926//Desktop//11.txt"));
           

Reader Writer

Reader reader=new FileReader(file);
char c[]=new char[1024];
int len=reader.read(c);
           
實驗室架構學習1SSM(Spring+SpringMVC+MyBatis)

debug

F6 單步 F8 完成 F5進入方法

ctrl+shift+i 檢視表示式值

動态修改

快捷鍵:

main alt+/ 可以獲得提示

syso alt+/ 可以獲得輸出語句

ctrl+shift+o 自動導入包

ctrl+shift+/ 多行注釋

ctrl+d 删除目前行

alt+shift+s 彈出菜單選擇自動生成get和set方法

alt+/ 打開所選函數的重載

選區按住alt 按方向鍵可以移動位置

ctrl+o 搜尋目前class的屬性,方法

Mysql

環境搭建

  • 安裝mysql
  • 安裝SQLyog可視化軟體
  • 安裝apach-tomcat
  • eclipse配置server以及JARs

查詢語句

IN / NOT IN

BETWEEN A AND B

LIKE %任意字元 _單個字元

IS NULL

ORDER BY ASC/DESC 升序/降序

GROUP BY 分組查詢{

GROUP_CONCAT()函數一起使用

和聚合函數一起使用 例如COUNT()

HAVING一起使用

WITH ROLLUP一起使用 在最後一行加總和

}

LIMIT 0,5 ; 從0開始數五條

聚合函數

COUNT() AS total 以total命名表頭

SUM()

AVG()

MAX()

MIN()

??如何找到各年級年齡最大的學生 【未解決】

連接配接查詢

笛卡爾乘積

左連接配接有左表全部資訊 a LEFT JOIN b ON c

右連接配接有右表全部資訊 a RIGHTJOIN b ON c

子查詢

合并查詢

UNION 合并查詢結果(不可重複)

UNION ALL 合并查詢結果(可重複)

表取别名 t_book t

字段取别名 AS

插入删除資料

索引 11-12講

提高查詢速度;

視圖

1.簡化

2安全性

3邏輯獨立性

CREATE VIEW x AS SELECT * FROM t_book;

SHOW TABLE STATUS LIKE ‘v3’;

替換view

CREATE OR REPLACE VIEW x AS SELECT * FROM t_book;

ALTER VIEW x AS SELECT * FROM t_book;

更新視圖

INSERT INTO v1 VALUES (null.‘xx’,123,‘feng’,1);

UPDATE v1 SET bookName=‘java’ WHERE id=5;

DELETE FROM v1 WHERE id=5;

DROP VIEW IF EXISTS v4;

觸發器

CREATE TRIGGER trig_bnum AFTER INSERT 
	ON t_book FOR EACH ROW 
		UPDATE t_bookType SET bookNum=bookNum+1 WHERE new.bookTypeid=t_booktype.id;
           

觸發器觸發多個效果

DELIMITER |
CREATE TRIGGER trig_book2 AFTER DELETE
	ON t_book FOR EACH ROW 
	BEGIN
		UPDATE t_booktype SET bookNum=bookNum-1 WHERE old.booktypeid=id;
		INSERT INTO t_log VALUES(NULL,NOW(),'删除了一條book資料');
	END
|
DELIMITER;
           

SHOW TRIGGERS

DROP TRIGGERS trig_book;

存儲過程,存儲函數

遊标 【未解決】 18講

流程控制

DELIMITER &&
CREATE PROCEDURE pro_user(IN bookId INT)
	BEGIN
		SELECT COUNT(*) INTO @num FROM t_user1 WHERE id=bookId;
		IF @num>0 THEN UPDATE t_user1 SET userName='ssss'WHERE id=bookId;
		ELSE
			INSERT INTO t_user1 VALUES(NULL,'111','222');
		END IF;
	END
&&
DELIMITER;	

CALL pro_user(4);
           

CASE 語句

CASE @num
	WHEN value THEN ...
	WHEN value THEN ...
	ELSE ...
END CASE
           

LOOP LEAVE

BEGIN
	aaa:LOOP
		SET totalNum=totalNum-1;
		IF totalNum=0 THEN LEAVE aaa;
		ELSE INSERT INTO t_user VALUES(totalNum,'xxxx','aaaa');
		END IF
	END LOOP aaa;
END
           

ITERATE

IF value THEN ITERATE aaa;  跳過本次循環
           

REPEAT

BEGIN
	REPEAT
		SET totalNum=totalNum-1;
    	INSERT INTO t_user VALUES(totalNum,'xxxx','aaaa');
    	UNTILL	totalNum=1;
	END REPEAT
END
           

WHILE

BEGIN
	WHILE totalNum>0 DO
    	INSERT INTO t_user VALUES(totalNum,'xxxx','aaaa');
    	SET totalNum=totalNum-1;
	END WHILE;
END
           

19講對存儲過程和函數的操作

提示

建表id自增

當删除一列時對應id列為空,可以通過insert固定位填充且不會影響自增。

例如自增下一次為id=11. 此時删除id=7,插入values(7,xxx)

下次插入values(null,xxx) id為11

資料備份

繼續閱讀