30/09/2018, 17:29
Dùng 1 đối tượng được tạo ra từ một lớp khác trong java như thế nào?
mọi người cho em hỏi e có 1 lớp myConnect{} như thế này:
package Connect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class myConnect {
String className = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/tailieuhoc";
String user = "root";
String pass ="sa";
public Connection con;
public void myConnectdb(){
try{
Class.forName(className);
con = DriverManager.getConnection(url, user, pass);
System.out.print("connected success!");
}catch(ClassNotFoundException e){
System.out.print("Not can't load Driver");
}catch(SQLException e){
System.out.print("error in mySQL");
}
}
}
Vậy bây giờ e muốn dùng đối tượng “con” ở trên vào 1 class khác cùng package với class myConnect thì làm tn ạ?
Bài liên quan
theo anh thì dùng thế này
Đoạn code mà bên class Connect em muốn dùng là như này ạ…Cái dòng ts = con.createStatement();
Làm thế nào để lấy đc cái “con” ở bên class myConnect sang đây để dùng như này đc ạ?
anh @masoivn cho e link tài liệu hướng dẫn cách dùng của cái này đc ko a?
cái đoạn trên mình chỉ cần
myConnect connect = new myConnect();
connect.myConnectdb();
thế cũng đc rùi a nhở?
anh không có link này. anh làm theo kinh nghiệm thôi.
chưa hiểu ý của em.
cái này mới là khởi tạo biến connect.
anh @masoivn ý e là: giả sử giờ e có cái phương thức này ở class connect:
vậy cái đoạn gọi kết nối nối tới cơ sở dữ liệu từ lớp myConnect thì e chỉ việc
myConnect connect = new myConnect();
connect.myConnectdb();
có được ko ý a?
như vậy cũng được.
em có thể tham khảo code anh viết mẫu ở trên.
nhưng e đã làm như vậy mà nó ko kết nối đc anh à? khi chạy nó chẳng hiện ra cái gì
cụ thể 2 cái lớp của e là:
hàm trên của em đâu có đoạn nào lấy database vào list listMon.
list hiện tại của listMon là 0.
theo e nó là đoạn này là lấy dữ liệu để hiển thị:
System.out.print(" - idMONHOC " + listMon.get(i).getIdMONHOC()+ " ten mon: " + listMon.get(i).getTenmon() + " ma mon: "+ listMon.get(i).getMamon() + “\n”);
a nói rõ hơn cho e với ạ?
Câu truy vấn data(SQL) lấy dữ liệu từ database đâu em?
Em viết trong cùng 1 method như này thì hiển thị đc, nhưng e đang muốn tách phần lấy dữ liệu và phần hiển thị riêng ra thì ko đc, e đang vướng chỗ đó ạ:
khi tách thì e làm thế này:
//method lấy data
public static List layDanhSachDuLieu() {
List listMon = new ArrayList();
String query = “SELECT * FROM monhoc”;
TaiLieuHoc tlh=null;
ResultSet rs = null;
try {
connection = ConnectHelper.connectToDataBase();
statement = connection.createStatement();
rs = statement.executeQuery(query);
while (rs.next()) {
tlh = new TaiLieuHoc();
//method hiển thị data
public static void showDanhSachDuLieu(List listMon){
System.out.println("\nDanh sach mon hoc: “);
for (int i = 0; i < listMon.size(); i++) {
System.out.printf(”\n%-4s %-5s %-5s\n", listMon.get(i).getIdMONHOC(),
listMon.get(i).getTenmon(),listMon.get(i).getMamon());
}
}
//Hàm main gọi
public static void main(String[] args) {
SampleApp.showDanhSachDuLieu(SampleApp.layDanhSachDuLieu());
System.out.printf("\n%-4s %-5s %-5s\n", listMon.get(i).getIdMONHOC(),
listMon.get(i).getTenmon(),listMon.get(i).getMamon()); cho nay ko ra duoc phai ko?
neu bi cho do thi do em dang tra ve null chu ko phai lst monhoc
khi viết chung 1 method vẫn câu lệnh như thế thì ra nhưng khi e tách thì ko hiển thị đc
à e có thay trong method layDanhsachDuLieu() cái return listMon; rồi nhưng vẫn ko đc. nó in mỗi dòng : “danh sach mon hoc:” thế thôi ạ