JDBC

来源:互联网 发布:数据库审计产品 编辑:程序博客网 时间:2024/06/05 12:49

     JDBC(Java Data Base Connectivity,Java数据库连接)时Sun公司提供的一套数据库编程接口API,可以为多种关系数据库提供统一访问。JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统。尽管JDBC在Java语言层面实现了统一,但不同数据库仍有许多差异,而且JDBC不符合面向对象的软件设计方法,于是诞生了Hibernate项目,Hibernate对JDBC在封装,实现了对数据库操作更宽泛的统一和更好的可移植性。

     JDBC编程步骤:

    (1)加载驱动程序:为了与特定的数据库相连,JDBc必须加载相应的驱动程序。

      例如加载ODBC的语句:Class.forName("sun.jdbc.odbc.jdbcOdbcDriver");

      加载Oracle驱动程序语句:Class.forName("oracle.jdbc.driver.OracleDriver");

      加载SQL Server驱动程序的语句:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

      加载MySql驱动程序语句:Class.forName("com.mysql.jdbc.Driver");

    (2)获得连接对象:将驱动程序传递到DriverManager,然后获得连接Connection对象,参考语句如下:

      //数据库连接路径

      String url="jdbc:mysql://localhost:3306/test";

      Connection con=DriverManager.getConnection(url,"数据库用户名","数据库密码");

    (3)创建语句:使用Statement、PreparedStatement或CallableStatement对象,并将它们用于更新数据库或执行查询,它们都专用于发送特定类型的SQl语句:Statement对象用于执行不带参数的简单SQl语句;PreparedStatement对象用于执行带或不带IN参数的预编译SQL语句;CallableStatement对象用于执行对数据库已存储过程的调用。

   (4)查询返回包含有已请求数据的ResultSet:该ResultSet是按类型检索的,它包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。

    (5)关闭数据库连接:为了释放资源,需要对数据连接对象进行关闭操作。

 

面试题:

java.sql.PreparedStatement接口是预编译Statement,它是Statement的子接口。如果数据库支持预编译,它可以将SQl语句传给数据库做预编译,以后每次执行这个SQL语句时,速度就可以提高很多。

 例如:使用预编译方式传入查询条件查询student表的数据,参考如下:

String sql="select id,name,age from student where name=? and age=?";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,"阿迷果");

pstmt.setInt(2,28);

rs=pstmt.executeQuery();

while(re.next()){

     System.out.println(rs.getString("name"));

}

 

原创粉丝点击