最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java學(xué)習(xí)筆記:IO流,字節(jié)流,集合,事務(wù),配置文件,常用方法【詩(shī)書畫唱】

2020-07-16 14:46 作者:詩(shī)書畫唱  | 我要投稿

集合的分類:

list:ArrayList、LinkedList、Vector

1.有序(可以使用下標(biāo)進(jìn)行訪問(wèn))

2.大小任意

3.存儲(chǔ)的類型任意

set:HashSet

1. 無(wú)序(沒(méi)有下標(biāo))

2.大小任意

3.存儲(chǔ)的類型任意

4.取數(shù)據(jù)的時(shí)候取的順序和存入的順序可能不一致

map:HashMap

1. 無(wú)序(沒(méi)有下標(biāo))

2.大小任意

3.采用的鍵值對(duì)的方式進(jìn)行存儲(chǔ),鍵是不能重復(fù),值是可以重復(fù)



// Collections類是一個(gè)工具類,主要是對(duì)于集合操作的工具類,其中的方法全部都是靜態(tài)的。



// 常用方法:

// 1.addAll():一次性對(duì)集合添加多條數(shù)據(jù)

// 2. Sort():對(duì)集合內(nèi)容進(jìn)行排序

// 3.shuffle():對(duì)集合元素進(jìn)行隨機(jī)排序

// 4.copy():復(fù)制集合,要求復(fù)制的集合的長(zhǎng)度大于被復(fù)制的集合的長(zhǎng)度

// 5.max():得到集合中的最大值

// 6.min():得到集合中的最小值




SQL_PreparedStatement:

什么是防注入?直接字符串拼接用戶再后輸入一個(gè)or 1=1的時(shí)候那么這個(gè)條件是肯定成立的,所以用戶輸入不輸入用戶名沒(méi)有多大的關(guān)系了為了解決這個(gè)問(wèn)題,就要使用preparedstatement解決,它默認(rèn)將sql語(yǔ)句編譯成函數(shù),每次只要傳入相應(yīng)的參數(shù)就可以了,就可以防止用戶sql注入。

預(yù)處理:我們每次對(duì)于數(shù)據(jù)庫(kù)操作數(shù)據(jù)庫(kù)都要將sql語(yǔ)句編譯成函數(shù)

如果我們使用預(yù)處理的時(shí)候,數(shù)據(jù)庫(kù)就默認(rèn)生成了一個(gè)函數(shù),以后再

傳入相同的內(nèi)容的時(shí)候只需要調(diào)用這個(gè)函數(shù)就可以了,這個(gè)就可以提升sql執(zhí)行的效率



//1.導(dǎo)入數(shù)據(jù)包

//2.加載數(shù)據(jù)包

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//3.創(chuàng)建連接數(shù)據(jù)庫(kù)的對(duì)象(Connection)

Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=fuxi","qqq","11111");

//4.創(chuàng)建執(zhí)行sql語(yǔ)句的對(duì)象,是statement,preparedStatement(防注入,預(yù)處理)

String sql="select * from denglu where uid=? and uname=?";//1

PreparedStatement ps=con.prepareStatement(sql);//編譯sql語(yǔ)句

ps.setObject(1, 1);

ps.setObject(2, "qwe");

//5.寫并且執(zhí)行sql語(yǔ)句,ResultSet的對(duì)象

ResultSet res=ps.executeQuery();//使用這個(gè)方法去執(zhí)行sql語(yǔ)句

//6.遍歷這個(gè)對(duì)象

while(res.next()){

System.out.println(res.getObject(1)+"? "+res.getObject(2));

}




為什么要讀取配置文件://將一些常用的配置信息保存在配置文件里,

//java類一旦編譯,雖然我們不能直接修改編譯后的文件,但是我們

//可以修改配置文件,寫的代碼對(duì)于配置都是去配置文件里讀的,萬(wàn)一

//數(shù)據(jù)庫(kù)用戶或者密碼修改里之后,我直接修改配置文件即可



//讀取配置文件:

//1.建立一個(gè)文件,src目錄下,文件名稱可以

//隨便,但是后綴名必須為.properties

//2.添加幾個(gè)內(nèi)容

//3.在main中添加一下代碼



將這個(gè)配置文件轉(zhuǎn)化為字節(jié)流

//使用類加載器轉(zhuǎn)化文件

InputStream is=qqq.class.getResourceAsStream ("../zz.properties");

Properties p=new Properties();

p.load(is);

System.out.println(p);

//獲取指定的單個(gè)內(nèi)容

System.out.println(p.getProperty("qq"));


創(chuàng)建數(shù)據(jù)庫(kù)表stu,結(jié)構(gòu)uid,uname,upwd,umoney,使用預(yù)處理和配置文件制作查詢和增加數(shù)據(jù)



事務(wù):

事務(wù)是指一組操作,要么都執(zhí)行成功,要么都執(zhí)行失敗。四個(gè)特性;

1)原子性:一組操作,要么都執(zhí)行成功,要么都執(zhí)行失敗。


?2)隔離性:一個(gè)事務(wù)的操作沒(méi)有完成之前,其他事務(wù)是不能對(duì)這個(gè)事務(wù)處理的結(jié)果進(jìn)行操作的,需要犧牲速度


3)一致性:事物發(fā)生和發(fā)生后的總金額依然匹配。


4)持久性:事務(wù)產(chǎn)生的影響是不能撤銷的。Connection c=DBUtil.getCon();c.setAutoCommit(false);//設(shè)置連接為手動(dòng)提交


c.commit();//在執(zhí)行完操作后提交事務(wù)


c.rollback();出現(xiàn)異常執(zhí)行回滾File操作:


構(gòu)造方法:

new File("路徑");

new File("父級(jí)路徑","文件名稱");


常用方法:

createNewFile():創(chuàng)建文件

mkdir():創(chuàng)建文件夾

mkdirs():創(chuàng)建多級(jí)文件夾

delete():刪除文件,當(dāng)你的文件夾中包含內(nèi)容的時(shí)候,是不會(huì)刪除的



判斷文件:

判斷文件是否存在:exists();

判斷輸入的路徑是否是絕對(duì)路徑:isAbsolute()

判斷是否是一個(gè)文件夾:isDirectory();

判斷是否是一個(gè)文件:isFile();

判斷文件是否是隱藏文件(系統(tǒng)文件):isHidden();


獲取的方法:

獲取文件的絕對(duì)路徑:getAbsoluteFile()

獲取文件的父路徑:getParentFile();

獲取文件的名字:getName();

返回創(chuàng)建對(duì)象時(shí)的路徑:getPath()

返回文件最后修改時(shí)間:lastModified()

返回文件的字節(jié)數(shù):length()

返回文件是否可讀:CanRead()

返回文件是否可寫:CanWrite();


list:得到文件夾下的所有的文件名稱,它得到的是一個(gè)String類型的數(shù)組

listFiles:得到文件夾下的所有的文件,它得到的是文件類型的數(shù)組

listRoots:得到計(jì)算機(jī)的根目錄


IO流的介紹:

輸入輸出流,將你的程序作為中心點(diǎn),從計(jì)算機(jī)中傳入到程序里叫做輸入流,從程序里往計(jì)算機(jī)輸出文件叫做輸出流

字節(jié)流,字符流,計(jì)算機(jī)文件的最基本單位是字節(jié),1個(gè)字符可以包含1-3個(gè)字節(jié)


1.字符流每次讀取兩個(gè)字節(jié),所以相較于字節(jié)流

速度要快

2.字符流只能夠處理文本文件,字節(jié)流可以處理

其他任何文件結(jié)論:只要是純文本數(shù)據(jù)優(yōu)先使用字符流,除此之外都使用字節(jié)



讀取文本內(nèi)容語(yǔ)法:

File f=new File("ceshi.txt");

//輸出流(追加內(nèi)容)

FileReader fw=new FileReader(f);

char[] cs=new char[100];

int len;

while((len=fw.read(cs))!=-1){

System.out.println(new String(cs,0,len));

}

fw.close();



寫入文本內(nèi)容語(yǔ)法:

File f=new File("ceshi.txt");

//輸出流(追加內(nèi)容)

FileWriter fw=new FileWriter(f);

char[] cs=new char[100];

int len;

while((len=fw.read(cs))!=-1){

fw.writer(new String(cs,0,len));

}

fw.close();



字節(jié)流:

FileInputStream:字節(jié)輸入流

FileOutputStream:字節(jié)輸出流

字節(jié)流是可以讀取任何文件,每次讀取的時(shí)候是1字節(jié)

緩沖流(包裝流):

BufferedReader:字符輸入緩沖流

BufferedWriter:字符輸出緩沖流

BufferedInputStream:字節(jié)輸入緩沖流

BufferedOutputStream:字節(jié)輸出緩沖流

為了提高讀寫流的效率,引入了緩沖機(jī)制,進(jìn)行批量的讀寫,提高了讀寫的效率。Buffered包裝類用于加快了讀寫內(nèi)容的速度。


Java學(xué)習(xí)筆記:IO流,字節(jié)流,集合,事務(wù),配置文件,常用方法【詩(shī)書畫唱】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
赤水市| 双柏县| 承德市| 扬中市| 宁城县| 玉溪市| 清水河县| 聂荣县| 安泽县| 北京市| 晋中市| 伊金霍洛旗| 睢宁县| 定州市| 鄯善县| 玛沁县| 江西省| 富平县| 瓦房店市| 阳新县| 遂溪县| 昌江| 河池市| 车险| 三都| 大田县| 聂拉木县| 通渭县| 云霄县| 鹿泉市| 云安县| 鸡西市| 繁昌县| 绩溪县| 抚顺市| 突泉县| 炉霍县| 当阳市| 崇明县| 天津市| 长乐市|