使用JDBC连接数据库
来源:互联网 发布:applyasync python 编辑:程序博客网 时间:2024/06/06 03:23
JDBC访问数据库包括两个方面:第一个是 java本身提供给程序员的API,大部分API位于java.sql包中,还有存在于javax.sql中。第二部分是:不同的数据库产品提供不同的JDBC API称为spi 也就是数据库驱动程序。数据库驱动中有一个关键类是帮助连接java程序与数据库创建连接的,驱动类(Driver Class)
利用JDBC操作数据库首先要下载不同数据库的驱动同时导入项目中。还要尽量熟悉java提供的API。首先介绍常用的api
(1)DriverManager:驱动管理类:
操作数据库首先建立链接,得到连接对象(Connection)着各类中定义了得到链接的方法:
public static Connection getConnection(String url,String user,String password)
getConnection方法获得数据库连接对象 ,url称为连接串,它体现了数据库的链接协议,数据库名称,端口,主机地址,user为数据库名,password为数据库密码。
(2)Connection 连接接口
可以通过他来获得语句执行对象(Statement)利用其中的createStatement()方法。
(3)Statement语句接口 包括executeUpdate、executeQuery方法。
其中 int executeUpdate(String sql ):执行增加、删除、修改操作。返回值是影响的行数。
ResultSet executeQuer(String sql ):执行查询操作,返回结果集对象。
(4)ResultSet结果集接口
当执行了查询操作后都会返回结果进行处理,结果都存进封装在这个对象中,该接口还提供了遍历结果集的方法
boolean next():该方法可以是结果集游标上下移动,if()/ while()实现。有记录返回true 没有false。
getXXX(String columnName)方法,如getString ,getInt XXX为数据类型。选择与字段相同的数据类型,通过名称可以返回对象的值
getXXX(Int indext)根据字段在结果集中的位置来返回字段的值 用法和上面的相似
链接数据库时首先声明驱动类的名字,连接串,连接对象,语句对象,可以使用class类中的forName()方法来加载一个类。
利用JDBC链接数据库 并且封装增删改查的方法。代码如下(masql为例):
package com.tjetc.dbutil;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBConn { //三属性 private Connection conn; //连接 private Statement stmt; //执行对象,用于执行sql语句 private ResultSet rs; //结果集,用于保存查询的结果 //构造方法 public DBConn(){ try { Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动文件 String url="jdbc:mysql://localhost:3306/project"; this.conn=DriverManager.getConnection(url,"root","1"); stmt=conn.createStatement(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //查询的方法 public ResultSet execQuery(String strSql){ try { rs=stmt.executeQuery(strSql); return rs; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } //执行增删改的方法 public int execOther(String strSql){ try { int flag=stmt.executeUpdate(strSql); return flag; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return -1; } } //关闭 public void closeAll(){ try { if(!rs.isClosed()){ rs.close(); } if(!stmt.isClosed()){ stmt.close(); } if(!conn.isClosed()){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接数据库
- 使用jdbc连接数据库
- 使用JDBC连接数据库
- 使用jdbc连接数据库
- 使用JDBC连接数据库
- 使用JDBC连接MYSQL数据库
- 使用JDBC连接MYSQL数据库
- java使用JDBC连接数据库
- java使用JDBC连接数据库
- 使用JDBC连接各种数据库
- 使用JDBC连接各种数据库
- 使用jdbc连接sql数据库
- 【博弈贪心】poj 1740
- [LeetCode]4Sum
- 领导团队(1)-什么是团队
- UISplitViewController基本使用方法
- 成为Java GC专家系列(1) ——Java垃圾回收机制
- 使用JDBC连接数据库
- [基础]Ruby中使用Rspec 和Rake(非Rails环境)
- WAP中利用截取手机号码达到自动登入的一段源码
- iOS的基本设计模式
- 设计心理学-以用户为中心的设计
- list数据打印
- git clone: fatal: Unable to find remote helper for 'https'
- 成为Java GC专家系列(2) ——监控Java垃圾回收
- 某些windows内核dll