JDBC连接数据库的四种形式:
1. JDBC-ODBC Bridge Driver 这种方式可以访问一个ODBC数据源,但每台客户端计算机需要安装并配置ODBC驱动 2. Native-API Partly java Driver 这种方式将JDBC调用转换为特定数据库API的调用,因此这种方式要求客户端计算机安装特定数据库的驱动程序 3. JDBC-Net Pure Java Driver 这种方式将JDBC调用转换为独立于数据库的中间件厂商的专有数据库的访问协议,然后由 其负责与数据库链接活动 4. Native-Protocol Pure Java Driver 这种方式将JDBC调用转换为数据库使用的标准网络协议(HTTP S-HTTP),通过标准网络协议与数据库服务器进行通信 驱动程序 JDBC访问数据库,需要有一个"加载驱动程序-建立连接"的过程,也就是说访问数据库需要驱动程序,在建立连接的 过程中,则需要提供访问数据库的JDBC URL,用户名和密码 JDBC驱动程序通常是一个或几个jar文件,它实际上封装了数据库访问的类库 驱动程序名一般采用"包名.类名"的形式 建立连接需要的JDBC URL提供了一种标志数据库的方法,可以使相应的驱动程序能识别数据库并与之建立连接 URL 一般有三部分组成: jdbc:<子协议>:<子名称> <子协议>是指数据库连接机制名,<子名称>提供定位数据库更详细的信息 例如,数据库具体名称,如果通过网络访问,还需要包含主机名,端口号,等 例如:连接MYSQL数据库JDBC的URL为jdbc:mysql://服务器名称/数据库名 微软的sql URL为jdbc:microsoft:sqlserver://服务器名:1433;DatabaseName=数据库名启动Java DB数据库服务器 要启动网络服务器 可直接运行 startNetworkServer.bat
JDBC常用的接口和类 JDBC提供了几个重要的接口和类,用于存取数据库。java应用程序通过JDBC访问数据库,而jdbc驱动程序则需要 通过java.sql包的接口和类与数据库交互
驱动Driver 加载驱动的语句很简单 Class.forName(String className); 例如: Class.forName('org.apache.derby.jdbc.ClientDriver') 使用之前,应先在项目的构建路径中配置好驱动程序 驱动管理器DriverManager 此类事JDBC的管理层,作用于用户和驱动程序之间,负责加载驱动程序,建立数据库和驱动程序之间的连接 使用此类的getConnection()方法可以创建一个连接对象,其形式有如下三种: DriverManager.getConnection(String url) DriverManager.getConnection(String url,String user,String password) DriverManager.getConnection(String url,Properties info) 数据库连接Connection 一个连接对象代表与特定数据库的会话,Connection类方法比较多 1. close() 2. isClosed() 3. setAutoCommit(boolean autoCommit) 设置connection是否处于自动提交模式,默认为自动提交,如果是自动提交则所有sql语句将会被立即执行 否则,sql语句整体作为一个事务,有commit() 提交,由rollback()撤销,调用方法如下: conn.setAutoCommit() 4. commit() 5. rollback() 6. getAutoCommit() 获取读取自动提交状态 7. createStatement() 创建能够发送sql语句的对象,一般用于执行不带参数的sql语句,创建好后,如果是查询操作,就可以 通过该对象得到查询后的若干记录,即结果集(ResultSet),如果是数据更新操作。可以调用该对象的相应方法进行更新 创建Statement对象最简单的方法: Statement stmt=conn.createStatement(); 对于需要返回结果集查询操作,可以所有下面的形式: Statement stmt=conn.createStatement(int type,int concurrency); 其中type决定了结果集指针的移动方式 concurency是否允许使用结果集的内容更新数据表保持同步 Statement stmt=conn.createStatement( ); 7. getMetaData() 获取数据库的各种元数据,包括数据库产品号 版本号 DatabaseMetaDate metaData=conn.getMetaData(); 8. nativeSQL(String sql) String sql=conn.naticeSQL("insert into "); 9. prepareCall(String sql) 预编译调用数据库存储过程的sql语句 CallableStatement cs=conn.prepareCall();
本文出自 “赛” 博客,请务必保留此出处http://saibro.blog.51cto.com/2052408/1184354