JDBC:java语言操作数据 本质:其实是sun公司官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套实现类,提供数据库驱动jar包。 我们可以使用这套接口编程,真正执行的代码是驱动jar包中的实现类
步骤 1导入驱动jar包 2注册驱动
Class.forName("com.mysql.jdbc.Driver");3获取数据库连接对象 Connection
Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/testdb", "test", "123456");4定义sql
String sql = "select * from user";5获取执行sql语句对象 Statement
Statement stmt = connection.createStatement();6执行sql,接收返回结果
ResultSet executeQuery = stmt.executeQuery(sql);7处理结果
while (executeQuery.next()) { String a = executeQuery.getString(1); System.out.println(a); System.out.println("======"); System.out.println(executeQuery.getString("username")); String b = executeQuery.getString("password"); System.out.println(b); }8释放资源
if (stmt != null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }各个对象: DriverManager:驱动管理对象 Connection:数据库连接对象 Statement:执行sql对象 ResultSet:结果集对象 PreparedStatement:执行sql的对象
Statement和PreparedStatement区别: 1.PreperedStatement可以避免SQL注入的问题。 2.Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。 3.并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。
