JDBC MySQL Connection
JDBC क्या है
JDBC (Java Database Connectivity) Java programs का MySQL जैसे databases से बात करने का standard तरीका है। इससे आप connection खोलते हैं, SQL queries भेजते हैं, और results वापस पढ़ते हैं — सब Java code से। यह Java में database काम की बुनियाद है।
JDBC steps
- अपने project में MySQL JDBC driver जोड़िए।
- database URL, user और password के साथ
Connectionलीजिए। - अपने SQL को
PreparedStatementबनाइए। - इसे execute करके
ResultSetलीजिए (SELECT को)। - Results loop करके हर column पढ़िए।
- Resources close कीजिए।
MySQL से connect
import java.sql.*;
String url = "jdbc:mysql://localhost:3306/school";
String user = "root";
String pass = "password";
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println("Connected!");
DriverManager.getConnection database URL, username और password इस्तेमाल करके connection खोलता है। URL MySQL server और database नाम की ओर इशारा करता है।
Query चलाना
String sql = "SELECT name, marks FROM students WHERE marks > ?"; PreparedStatement ps = con.prepareStatement(sql); ps.setInt(1, 40); // ? placeholder भरो ResultSet rs = ps.executeQuery();
PreparedStatement values को ? placeholders इस्तेमाल करता है, जिन्हें आप setInt, setString वग़ैरह से भरते हैं। executeQuery SELECT चलाता है और ResultSet लौटाता है।
Results पढ़ना
while (rs.next()) {
String name = rs.getString("name");
int marks = rs.getInt("marks");
System.out.println(name + ": " + marks);
}
rs.close(); ps.close(); con.close();
Diya: 92
rows में जाने को rs.next() से loop कीजिए, हर column नाम से पढ़ते हुए। ख़त्म होने पर resources मुक्त करने को हमेशा ResultSet, statement और connection close कीजिए।
SQL injection रोकना
// SAFE: placeholder, input data मानी जाती है
PreparedStatement ps =
con.prepareStatement("SELECT * FROM users WHERE email = ?");
ps.setString(1, userInput);
// UNSAFE: input जोड़कर SQL कभी मत बनाइए
// "... WHERE email = '" + userInput + "'"
हमेशा ? और setString वाला PreparedStatement इस्तेमाल कीजिए। यह input को data मानता है, कभी SQL नहीं, जो injection attacks रोकता है — PHP और हर language जैसा वही नियम।
आम गलतियाँ
- String joins से SQL बनाना। सुरक्षित रहने को PreparedStatement placeholders इस्तेमाल कीजिए।
- Resources close न करना। ResultSet, statement और connection close कीजिए (या try-with-resources इस्तेमाल कीजिए)।
- Driver छूटना। MySQL JDBC driver classpath पर होना चाहिए।
- getString में गलत column नाम। यह SELECT column से बिल्कुल मेल खाना चाहिए।
सारांश
- JDBC Java को MySQL जैसे databases से जोड़ता है।
- URL, user और password के साथ Connection लीजिए।
- Queries को
?placeholders वाला PreparedStatement इस्तेमाल कीजिए। - SELECT की rows को ResultSet से
rs.next()से पढ़िए। - हमेशा resources close कीजिए और SQL injection रोकने को placeholders इस्तेमाल कीजिए।
आगे, database tables design कीजिए MySQL data types में, या queries सुरक्षित कीजिए keys और constraints से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में JDBC क्या है?
Java को MySQL database से कैसे connect करूँ?
jdbc:mysql://localhost:3306/dbname जैसे URL के साथ DriverManager.getConnection(url, user, password) इस्तेमाल कीजिए। यह Connection लौटाता है जिसे आप queries चलाने को इस्तेमाल करते हैं।PreparedStatement क्या है और क्यों इस्तेमाल करूँ?
ResultSet क्या है?
while (rs.next()) से loop करते हैं और हर column को rs.getString("name") या rs.getInt("age") जैसी methods से पढ़ते हैं।JDBC में SQL injection कैसे रोकूँ?
? placeholders वाला PreparedStatement इस्तेमाल कीजिए और values को setString जैसी methods से set कीजिए। user input से strings जोड़कर SQL कभी मत बनाइए, जो injection attacks की अनुमति देता है।