Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi dangngocgiabao
    Đoạn code này nhằm check xem ID của sinh viên đó đã có trong database chưa? nếu chưa thì thêm vào database hết!!!
    Bạn ơi làm ơn ghi chú ý nghĩa từng dòng lệnh giúp mình với được không,mình bít tổng thể là vậy nhưng mấy cái lệnh như : psCheck.setString(1, masv), sv.setMasv(rs.getString(1))... tác dụng để làm gì nhỉ :3

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hãy xem chữ kí của dangngocgiabao:

    Có thể bạn nghĩ tôi kiêu ngạo, nhưng cho dù cả thế giới có nói vậy tôi cũng chẳng bao giờ giúp những kẻ "há miệng chờ sung"!!!
    Ý nhĩa của phương thức:
    - Nếu là phương thức của các lớp của Oracle thì bạn vào Java Docs
    - Nếu là phương thức của các bạn tự viết hoặc người khác viết mẫu thì hỏi người viết.

    Vấn đề là bạn hãy tự đọc và tự hiểu, sao phải giải thích từng dòng chứ?

    Nói về đoạn mã:
    Dòng: psCheck.setString(1, masv); gán vào dấu ? ở select *from tblSinhVien where fldMaSV=? giá trị masv. Tham số thứ nhất (số 1) là thứ tự của dấu ? đó.
    Dòng: sv.setMasv(rs.getString(1)); khá vô nghĩa hoặc là dư thừa. getString(1) tức là lấy giá trị Mã sinh viên ở các kết quả trả về. Mà giá trị đó chính là masv. Để luôn sv.setMasv(masv);

    Vui lòng tự tìm hiểu.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi SITUVNX
    Hãy xem chữ kí của dangngocgiabao:


    Ý nhĩa của phương thức:
    - Nếu là phương thức của các lớp của Oracle thì bạn vào Java Docs
    - Nếu là phương thức của các bạn tự viết hoặc người khác viết mẫu thì hỏi người viết.

    Vấn đề là bạn hãy tự đọc và tự hiểu, sao phải giải thích từng dòng chứ?

    Nói về đoạn mã:
    Dòng: psCheck.setString(1, masv); gán vào dấu ? ở select *from tblSinhVien where fldMaSV=? giá trị masv. Tham số thứ nhất (số 1) là thứ tự của dấu ? đó.
    Dòng: sv.setMasv(rs.getString(1)); khá vô nghĩa hoặc là dư thừa. getString(1) tức là lấy giá trị Mã sinh viên ở các kết quả trả về. Mà giá trị đó chính là masv. Để luôn sv.setMasv(masv);

    Vui lòng tự tìm hiểu.
    Bạn ơi mình hiểu cách thức hoạt động từng lệnh! nhưng không hình dung trong đầu được sau mỗi lệnh nó đưa ra cái gì cụ thể khi tác dụng với csdl.Ví dụ dòng: rs = rs=psCheck.executeQuery(); sau khi gán masv nó sẽ thực hiện câu truy vấn select đến csdl và trả về kết quả "rs",Nhưng mình khó hiểu là khi masv là 1 biến chưa biết thì rs nhận được cái gì ? ví như cái select *from tblSinhVien where fldMaSV=?"); dấu ? gán ngay mã sinh viên có trong csdl thì nótruy xuất ra sinh viên đó chẳng hạn [IMG]images/smilies/biggrin.png[/IMG].ở đây masv vẫn là 1 biến số ? và Dòng: sv.setMasv(rs.getString(1)); cho vào tác dụng gì ? Mình cug không mún há miệng chờ xung đâu :3 nhưg hình dung hoài ko ra ah,hơi ngu tí bạn thông cảm [IMG]images/smilies/biggrin.png[/IMG].

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình đã giải thích:
    Trích dẫn Gửi bởi SITUVNX
    Dòng: psCheck.setString(1, masv); gán vào dấu ? ở select *from tblSinhVien where fldMaSV=? giá trị masv. Tham số thứ nhất (số 1) là thứ tự của dấu ? đó.
    VD:
    Chuỗi cần truy vấn là:

    Mã:
    SELECT * FROM SinhVien WHERE MaSv = 'SITUVN' AND TenSV = 'Trương Tấn Phát'
    để vào prepareStatement() ta sẽ để thành dạng tham số:

    Mã:
    SELECT * FROM SinhVien WHERE MaSv = ? AND TenSV = ?
    thì khi đó ta sẽ dựa theo thứ tự của dấu ? để gán giá trị cho 2 tham số ta cần:

    Mã:
    psCheck.setString(1, masv); // Dấu ? thứ nhấtpsCheck.setString(2, tensv); // Dấu ? thứ 2

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Có ai lam ơn giải thích chi tiết giúp mình đoạn code java này với ạ ?

    Mã:
        public ArrayList<SinhVien> CheckID(String masv) {        ArrayList<SinhVien> list = null;        PreparedStatement psCheck = null;        ResultSet rs = null;        if (DBConnect.open()) {            try {                psCheck = DBConnect.cnn.prepareStatement("select *from tblSinhVien where fldMaSV=?");                psCheck.setString(1, masv);                rs = psCheck.executeQuery();                 list = new ArrayList<SinhVien>();                while (rs.next()) {                     SinhVien sv = new SinhVien();                     sv.setMasv(rs.getString(1));                     list.add(sv);                 }            } catch (SQLException ex) {                Logger.getLogger(SinhVienDAO.class.getName()).log(Level.SEVERE, null, ex);            } finally {                DBConnect.close(psCheck, rs);            }        }        return list; //tra ve sinh vien yeu cau checkID    }

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi SITUVNX
    Mình đã giải thích:


    VD:
    Chuỗi cần truy vấn là:

    [CODE]SELECT * FROM SinhVien WHERE MaSv = 'SITUVN' AND TenSV = 'Trương Tấn Phát'
    </div>Bạn ơi nhưng mà mã sinh viên vs tensv lúc này chưa bik vì chưa được gán giá trị cụ thể,lên cái ResultSet sẽ thu được cái gì ?
    select *from tblSinhVien where fldMaSV=masv(biến chưa được gán giá trị cụ thể ?) và sv.setMasv(masv); tác dụng gì ? mà nó có thể "check xem ID của sinh viên đó đã có trong database chưa? nếu chưa thì thêm vào database" ? Chứ cách sử dụng prepareStatement() mình bik mà [IMG]images/smilies/biggrin.png[/IMG] vs nó cho thêm đoạn code :
    while (rs.next()) {
    SinhVien sv = new SinhVien();
    sv.setMasv(rs.getString(1));
    list.add(sv);
    }
    } catch
    để làm gì nhỉ

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi chinhphuco0oit
    Mã:
        public ArrayList<SinhVien> CheckID(String masv) {        ArrayList<SinhVien> list = null;        PreparedStatement psCheck = null;        ResultSet rs = null;        if (DBConnect.open()) {            try {                psCheck = DBConnect.cnn.prepareStatement("select *from tblSinhVien where fldMaSV=?");                psCheck.setString(1, masv);                rs = psCheck.executeQuery();                 list = new ArrayList<SinhVien>();                while (rs.next()) {                     SinhVien sv = new SinhVien();                     sv.setMasv(rs.getString(1));                     list.add(sv);                 }            } catch (SQLException ex) {                Logger.getLogger(SinhVienDAO.class.getName()).log(Level.SEVERE, null, ex);            } finally {                DBConnect.close(psCheck, rs);            }        }        return list; //tra ve sinh vien yeu cau checkID    }
    Đoạn code này nhằm check xem ID của sinh viên đó đã có trong database chưa? nếu chưa thì thêm vào database hết!!!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •