掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在開發(fā)Java應(yīng)用程序時,數(shù)據(jù)庫操作是不可避免的一部分。在許多情況下,我們需要從數(shù)據(jù)庫中查詢數(shù)據(jù),確保數(shù)據(jù)不會重復(fù)。這一過程在Java中的實現(xiàn)比想象的要簡單。在此,我們將討論Java中如何實現(xiàn)查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)的方法。

站在用戶的角度思考問題,與客戶深入溝通,找到無棣網(wǎng)站設(shè)計與無棣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋無棣地區(qū)。
1. 數(shù)據(jù)庫準備
我們需要確保數(shù)據(jù)庫已經(jīng)準備就緒。我們創(chuàng)建一個表并向其中插入數(shù)據(jù)。在此示例中,我們創(chuàng)建一個“book”表,并向其中添加一些書籍數(shù)據(jù)。表結(jié)構(gòu)包含以下列:
1. id:唯一ID
2. bookname:書籍名稱
3. author:書籍作者
4. publish:書籍出版社
5. pubdate: 書籍出版日期
以下是MySQL數(shù)據(jù)庫中創(chuàng)建“book”表的SQL語句:
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bookname` varchar(50) NOT NULL,
`author` varchar(50) NOT NULL,
`publish` varchar(50) NOT NULL,
`pubdate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `book` (`bookname`, `author`, `publish`, `pubdate`) VALUES
(‘Java編程思想’, ‘Bruce Eckel’, ‘機械工業(yè)出版社’, ‘2023-5-1’),
(‘Thinking in Java’, ‘Bruce Eckel’, ‘Prentice Hall’, ‘2023-2-2’),
(‘Java核心技術(shù)’, ‘Cay Horstmann’, ‘機械工業(yè)出版社’, ‘2023-2-2’),
(‘Java開發(fā)實戰(zhàn)經(jīng)驗’, ‘Joshua Bloch’, ‘清華大學(xué)出版社’, ‘2023-3-3’),
(‘Effective Java’, ‘Joshua Bloch’, ‘Addison-Wesley Professional’, ‘2023-5-8’)
2. Java代碼實現(xiàn)
接下來,我們將使用Java代碼連接到數(shù)據(jù)庫并查詢數(shù)據(jù)。我們需要主要關(guān)注以下幾個步驟:
1. 導(dǎo)入必要的包:Java中有幾個包可用于與數(shù)據(jù)庫交互。在此示例中,我們將使用JDBC和MySQL的Java驅(qū)動程序。
2. 加載驅(qū)動程序:Java中的所有數(shù)據(jù)庫驅(qū)動程序都實現(xiàn)了java.sql.Driver接口,并且必須在使用之前加載到JVM中。
3. 連接數(shù)據(jù)庫:我們需要建立與數(shù)據(jù)庫的連接。連接字符串應(yīng)該包含數(shù)據(jù)庫的名稱、主機名、端口號和用戶名等信息。
4. 執(zhí)行查詢:我們可以使用SQL查詢語句從數(shù)據(jù)庫中檢索數(shù)據(jù)。將查詢語句傳遞給Statement對象,并調(diào)用executeQuery()方法執(zhí)行查詢。使用ResultSet對象獲取查詢結(jié)果。
以下是Java代碼示例:
import java.sql.*;
public class DBConnect {
public static void mn(String[] args) {
// JDBC驅(qū)動程序和數(shù)據(jù)庫URL
String driver = “com.mysql.jdbc.Driver”;
String url = “jdbc:mysql://localhost:3306/test”;
// 數(shù)據(jù)庫的用戶名和密碼
String user = “root”;
String password = “123456”;
try {
// 加載驅(qū)動程序
Class.forName(driver);
// 連接數(shù)據(jù)庫
Connection conn = DriverManager.getConnection(url, user, password);
// 執(zhí)行查詢
Statement stmt = conn.createStatement();
String sql = “SELECT DISTINCT author FROM book”;
ResultSet rs = stmt.executeQuery(sql);
// 遍歷查詢結(jié)果
while (rs.next()) {
// 輸出結(jié)果
System.out.println(rs.getString(“author”));
}
// 關(guān)閉連接和資源
rs.close();
stmt.close();
conn.close();
System.out.println(“查詢完成!”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在該示例代碼中,我們使用JDBC驅(qū)動程序加載MySQL數(shù)據(jù)庫,并使用Connection對象與數(shù)據(jù)庫建立連接。然后,我們使用Statement對象執(zhí)行查詢,并使用ResultSet對象獲取查詢結(jié)果集。我們通過遍歷結(jié)果集來輸出結(jié)果。
需要注意的是,以上代碼使用了“SELECT DISTINCT”語句,該語句可以確保結(jié)果不會重復(fù)。
3. 結(jié)論
查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)是Java應(yīng)用程序中常見的任務(wù)。通過使用Java編寫的JDBC代碼,我們可以輕松地連接到數(shù)據(jù)庫并執(zhí)行查詢。得到結(jié)果后,我們可以通過遍歷結(jié)果集來輸出結(jié)果。在執(zhí)行查詢時,我們應(yīng)該特別注意使用SQL語句的SELECT DISTINCT子句來確保結(jié)果不會重復(fù)。通過上述步驟,我們可以成功地實現(xiàn)查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)的任務(wù)。
相關(guān)問題拓展閱讀:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
public class ReadFile {
public static void main(String args) {
InputStream in = null;
InputStreamReader inReader = null;
BufferedReader reader = null;
try {
in = ReadFile.class.getResourceAsStream(“demo.txt”); // 文件和類放在同一目錄
inReader = new InputStreamReader(in);
reader = new BufferedReader(inReader);
String line = null;
Set set = new HashSet(); // set去重
Pattern pattern = Pattern.compile(“{1}.*”); // 以字母開頭的
while((line = reader.readLine()) != null) {
if (pattern.matcher(line).matches()) {
continue; // 如果之一個字符是字母,跳過
}
set.add(line);
}
for (String v : set) {
System.out.println(v); // 列結(jié)果
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
先對的你數(shù)據(jù)進行截取 str.substring(1,str.length) 再定義一個list dataList 用于存放你的截取數(shù)據(jù)
之后每次進行判斷 dataList .contains(下一個數(shù)據(jù))
if(!dataList .contains(下一個數(shù)據(jù))){
// 證明下一個數(shù)據(jù)不在List里面
dataList.add(下一個數(shù)據(jù));
}
直至數(shù)據(jù)讀取完畢 最后查看list的size就可以了
這個簡單,讀取每行,用set存放,因為set存放的數(shù)據(jù)不能重復(fù)。
在存放之前,拿出你讀取的字符串,然后取出字符串的之一個char 與 A~Z或者a~z比較,是的話,就直接跳過去,讀取下一行就ok了
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class File_Double_Line{
public static void main(String args)throws IOException{
BufferedReader in_ = new BufferedReader(new FileReader(“File_Double_Line.java”));
Set list= new HashSet();
String line;
while((line=in_.readLine())!=null){
if(line.length()>0){
char c=line.charAt(0);
if(c0x39){//去除非數(shù)字開頭的行
continue;
}
list.add(line);
}
}
in_.close();
for(Iterator it = list.iterator(); it.hasNext(); ){
System.out.println(it.next());//輸出結(jié)果
}
}
}
來現(xiàn)成的代碼
那為兄弟說的很正確就用set把
數(shù)據(jù)酷里面查詢出來好象可以過濾,但是我忘記,你自己去看看把,,
讓里加的時候 你可以用Set
Set set=new HashSet();
這個不添加相同元素 也就是說 里沒有相同元素
關(guān)于java查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計和制作領(lǐng)域具有豐富的經(jīng)驗。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流