JAVA Developer Training
2. JAVA 프로젝트 1. DB연동 본문
public class ItemDB {
private MongoDatabase db = null;
private MongoCollection<Document> collection = null;
mongodb : //아이디 : 암호 @ 서버주소 : 포트번호 / DB명
private final String URL = "mongodb://id318:pw318@1.234.5.158:37017/id318";
final = 바꿀수 없게하는 속성
해당 몽고DB는 pom.xml의 <dependencies> 에 추가한 기능이다 DB는 NoSQL MongoDB를 사용중
싱글턴 : 인스턴스를 하나만 만들어야 하는 경우 사용, 여러 객체로 만들 수 는 있지만 많이 생성하여 사용시
객체의 설정갑싱 변경될 위험이 있기 때문에 사용 / 특징으로는 private 와 static method 를 사용한다는것
private static ItemDB itemDB = new ItemDB();
private ItemDB() { // DB연동 , 컬렉션
MongoClient client = MongoClients.create(URL);
this.db = client.getDatabase("id318");
this.collection = db.getCollection("java_item");
}
public static ItemDB getInstance() {
return itemDB;
}
public int insertItem(Item item) { // 물품 등록 (하나씩 등록가능)
try {
Document document = new Document();
document.append("_id", item.getCode());
document.append("name", item.getName());
document.append("text", item.getText());
document.append("price", item.getPrice());
document.append("quantity", item.getQuantity());
InsertOneResult result = collection.insertOne(document);
if (result.getInsertedId().asInt32().getValue() == item.getCode()) {
return 1;
}
return 0;
} catch (Exception e) {
System.out.println(e.getMessage());
return -1;
}
}
Exception : 예외처리
public int updateItem(Item item) throws Exception { // 물품 수정
UpdateResult result = this.collection.updateOne(Filters.eq("_id", item.getCode()),
Updates.combine(Updates.set("name", item.getName()), Updates.set("text", item.getText()),
Updates.set("price", item.getPrice()), Updates.set("quantity", item.getQuantity())));
if (result.getMatchedCount() == 1) {
return 1;
}
return 0;
// result.getMatchedCount() 일치하는 갯수들 같은내용으로 변경시 인식됨
// result.getModifiedCount() 변경된 갯수들 같은내용으로 변경시 인식안됨
해당 내용은 crtl + space를 이용하여 확인 가능하다
}
public int deleteItem(Item item) throws Exception { // 물품 삭제
DeleteResult result = this.collection.deleteOne(Filters.eq("_id", item.getCode()));
if (result.getDeletedCount() == 1) {
return 1;
}
return 0;
}
public List<Item> selectItems() throws Exception { // 전체 물품 조회
MongoCursor<Document> cursor = this.collection.find().sort(Filters.eq("_id", 1)).cursor();
// Filters 는 조건을 거는것 sort(정렬) 에 조건을 걸어 해당 조건에 맞춰 정렬한다
List<Item> 은 클래스명 list 는 객체명
List<Item> list = new ArrayList<Item>(); // 빈 리스트 생성
while(조건)
while (cursor.hasNext()) { // 가져올 수 있는 파일이 있는지 판단
Document doc = cursor.next(); // 자료 가져와서 doc에 저장
Item item = new Item();
item.setCode((int) doc.get("_id"));
item.setName((String) doc.get("name"));
item.setText((String) doc.get("text"));
item.setPrice((int) doc.get("price"));
item.setQuantity((long) doc.get("quantity"));
// (int) 형변환 형이 확정안된 상태를 변환하는것
// integer.parseInt(문자) 이미 형이 정해진, 확정된 상황 문자를=>숫자로
// Document = Item
list.add(item);
}
return list;
}
}
'트레이닝' 카테고리의 다른 글
6. ermaster 테이블 DB설계 (0) | 2021.08.27 |
---|---|
5. JAVA 프로젝트 4. 프레임 생성 (0) | 2021.08.27 |
4. JAVA 프로젝트 3. 패널 생성 (0) | 2021.08.27 |
3. JAVA 프로젝트 2. Table 생성 (0) | 2021.08.27 |
1 . JAVA 프로젝트 (0) | 2021.08.27 |