cảm ơn thầy rất rất nhiều, em cảm thấy may mắn vì đã được học thầy. Em chúc thầy và mọi người đã đang và chưa xem video này có năm 2023 tuyệt vời, đạt được những mục tiêu mình đặt ra. Một lần nữa em xin cảm ơn thầy rất là nhiều luôn ạ.
Thực sự ah làm video, truyền đạt rất tâm huyết, cẩn thận. Đặt mình vào vị trí của người học nên hiểu được những khó khăn của người học gặp phải từ đó có những hướng tiếp cận dễ hiểu. Cảm ơn anhhhh rất nhiều!!!
Xin cảm ơn anh rất nhiều ạ. Thật khó để tìm ra một khóa học kỹ càng như thế này mà lại miễn phí. Nhờ anh mà đã hiểu về sơ SQL Injection. Chúc anh sức khỏe và mãi nhiệt huyết ạ.
2 ปีที่แล้ว
Bài giảng của anh rất hay, dễ hiểu và chi tiết. Em xin được mời anh cốc cafe để thay cho lời cảm ơn chân thành :33
Anh làm cái video dài 42 phút, em học xong thực hành mất 2 ngày là khoảng 16 tiếng, viết hơn 1000 dòng code, viết xong đoạn dưới thì quên luôn đoạn trên mình viết cái gì. Xong rồi làm một đống pivot để test lỗi, chỉ có ăn với ngồi fix lỗi mất thêm mấy tiếng nữa 😁😁😁 Thấm thía nghề lập trình 🤣🤣🤣
Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
Cảm ơn bạn. Chúc bạn học thật tốt. Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn , thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.
Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
Dạ.. Hiện tại e làm đồ án kết nối sql vs java swing ạ... E đang có vấn đề là e tạo một cái bảng lophoc : malop, tenlop, soluongtoida. Và bảng sinhvien: msv,,hoten,... E muốn đẩy vào jtable :msv, hoten, tenlop,soluongtoida... Thì phải group by xong mình phải tạo cái class sinhvien_lophoc để tạo thuộc tính cho nó hay sao ạ.... E nghĩ là như vậy ạ
sao em làm như thầy mà bị lỗi này nhỉ check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?,?)' at line 1
// 3. TẠO KẾT NỐI VỚI MỘT CƠ SỞ DỮ LIỆU TRONG localhost NẾU KHÔNG CÓ TẠO RA // database MỚI public static Connection getDatabaseConnection(String database_name) { Connection database_connection = null; try { Connection localhost_connection = JDBCUtil.getConnection(); // Câu lệnh kiểm tra xem data base có tồn tại không (ta sử dựng Prepared // Statement) String check_exists_database = "SHOW DATABASES LIKE ?;"; // Chuẩn bị một Prepared Statement PreparedStatement pst_check_database = localhost_connection.prepareStatement(check_exists_database); // Chuẩn bị thông tin cho các dấu ? pst_check_database.setString(1, database_name); // Lấy chuỗi ResultSet trả về khi thực hiện câu lệnh SQL ResultSet check_rs = pst_check_database.executeQuery(); if (check_rs.next()) { System.err.println("CƠ SỞ DỮ LIỆU '" + database_name + "' ĐÃ TỒN TẠI!"); String database_url = "jdbc:mySQL://localhostL:3306/" + database_name; String username = "root"; String password = ""; database_connection = DriverManager.getConnection(database_url, username, password); System.err.println("ĐÃ TẠO KẾT NỐI THÀNH CÔNG VỚI CƠ SỞ DỮ LIỆU '" + database_name + "'"); } else { System.err.println("CƠ SỞ DỮ LIỆU '" + database_name + "' CHƯA TỒN TẠI!");
// Chuẩn bị câu lệnh để tạo cơ sở dữ liệu mới String create_database = "CREATE DATABASE ?;"; // Chuẩn bị một Prepared Statement PreparedStatement pst_create_database = localhost_connection.prepareStatement(create_database); // Cài đặt giá trị cho dấu ? pst_create_database.setString(1, database_name); // Tiến hành câu lệnh tạo database mới int create_result = pst_create_database.executeUpdate();
System.out.println("************************* " + create_result + " ***********************");/////////////////////////// if (create_result != 0) { System.err.println("ĐÃ TẠO CƠ SỞ DỮ LIỆU '" + database_name + "' THÀNH CÔNG!!"); String database_url = "jdbc:mySQL://localhostL:3306/" + database_name; String username = "root"; String password = ""; database_connection = DriverManager.getConnection(database_url, username, password); System.err.println("ĐÃ TẠO KẾT NỐI THÀNH CÔNG VỚI CƠ SỞ DỮ LIỆU '" + database_name + "'"); } else { System.err.println("KHÔNG KHỞI TẠO ĐƯỢC CƠ CỞ DỮ LIỆU '" + database_name + "' !!"); } } } catch (SQLException e) { System.err.println("KHÔNG THỂ KẾT NỐI ĐƯỢC CƠ CỞ DỮ LIỆU '" + database_name + "' !!"); e.printStackTrace(); } return database_connection; } } //////////////////////////////////////////// ANH ƠI TẠI SAO EM KHÔNG THỂ SỬ DỤNG 'PREPARED STATEMENT' ĐỂ 'CREATE DATABASE' ANH ƠI? KHI CHẠY CÂU LỆNH SAU TRONG PHẦN TEST: Connection cnt_vn_persons = JDBCUtil.getDatabaseConnection("vietnam_persons"); ////////////////////////////////////////// XUẤT HIỆN LỖI: KẾT NỐI THÀNH CÔNG! CƠ SỞ DỮ LIỆU 'vietnam_persons' CHƯA TỒN TẠI! KHÔNG THỂ KẾT NỐI ĐƯỢC CƠ CỞ DỮ LIỆU 'vietnam_persons' !! java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''vietnam_persons'' at line 1 at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994) at database.JDBCUtil.getDatabaseConnection(JDBCUtil.java:89) at test.TestConnection.main(TestConnection.java:9)
Bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
cảm ơn thầy rất rất nhiều, em cảm thấy may mắn vì đã được học thầy. Em chúc thầy và mọi người đã đang và chưa xem video này có năm 2023 tuyệt vời, đạt được những mục tiêu mình đặt ra. Một lần nữa em xin cảm ơn thầy rất là nhiều luôn ạ.
Thực sự ah làm video, truyền đạt rất tâm huyết, cẩn thận. Đặt mình vào vị trí của người học nên hiểu được những khó khăn của người học gặp phải từ đó có những hướng tiếp cận dễ hiểu. Cảm ơn anhhhh rất nhiều!!!
cảm ơn anh nhiều ạ , video dễ hiểu , dễ học và truyền cảm hứng cho người mới bắt đầu như bọn em , +1 respect ❤
cảm ơn thầy vì những bài giảng chỉnh chu và những chia sẻ hưu ích 😍😍
Xin cảm ơn anh rất nhiều ạ. Thật khó để tìm ra một khóa học kỹ càng như thế này mà lại miễn phí. Nhờ anh mà đã hiểu về sơ SQL Injection. Chúc anh sức khỏe và mãi nhiệt huyết ạ.
Bài giảng của anh rất hay, dễ hiểu và chi tiết. Em xin được mời anh cốc cafe để thay cho lời cảm ơn chân thành :33
thầy chia sẻ rất dễ hiểu, cám ưn thầy ạ
những người thực sự cần sẽ cần đấy, cứ làm mà tích công đức, không vô ích đâu ^_^
mong anh tiếp tục ạ, những bài học của anh rất quý giá ạ
Chúc bạn học tốt.
bài giảng rất dễ hiểu và bổ ích. Cám ơn TITV rất nhiều ạ!
Cảm ơn thầy nhiều nhờ thầy mà cuộc sống sinh viên của e đỡ vất vả hơn rất nhiều🤧
Qua hay, cam on anh rat nhieu.Chuc anh that nhieu suc khoe va chia se nhieu bai hoc bo ich
mình đã học xong video này. Cám ơn bạn rất nhiều
tuyệt vời quá a ơi e luôn dõi theo a qua mọi bài và nỗ lực hết mình
Bài giảng quá hay ạ
Triệu like, quá hay luôn. Thanks ad nhiều 🥰
Cảm ơn anh đã chia sẻ kiến thức này !
cảm ơn thầy có bài chia hay và nhiệt tình.
mong anh vẫn giữ nhiệt huyết và tạo ra những bài học hay như này ạ
Anh dạy hay quá anh ơi
Anh làm cái video dài 42 phút, em học xong thực hành mất 2 ngày là khoảng 16 tiếng, viết hơn 1000 dòng code, viết xong đoạn dưới thì quên luôn đoạn trên mình viết cái gì.
Xong rồi làm một đống pivot để test lỗi, chỉ có ăn với ngồi fix lỗi mất thêm mấy tiếng nữa 😁😁😁
Thấm thía nghề lập trình 🤣🤣🤣
Dạ bài học bổ ích thật ạ! Em cảm ơn Thầy ạ!
Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
Tuyệt vời quá TITV
Bài giảng rất hay ạ
thầy dạy hay lắm ạ, em cảm ơn thầy rất rất nhiều :3
cảm ơn anh ạ
Rất hay và bổ ích
cam on anh nhieu
cảm ơn thầy
cám ơn thầy Tùng
đỉnh thật sự ạ, :3
Em cảm ơn anh rất nhiều ạ
Cảm ơn bạn. Chúc bạn học thật tốt.
Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn , thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn.
Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.
mong thầy ra thêm nhiều bài về jdbc nữa
Hay quá anh ơi
Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
thầy cho e hỏi TYPE_SCROLL_INSENSITIVE trong statement của java là gì vậy thầy, e có tìm hiểu thì nó là con trỏ tới lùi trong đối tượng là sao ạ
mình chỉ cần làm cái này cho user và pass thôi hay có cần làm cách này cho các thuộc tính khác luôn nhỉ
a có thể làm cái hàm public ArrayList selectByCondition(String condition) được k ạ, e thử nhiều cách mà ko ngăn nổi sql injection
Dạ.. Hiện tại e làm đồ án kết nối sql vs java swing ạ... E đang có vấn đề là e tạo một cái bảng lophoc : malop, tenlop, soluongtoida. Và bảng sinhvien: msv,,hoten,... E muốn đẩy vào jtable :msv, hoten, tenlop,soluongtoida... Thì phải group by xong mình phải tạo cái class sinhvien_lophoc để tạo thuộc tính cho nó hay sao ạ.... E nghĩ là như vậy ạ
❤❤❤❤❤❤❤❤❤❤❤❤❤❤
Cái phím tăt Find/Replace là phím nào anh ơi ? em thử Ctrl+Shift+R mà không được. Thanks!
Ctrl+F bro ơi
@@biennguyen406 Ctrl+F chỉ Find thôi! Chắc do phiên bản Ecipse của mình!
Anh ơi, anh có thể ra thêm video nói về kết nối giữa SQL Server và Intellij đi ạ
😍
Thank sir
Em sợ không học kịp Python để học khóa dạy zoom của anh vào cuối tháng, bận quá anh ơi😨😨😨
Cám ơn Thầy rất nhiều! Thầy có link hay các đề bài tập nâng cao về java tương tác với csdl không ạ?
chỉ sử dụng class PreparedStatement cho cau query SQL " select * from table name " hay tất cả insert,delete,update đều sử dụng hay sao Thầy?
Xem hết video đi bạn.
@@TITVvn tks Anh em đã rõ ạ
lấy code ở đâu vậy anh >Tại bữa ttrc em đang truy cập code bình thường giwof đăng nhập vào k thấy code đâu
hay
sao em làm như thầy mà bị lỗi này nhỉ check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?,?)' at line 1
giống mình là nó bị sao nhỉ
PreparedStatement pstm = cnn.prepareStatement(sql);
pstm.setString(1, t.getUserName());
pstm.setString(2, t.getPassWord());
pstm.setString(3, t.getHoTen());
rs = pstm.executeUpdate();
không truyền sql vào excecuteUpdate();
@@vanhieule9248 PreparedStatement pstm = cnn.prepareStatement(sql);
pstm.setString(1, t.getUserName());
pstm.setString(2, t.getPassWord());
pstm.setString(3, t.getHoTen());
rs = pstm.executeUpdate();
không truyền sql vào excecuteUpdate();
// 3. TẠO KẾT NỐI VỚI MỘT CƠ SỞ DỮ LIỆU TRONG localhost NẾU KHÔNG CÓ TẠO RA
// database MỚI
public static Connection getDatabaseConnection(String database_name) {
Connection database_connection = null;
try {
Connection localhost_connection = JDBCUtil.getConnection();
// Câu lệnh kiểm tra xem data base có tồn tại không (ta sử dựng Prepared
// Statement)
String check_exists_database = "SHOW DATABASES LIKE ?;";
// Chuẩn bị một Prepared Statement
PreparedStatement pst_check_database = localhost_connection.prepareStatement(check_exists_database);
// Chuẩn bị thông tin cho các dấu ?
pst_check_database.setString(1, database_name);
// Lấy chuỗi ResultSet trả về khi thực hiện câu lệnh SQL
ResultSet check_rs = pst_check_database.executeQuery();
if (check_rs.next()) {
System.err.println("CƠ SỞ DỮ LIỆU '" + database_name + "' ĐÃ TỒN TẠI!");
String database_url = "jdbc:mySQL://localhostL:3306/" + database_name;
String username = "root";
String password = "";
database_connection = DriverManager.getConnection(database_url, username, password);
System.err.println("ĐÃ TẠO KẾT NỐI THÀNH CÔNG VỚI CƠ SỞ DỮ LIỆU '" + database_name + "'");
} else {
System.err.println("CƠ SỞ DỮ LIỆU '" + database_name + "' CHƯA TỒN TẠI!");
// ???????????????????????????????????????????????????????????????????????????????????????????
// Chuẩn bị câu lệnh để tạo cơ sở dữ liệu mới
String create_database = "CREATE DATABASE ?;";
// Chuẩn bị một Prepared Statement
PreparedStatement pst_create_database = localhost_connection.prepareStatement(create_database);
// Cài đặt giá trị cho dấu ?
pst_create_database.setString(1, database_name);
// Tiến hành câu lệnh tạo database mới
int create_result = pst_create_database.executeUpdate();
// ???????????????????????????????????????????????????????????????????????????????????????????
System.out.println("************************* " + create_result + " ***********************");///////////////////////////
if (create_result != 0) {
System.err.println("ĐÃ TẠO CƠ SỞ DỮ LIỆU '" + database_name + "' THÀNH CÔNG!!");
String database_url = "jdbc:mySQL://localhostL:3306/" + database_name;
String username = "root";
String password = "";
database_connection = DriverManager.getConnection(database_url, username, password);
System.err.println("ĐÃ TẠO KẾT NỐI THÀNH CÔNG VỚI CƠ SỞ DỮ LIỆU '" + database_name + "'");
} else {
System.err.println("KHÔNG KHỞI TẠO ĐƯỢC CƠ CỞ DỮ LIỆU '" + database_name + "' !!");
}
}
} catch (SQLException e) {
System.err.println("KHÔNG THỂ KẾT NỐI ĐƯỢC CƠ CỞ DỮ LIỆU '" + database_name + "' !!");
e.printStackTrace();
}
return database_connection;
}
}
////////////////////////////////////////////
ANH ƠI TẠI SAO EM KHÔNG THỂ SỬ DỤNG 'PREPARED STATEMENT' ĐỂ 'CREATE DATABASE' ANH ƠI?
KHI CHẠY CÂU LỆNH SAU TRONG PHẦN TEST:
Connection cnt_vn_persons = JDBCUtil.getDatabaseConnection("vietnam_persons");
//////////////////////////////////////////
XUẤT HIỆN LỖI:
KẾT NỐI THÀNH CÔNG!
CƠ SỞ DỮ LIỆU 'vietnam_persons' CHƯA TỒN TẠI!
KHÔNG THỂ KẾT NỐI ĐƯỢC CƠ CỞ DỮ LIỆU 'vietnam_persons' !!
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''vietnam_persons'' at line 1
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320)
at mysql.connector.java@8.0.30/com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994)
at database.JDBCUtil.getDatabaseConnection(JDBCUtil.java:89)
at test.TestConnection.main(TestConnection.java:9)
Bạn hãy chụp ảnh lỗi gửi lên facebook Nhóm TITV
@@TITVvn Em dùng chat GPT xử lý được rồi ạ!
LIKE
em muốn biết thầy học IT từ newbie to proplayer ra sao quá hy vọng thầy chia sẽ 1 ít thôi cũng được ạ em đang mất động lực 😓😢
Bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.
chuỗi bài này dự kiến bao nhiêu thế anh
khoảng 30 bài
khi nao em di lam , em se donate cho thay
*Cảm ơn anh*
LIKE
LIKE