JDBC,就是Java DataBase Connectivity, 即Java 数据库连接规范,各种数据库根据这个规范实现了自己的驱动类Driver,如Mysql、Oracle等。使用不同的数据库,只需要导入对应数据库的驱动包即可。
主要掌握以下几个:
* 1、DriverManager * 2、Connection * 3、Statement * 4、ResultSet
public class Demo1
{
public static void main(String[] args) throws SQLException
{
// register driver, 不建议使用
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// create connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// get statement
Statement stmt = conn.createStatement();
// exec SQL
ResultSet rs = stmt.executeQuery("select * from stu");
// process the resultSet
while (rs.next()){
System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4) );
}
// close resource
rs.close();
stmt.close();
conn.close();
}
}
解决SQL注入问题:
public class Demo3
{
public static void main(String[] args)
throws SQLException, ClassNotFoundException
{
// register driver, 不建议使用
Class.forName("com.mysql.jdbc.Driver");
// create connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
PreparedStatement preStmt = conn.prepareStatement("select * from stu where sid=? and sname =?");
preStmt.setString(1, "S_1001");
preStmt.setString(2, "liuYi");
// exec SQL
ResultSet rs = preStmt.executeQuery();
// process the resultSet
while (rs.next()){
System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4) );
}
// close resource
rs.close();
preStmt.close();
conn.close();
}
}