Lập Trình
Duyệt các bài viết được gắn thẻ Lập Trình
1677 bài viết

Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Bài viết được sự cho phép của tác giả Giang Phan Trong bài này tôi sẽ hướng dẫn các bạn sử dụng kết nối vào database sử dụng Java JDBC. Hibernate là gì? Sao phải dùng nó thay JDBC? 10 Java Web Framework tốt nhất JDBC là gì? JDBC (Java Database Connectivity) là một API chuẩn dùng để tương tác với các loại cơ sở dữ liệu quan hệ (database relationship). JDBC bao gồm một tập hợp các class và các interface dùng cho ứng dụng Java có thể giao tiếp với các cơ sở dữ liệu (database) khác nhau. JDBC có thể làm việc với bất kỳ cơ sở dữ liệu ( MySQL , PostgreSQL , Oracle , SQL Server , …) dựa vào một Driver được cung cấp. JDBC API bao gồm hai package chính: java.sql : là một phần của Java standard. javax.sql : là một phần của Java enterprise. Các thành phần của JDBC DriverManager : là một class quản lý danh sách các Driver (database drivers). Các yêu cầu kết nối từ ứng dụng Java sẽ được class này tìm kiếm Driver phù hợp đầu tiên để thiết lập kết nối với cơ sở dữ liệu. Driver : là một interface dùng để xử lý các giao tiếp với cơ sở dữ liệu. Thông thường ứng dụng Java sẽ không giao tiếp trực tiếp với class này mà thông qua DriverManager. Connection : là một interface cung cấp tất cả các method cần thiết cho việc giao tiếp với database. Interface này chứa nhiều phương thức đa dạng để tạo kết nối với một Database. Tất cả các thông tin giao tiếp với cơ sở dữ liệu chỉ có thể thông qua đối tượng Connection. Một Connection đại diện cho một phiên (session) làm việc...

Có còn nên học Công nghệ thông tin thời điểm hiện tại?
Người viết: Phiêu Vũ Tôi không khuyên bạn bỏ học đại học giống như Bill Gates, nhưng với một ngành đặc biệt như công nghệ thông tin, bí quyết thành công không phải là tấm bằng đại học, mà là một điều khác… Aspires Minds National Employment (AMNE), một công ty chuyên đánh giá năng lực nhân sự toàn cầu, mới đây vừa phát hành một báo cáo về thực trạng năng lực kĩ sư ngành IT trên thế giới, báo cáo xoay quanh năng lực các kĩ sư CNTT của Hoa Kỳ, Trung Quốc và Ấn Độ; 3 quốc gia có tỉ trọng nhân lực lớn nhất trong ngành lập trình phần mềm. Những số liệu gây sốc… Việc chính của lập trình viên là viết mã, tất nhiên; báo cáo AMNE chia năng lực lập trình ra làm nhiều cấp độ, từ cấp cao nhất là viết mã hoàn hảo, viết mã với một chút cẩu thả, viết mã nhiều lỗi; cho đến cấp kém nhất là … viết không nổi đoạn mã ra hồn. Yêu cầu tưởng như đương nhiên “viết mã đúng chức năng và đúng logic đã mô tả”; chỉ 2,1% lập trình viên Trung Quốc đạt yêu cầu này, con số của Mỹ là 18,8%. Yêu cầu được “hạ chuẩn” một chút, chỉ cần viết mã đúng, có thể có một ít lỗi hiếm; thêm 15,3% lập trình viên của Mỹ đạt yêu cầu còn Trung Quốc chỉ thêm được 0,5% mà thôi. Mức độ giữa giữa, lập trình ở trình độ cơ bản, phạm nhiều lỗi cơ bản: 81% lập trình viên Trung Quốc, 61,8% lập trình viên Mỹ. Có đến 10,4% kĩ sư IT người Trung Quốc bị đánh giá là lập trình kém, không viết nổi một đoạn mã; con số...

Fix Lỗi: “405 – HTTP Verb Used To Access This Page Is Not Allowed”
Bài viết được sự cho phép của BQT Kinh nghiệm lập trình Dấu hiệu lỗi Không thể sử dụng các phương thức HTTP DELETE, PUT hoặc PATCH với các tệp .php hoặc API Web. Thông báo lỗi sau xuất hiện trong trình duyệt: 405 - HTTP verb used to access this page is not allowed. The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access Nguyên nhân Khai báo các phương thức của PHP chưa được xác định, chúng ta cần khai báo lại. Trong bài viết này mình sẽ hướng dẫn fix trên IIS Server. Fix Lỗi "RDP Authentication Error Has Occurred – The Function Requested Is Not Supported" Fix Lỗi FTP Client Windows Server "Current Security Settings Do Not Allow This File To Be Downloaded" Phương án xử lý Remote vào server sử dụng Remote Desktop Connection Chọn Internet Information Services (IIS) Manager at Windows Start > All Programs > Windows Administrative Tools . Trong IIS Manager, chọn vào SERVERNAME > Sites >Click đúp vào site của bạn. Trong màn hình chính, Chọn Handler Mappings > chọn tiếp PHP-php (hoặc ExtensionlessUrl-Integrated-4.0 nếu là Web API) > chọn Request Restrictions > chuyển qua Verbs tab. Thêm các phương thức PHP (DELETE, PUT or PATCH) vào field sau đó click OK . Nếu vẫn chưa được thì chú ý mục “Executable (Optional)”. Đặt đường dẫn trong ô đó vào trong dấu “ “. Click OK. -> Restart website của bạn. kinhnghiemlaptrinh.com Bài viết gốc được đăng tải tại kinhnghiemlaptrinh.com Có thể bạn quan tâm: HTTP status code là gì? Danh sách đầy đủ HTTP status code Fix Lỗi FTP Client Windows Server “Current Security Settings Do Not Allow This File To Be Downloaded” Sử dụng aria trên site eCommerce, vấn...

Fix Lỗi “RDP Authentication Error Has Occurred – The Function Requested Is Not Supported”
Bài viết được sự cho phép của BQT Kinh nghiệm lập trình Bài viết hôm nay mình sẽ chia sẻ cách fix lỗi “RDP Authentication Error Has Occurred – The Function Requested Is Not Supported” khi remote tới Windows Server. Một ngày đẹp trời, tự nhiên bạn không thể remote tới Server như bao ngày. Màn hình xuất hiện thông báo như sau: Remote Desktop Connection An authentication error has occurred. The function requested is not supported. Remote computer: computer_name Nguyên nhân gây ra lỗi trên? Thực tế là các bản cập nhật bảo mật mới nhất (được phát hành sau tháng 5 năm 2018) được cài đặt trên máy tính của bạn. Các bản cập nhật này khắc phục lỗ hổng nghiêm trọng trong giao thức CredSSP (Nhà cung cấp hỗ trợ bảo mật thông tin xác thực) được sử dụng để xác thực trên các máy chủ RDP (CVE-2018-0886 – RDP authentication error: CredSSP Encryption Oracle Remediation ). Các bản cập nhật này không được cài đặt ở phía máy chủ RDP / RDS của bạn và NLA (Network Level Authentication) được bật để có thể remote vào server. 10 lời khuyên để giảm thiểu mối đe doạ an ninh nội bộ 24 code ES6 tân tiến để khắc phục các lỗi thực hành JavaScript NLA sử dụng các cơ chế CredSSP để xác thực trước người dùng RDP qua TLS / SSL hoặc Kerberos. Máy tính của bạn chỉ cần chặn kết nối máy tính từ xa đến một máy chủ sử dụng phiên bản bảo mật kém của CredSSP. Cách fix? Có những cách fix sau đây: Cách chuẩn xác nhất và tốt nhất bạn cần thực hiện là cài đặt “Windows security updates” trên server của bạn. Cách 2: Tắt NLA (Network Level Authentication) trên...

9 công cụ siêu tiện lợi cho cả Developer và Designer
Tiếp nối sự thành công của bài viết 30 tiện ích Chrome cho designer và developer , chúng ta sẽ lại tiếp tục điểm qua những công cụ tiện dụng có thể giúp ích rất nhiều cho công việc thiết kế và lập trình của bạn. Atom Atom là text editor nguồn mở do Github phát triển. Hỗ trợ nhiều tính năng toàn diện, nổi bật là package manager built-in, auto-completion thông minh, và theme siêu đẹp. Được phát triển từ Sublime, package manager chính là một làn gió mới. Với Atom, Bạn có thể dùng APM hoặc giao diện GUI. Chả cần phải điều chỉnh file config cứ thích thì dùng thôi. Thông tin thêm về vấn đề hiệu năng. Khi mới ra mắt, Atom chậm như sên, nhưng giờ lại trái ngược hoàn toàn, chỉ bị chậm khi mở file quá mức lớn mà thôi. DragDis Là designer, tôi phải luôn luôn tìm nguồn cảm hứng. DragDis là công cụ cho phép tôi lưu lại bất kỳ nguồn cảm hứng nào mình tìm được. Dễ dùng lắm, chỉ việc cài đặt tiện ích mở rộng Chrome và bắt đầu thả kéo thôi. DragDis folder của tôi được sắp xếp theo tuần. Mỗi tuần tôi sẽ tạo một inspiration folder mới. Đây là một cách rất hay để theo dõi sự thay đổi trong “thị hiếu nghệ thuật” của bản thân. DragDis còn có giao diện grid full-page, cơ sở tuyệt vời cho moodboards. iTerm 2 iTerm là công cụ thay thế đẹp cho Terminal. iTerm 2 có rất nhiều tính năng hay, có thể kể đến split panels không giới hạn, hình ảnh nội dòng, và search. Tuy Terminal có nhiều tính tương tự, nhưng iTerm 2 vẫn đang liên tục cải tiến. Muzli Muzli là tiện ích...

Tích hợp AI trong an ninh mạng: Mặt lợi và mặt hại
Trong thế giới số hóa hiện nay, trí tuệ nhân tạo (AI) và an ninh mạng (Cybersecurity) đã trở thành hai yếu tố không thể thiếu. Việc tích hợp AI vào an ninh mạng đã mở ra nhiều cơ hội đổi mới và nâng cao hiệu quả bảo mật. Bài viết này sẽ đi sâu vào các ứng dụng cụ thể của AI trong an ninh mạng, từ việc sử dụng AI để tấn công đến phòng thủ, và các lợi ích mà chúng mang lại. AI được sử dụng trong các cuộc tấn công mạng AI đã được sử dụng trong các cuộc tấn công mạng từ những năm 2010, với nhiều công cụ tấn công được trang bị AI. Các công cụ này có khả năng tự động hóa các quy trình tấn công, phát hiện và khai thác lỗ hổng một cách nhanh chóng và hiệu quả. Dưới đây là một số ví dụ cụ thể về việc sử dụng AI trong các cuộc tấn công mạng. Tấn Công Phishing Phishing là một trong những phương pháp tấn công mạng phổ biến nhất, và AI đã làm cho phương pháp này trở nên tinh vi hơn. Các hệ thống AI có thể tạo ra các email phishing tùy chỉnh dựa trên thông tin thu thập được từ các mạng xã hội và các nguồn dữ liệu khác. Điều này làm tăng khả năng nạn nhân sẽ nhấp vào các liên kết độc hại và cung cấp thông tin nhạy cảm. Tấn Công Mạng Xã Hội AI có thể được sử dụng để phân tích hành vi người dùng trên các mạng xã hội và tạo ra các nội dung giả mạo để lừa đảo. Các công cụ AI có thể tạo ra các bài đăng và tin...

React Props Cheatsheet: 10 Patterns mà bạn nên biết (Phần 2)
Tác giả: Reed Barger 6. Cập nhật giá trị của React prop thông qua thanh trạng thái Để chuyển một giá trị prop cho một thành phần, trong các thành phần của hàm đó cần cố gắng thay đổi ngay lập tức giá trị của prop. Giá trị prop phải là giá trị thuần túy. Nói cách khác, chúng không thể bị biến dạng hoặc thay đổi trực tiếp. Trong React nếu chúng ta muốn thay đổi các giá trị theo thời gian, thì phương tiện thích hợp để làm điều đó là với status – trạng thái. Nếu chúng ta muốn chuyển một giá trị prop vào một thành phần và thay đổi nó sau này, có thể đưa nó vào một hook React trạng thái để lưu trữ giá trị đó dưới dạng một biến. Sau đó, cập nhật bằng cách sử dụng chức năng setter thích hợp. Ví dụ, chúng ta có thể làm như vậy với useStatehook hoặc useReducerhook . Tuyển dụng lập trình viên React 7. React props có thể phân bố một cách độc lập Điều gì sẽ xảy ra nếu chúng ta có một đối tượng gồm các thuộc tính mà chúng ta muốn chuyển xuống dưới dạng các giá trị prop độc lập? Tuy nhiên, đối tượng này có rất nhiều thuộc tính. Chúng ta có cần tạo thủ công các đạo cụ riêng lẻ và đặt giá đỡ thành object.propertyName không? Thay vì làm điều đó cho mọi thuộc tính, chúng ta có thể rất dễ dàng lấy đối tượng và trải rộng các thuộc tính của nó xuống một thành phần dưới dạng các giá trị chống đỡ riêng lẻ bằng cách sử dụng toán tử mở rộng đối tượng {...myPropObject} . Bằng cách sử dụng cú pháp này –...

Viết blog đem lại những kỹ năng gì?
Bài viết được sự cho phép của vntesters.com Viết blog không những giúp bạn thoả đam mê viết lách, chia sẻ mà còn đem lại cho các bạn những kỹ năng (skills) giúp ích rất nhiều trong cuộc sống. Kỹ năng viết Kỹ năng đọc và tổng hợp Kỹ năng trình bày, bố cục văn bản Kỹ năng liên kết, ngoại giao Kỹ năng sử dụng máy tính, Internet Ngoại Ngữ 25 blogger IT nổi tiếng mà dân lập trình ai cũng phải biết Câu chuyện về cái comment tại một blog nọ Như vậy có thể thấy viết blog đã đem lại khá nhiều kỹ năng hữu ích đấy chứ. Vậy còn bạn, viết blog đã đem lại cho bạn những kỹ năng gì? Kỹ năng viết : việc sử dụng câu chữ thế nào, dấu chấm, dấu phẩy của người viết sẽ được cải thiện rõ rệt qua thời gian dài viết bài (với điều kiện là các bạn viết một cách nghiêm túc). Nó thể hiện sự chuyên nghiệp cũng như tôn trọng người đọc của tác giả. Kỹ năng đọc và tổng hợp : Đây cũng là một trong những kỹ năng quan trọng mà bạn sẽ thu được nhờ viết blog. Chắc chắn rằng bạn sẽ phải chép từ chỗ này một chút chỗ kia một chút cũng như tham khảo các nguồi tại liệu khác nhau để lấy ý tưởng, cuối cùng là kết hợp tất cả chúng lại với nhau để có một bài viết hoặc ý tưởng hay. Ngoài ra để có thể đọc được nhanh mà vẫn nắm bắt được nội dung chính của một bài viết, bạn sẽ dần hoàn thiện kỹ năng đọc của mình. Kỹ năng trình bày, bố cục văn bản : một điều khá quan trọng...

Java Stream – Collectors và Statistics
Bài viết được sự cho phép của tác giả Kiên Nguyễn Làm việc với Stream Collector/ Collectors đã lâu, liệu rằng bạn có biết ngoài Grouping và Partitioning , Stream còn hỗ trợ cả thống kê (Statistics) . Bất ngờ chưa, Collector thật sự còn ẩn chứa nhiều điều mà anh em còn chưa biết tới. Hãy cùng tìm hiểu collector và các methods của nó qua bài viết dưới đây. Cuộc đời anh em developer chúng ta sẽ bớt khổ . Xem thêm các Việc làm Java hấp dẫn trên Station D 10 Java Web Framework tốt nhất 10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java Trường hợp muốn tìm hiểu sâu hơn về stream và stream how it’s works , các bạn có thể khảo bài viết này . Thực sự những method được cung cấp bởi collectors như Partitioning hay Grouping có sức hấp dẫn lạ kì. 1. Collectors. A Collector represents a way to combine the elements of a Stream into one result. Collector đại diện cho cách kết hợp tất cả các đối tượng trong Stream thành một kết quả duy nhất. Để hoàn thành nhiệm vụ của mình, collectors sẽ chịu trách nhiệm thực thi 3 nhóm tác vụ chính: A supplier of an initial value. Cung cấp một giá trị ban đầu. An accumulator which adds to the initial value. – Nơi tổng hợp một loạt các giá trị ban đầu. A combiner which combines two results into one. – Kết hợp hai kết quả thành một. Collector được sử dụng thường xuyên khi ta sử dụng Stream API, nhưng ta ít khi để ý tới. Có hai cách để sử dụng: // Phương thức ngắn gọn. collect(Collector) (types left off for brevity) // Các...

Chỉ sau 15 tháng, Gameloft for brands và Kinder đã cho ra đời dự án đầy tham vọng – Applaydu
Chỉ sau 15 tháng, Gameloft for brands và Kinder đã ra mắt ứng dụng Applaydu – một dự án đầy tham vọng – mang các nhân vật đồ chơi của Kinder vào đời sống thực tế thông qua Thực tế tăng cường (AR) với một thế giới đầy những điều thú vị đang chờ được khám phá. Applaydu là một ứng dụng giáo dục trên điện thoại, được thiết kế cho trẻ em từ 3 đến 9 tuổi. Tại đây, các bé có thể khám phá nhiều trò chơi đầy thú vị, giúp các bé học đếm, làm quen với ngôn ngữ và mở rộng kiến thức về các quốc gia, địa lý và cả động vật. Một đoàn làm phim chuyên nghiệp đã đến thăm Gameloft Sài Gòn Studio để có thể nắm bắt được kĩ càng nhất quá trình phát triển suốt 15 tháng của dự án Applaydu. Qua đó, “Creating Applaydu” – một phim tài liệu dài 15 phút đầy gần gũi và cảm động đã ra đời, thể hiện cận nét từng bước hành trình sáng tạo của cả nhóm. Bạn sẽ nhận ra rằng chuyên môn và niềm đam mê của từng thành viên trong team có thể giúp họ đạt được những điều to lớn như thế nào. Đội ngũ Applaydu tại trụ sở Gameloft Sài Gòn Studio Thế giới đã thay đổi rất nhiều kể từ khi Kinder Surprise phát hành cách đây 50 năm: trẻ em ngày nay được sinh ra với công nghệ và dành phần lớn thời gian của chúng trên điện thoại thông minh. Để bắt kịp với thời đại, Ferrero Group muốn nâng cao trải nghiệm của trẻ em bằng cách kỹ thuật số hóa những đồ chơi bình thường. Là một chuyên gia trong ngành công...

Tính trừu tượng (Abstraction) trong Java
Trong lập trình hướng đối tượng, tính trừu tượng và tính kế thừa là hai khái niệm quan trọng và được sử dụng rộng rãi trong ngôn ngữ lập trình java . Tuy nhiên, nhiều người vẫn còn băn khoăn về sự khác biệt giữa hai khái niệm này và cách sử dụng chúng trong việc thiết kế và triển khai các ứng dụng. Trong bài viết này, hãy cùng Station D tìm hiểu về tính trừu tượng và tính kế thừa trong Java, từ đó có thể hiểu rõ hơn về sự khác biệt giữa hai khái niệm này và áp dụng chúng một cách hiệu quả nhé! Khái niệm về tính trừu tượng trong Java Trong lập trình hướng đối tượng, tính trừu tượng là một khái niệm quan trọng giúp mô hình hóa thế giới thực bằng cách ẩn đi các chi tiết triển khai bên trong của một đối tượng, chỉ tập trung vào hành vi và giao diện bên ngoài của đối tượng đó. Tính trừu tượng cho phép chúng ta xác định các lớp trừu tượng, các phương thức trừu tượng và các biến trừu tượng trong mã của chúng ta. Trong Java, tính trừu tượng được thể hiện thông qua từ khóa abstract. Một lớp trừu tượng là một lớp không thể khởi tạo; chỉ có thể được sử dụng để tạo các lớp con. Các phương thức trừu tượng là các phương thức không có phần thân, chỉ có phần khai báo, các phương thức trừu tượng phải được ghi đè trong các lớp con. Biến trừu tượng là các biến chưa được gán giá trị ban đầu và giá trị của chúng phải được gán trong các lớp con. Các đặc điểm của tính trừu tượng trong Java Để hiểu rõ...

Con muốn trở thành một Software Architect
Bài viết được sự cho phép của tác giả Tino Phạm Một developer trẻ nói với Chú của mình về việc cậu ta muốn trở thành một Software Architecture trong tương lai. Sau đây là cuộc nói chuyện giữa hai chú cháu. Con muốn sau này trở thành một Software Architecture (kiến trúc sư phần mềm). Con có định hướng cho mục tiêu nghề nghiệp vậy là tốt lắm đó. 10 Công cụ Go-To Tech dành riêng cho các Software Developer Biến Git và GitHub trở thành công cụ đắc lực cho Software Engineer Con muốn được dẫn đầu một nhóm và đưa ra các quyết định quan trọng như chọn loại Database nào, Framework nào, Web API thế nào và dùng những công nghệ nào cho dự án. Khá đó chứ. Nhưng nghe có vẻ như con không phải muốn trở thành Software Architecture nữa. Tất nhiên là con muốn chứ. Con muốn trở thành một người quyết định tất cả những thứ quan trọng. Chú biết vậy, nhưng mà con đang liệt kê những thứ không quan trọng. Chính xác hơn là những thứ con liệt kê nó không liên quan đến quyết định của một Software Architecture. Ý của Chú là sao? Database mà không quan trọng sao? Chú có biết phải chi bao nhiêu tiền cho chúng không? Có lẽ là rất nhiều, nhưng mà lựa chọn database không phải là một trong những quyết định quan trọng. Sao Chú nói vậy? Database là trái tim của toàn hệ thống. Nó là nơi dữ liệu được lưu trữ, sắp xếp, đánh index và được truy cập. Không có nó thì sẽ không có hệ thống. Database đơn thuần chỉ là một thiết bị IO. Nó chỉ là một công cụ hữu ích để sắp xếp, truy...