新聞中心
在開發(fā)Java應(yīng)用程序時(shí),數(shù)據(jù)庫操作是不可避免的一部分。在許多情況下,我們需要從數(shù)據(jù)庫中查詢數(shù)據(jù),確保數(shù)據(jù)不會(huì)重復(fù)。這一過程在Java中的實(shí)現(xiàn)比想象的要簡單。在此,我們將討論Java中如何實(shí)現(xiàn)查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)的方法。

站在用戶的角度思考問題,與客戶深入溝通,找到無棣網(wǎng)站設(shè)計(jì)與無棣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋無棣地區(qū)。
1. 數(shù)據(jù)庫準(zhǔn)備
我們需要確保數(shù)據(jù)庫已經(jīng)準(zhǔn)備就緒。我們創(chuàng)建一個(gè)表并向其中插入數(shù)據(jù)。在此示例中,我們創(chuàng)建一個(gè)“book”表,并向其中添加一些書籍?dāng)?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’, ‘機(jī)械工業(yè)出版社’, ‘2023-5-1’),
(‘Thinking in Java’, ‘Bruce Eckel’, ‘Prentice Hall’, ‘2023-2-2’),
(‘Java核心技術(shù)’, ‘Cay Horstmann’, ‘機(jī)械工業(yè)出版社’, ‘2023-2-2’),
(‘Java開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)’, ‘Joshua Bloch’, ‘清華大學(xué)出版社’, ‘2023-3-3’),
(‘Effective Java’, ‘Joshua Bloch’, ‘Addison-Wesley Professional’, ‘2023-5-8’)
2. Java代碼實(shí)現(xiàn)
接下來,我們將使用Java代碼連接到數(shù)據(jù)庫并查詢數(shù)據(jù)。我們需要主要關(guān)注以下幾個(gè)步驟:
1. 導(dǎo)入必要的包:Java中有幾個(gè)包可用于與數(shù)據(jù)庫交互。在此示例中,我們將使用JDBC和MySQL的Java驅(qū)動(dòng)程序。
2. 加載驅(qū)動(dòng)程序:Java中的所有數(shù)據(jù)庫驅(qū)動(dòng)程序都實(shí)現(xiàn)了java.sql.Driver接口,并且必須在使用之前加載到JVM中。
3. 連接數(shù)據(jù)庫:我們需要建立與數(shù)據(jù)庫的連接。連接字符串應(yīng)該包含數(shù)據(jù)庫的名稱、主機(jī)名、端口號(hào)和用戶名等信息。
4. 執(zhí)行查詢:我們可以使用SQL查詢語句從數(shù)據(jù)庫中檢索數(shù)據(jù)。將查詢語句傳遞給Statement對(duì)象,并調(diào)用executeQuery()方法執(zhí)行查詢。使用ResultSet對(duì)象獲取查詢結(jié)果。
以下是Java代碼示例:
import java.sql.*;
public class DBConnect {
public static void mn(String[] args) {
// JDBC驅(qū)動(dòng)程序和數(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ū)動(dòng)程序
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ū)動(dòng)程序加載MySQL數(shù)據(jù)庫,并使用Connection對(duì)象與數(shù)據(jù)庫建立連接。然后,我們使用Statement對(duì)象執(zhí)行查詢,并使用ResultSet對(duì)象獲取查詢結(jié)果集。我們通過遍歷結(jié)果集來輸出結(jié)果。
需要注意的是,以上代碼使用了“SELECT DISTINCT”語句,該語句可以確保結(jié)果不會(huì)重復(fù)。
3. 結(jié)論
查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)是Java應(yīng)用程序中常見的任務(wù)。通過使用Java編寫的JDBC代碼,我們可以輕松地連接到數(shù)據(jù)庫并執(zhí)行查詢。得到結(jié)果后,我們可以通過遍歷結(jié)果集來輸出結(jié)果。在執(zhí)行查詢時(shí),我們應(yīng)該特別注意使用SQL語句的SELECT DISTINCT子句來確保結(jié)果不會(huì)重復(fù)。通過上述步驟,我們可以成功地實(shí)現(xiàn)查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)的任務(wù)。
相關(guān)問題拓展閱讀:
- java如何讀取文件中不重復(fù)的數(shù)字個(gè)數(shù),并且去掉字母開頭的?詳細(xì)如下:
- java 子查詢?nèi)绾芜^濾重復(fù)記錄
java如何讀取文件中不重復(fù)的數(shù)字個(gè)數(shù),并且去掉字母開頭的?詳細(xì)如下:
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; // 如果之一個(gè)字符是字母,跳過
}
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();
}
}
}
}
}
先對(duì)的你數(shù)據(jù)進(jìn)行截取 str.substring(1,str.length) 再定義一個(gè)list dataList 用于存放你的截取數(shù)據(jù)
之后每次進(jìn)行判斷 dataList .contains(下一個(gè)數(shù)據(jù))
if(!dataList .contains(下一個(gè)數(shù)據(jù))){
// 證明下一個(gè)數(shù)據(jù)不在List里面
dataList.add(下一個(gè)數(shù)據(jù));
}
直至數(shù)據(jù)讀取完畢 最后查看list的size就可以了
這個(gè)簡單,讀取每行,用set存放,因?yàn)閟et存放的數(shù)據(jù)不能重復(fù)。
在存放之前,拿出你讀取的字符串,然后取出字符串的之一個(gè)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)成的代碼
java 子查詢?nèi)绾芜^濾重復(fù)記錄
那為兄弟說的很正確就用set把
數(shù)據(jù)酷里面查詢出來好象可以過濾,但是我忘記,你自己去看看把,,
讓里加的時(shí)候 你可以用Set
Set set=new HashSet();
這個(gè)不添加相同元素 也就是說 里沒有相同元素
關(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è)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
名稱欄目:Java實(shí)現(xiàn)查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù)(java查詢數(shù)據(jù)庫數(shù)據(jù)不重復(fù))
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/cdegiie.html


咨詢
建站咨詢
