Java连接数据库的一般步骤

Java连接数据库的一般步骤归纳如下:

  1. 导入驱动,加载驱动类
  2. 与数据库建立连接
  3. 发送SQL语句、执行
  4. 处理结果集
  5. 关闭连接

下面给出几大数据库的驱动类和连接字符串(url)

数据库驱动类接字符串(ip:port/实例名)
Oracleoracle.jdbc.OracleDriverjdbc:oracle:thin:@localhost:1521:ORCL(ORCL是Oracle的默认实例名)
MySqlcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/数据库实例名
SqlServer2008com.microsoft.sqlserver.jdbc.SqlServerDriver(2008版)jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名


 

 

 

 

 

操作数据库详细步骤:
1、加载数据库驱动

try {
    Class.forName(驱动类(如com.microsoft.sqlserver.jdbc.SQLServerDriver));
} catch (ClassNotFoundException e) {}

2、获取Connetion对象,与数据库建立连接

try {
    Connection connection = DriverManager.getConnection(连接字符串, 数据库用户名, 密码);
} catch (SQLException e) {}

3、编写sql

String sql = "select uname, upwd from users where uname=? and upwd=?"; // ?为占位符

4、创建语句执行者

pstmt = conn.prepareStatement(sql);
// 设置占位符的真实值
pstmt.setString(1, "zhangsan");
pstmt.setString(2, "abc");

5、执行sql,拿到ResultSet

ResultSet resultSet = pstmt.executeQuery(); //这里是查询,对于增删改操作使用pstmt.executeUpdate()方法,返回值为int类型,含义为几行受影响

ResultSet类似于游标,可以上下移动指针,调用其成员方法next()/previous()可以将指针下移/上移,如果有数据则返回1否则返回0

6、从结果集ResultSet中取数据

while (resultSet.next()) {
    System.out.println(resultSet.getString("uname") + ": " + resultSet.getString("upwd")); // uname和upwd是字段名
    //或者使用resultSet.getString(1), resultSet.getString(2)
}


resultSet的成员方法getXxx("字段名")和getXxx(列下标)是一对重载方法,功能相同,都是取数据,开发中常常指明列明可读性更高,但使用getXxx(int columnIndex)效率更高。

7、关闭连接
按照开启顺序的反序进行关闭,类似栈

try {
    resultSet?.close();
    pstmt?.close();
    connection?.close();
} catch (SqlException e) {}

综上所述,连接数据库可以这样写:

try {
    Class.forName(驱动类);
    Connection connection = DriverManager.getConnection(连接字符串, 数据库用户名, 密码);
    String sql = "select uname, upwd from users where uname=? and upwd=?"; // 使用问号作为占位符
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, "zhangsan"); // 设置占位符的真实值
    pstmt.setString(2, "abc"); // 设置占位符的真实值
    ResultSet resultSet = pstmt.executeQuery();
    while (resultSet.next()) {  //若果查询结果只有一条数据可将while改为if
        System.out.println((resultSet.getString(1)+ ": " + resultSet.getString(2)));
    }
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
} catch (Exception e) {
} finally {
    try {
        if (resultSet != null) resultSet.close();
        if (pstmt != null) pstmt.close();
        if (connection != null) connection.close();
    } catch (SQLException e) {
    } catch (Exception e) {
    }
}

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值