JDBC基础

JDBC接口

java 连接数据库

  • 需要 mysql 驱动的包

jdbc.properties 文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mydata
user=root
password=123456

jdbc.java 文件

import java.sql.*;
import java.util.*;
// 使用资源绑定器绑定属性配置文件
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
String driver = bundle.getString("driver");
String url = bundle.getString("url");
String user = bundle.getString("user");
String password = bundle.getString("password");

// 注册驱动 第一种
Driver driver = new Driver();
DriverManager.registerDriver(driver);
// 注册驱动 第二种
Class.forName(driver);
Class.forName("com.mysql.jdbc.Driver"); // 直接从 mysql 驱动包 Driver.class 执行类加载

// 获取连接
url:
    jdbc:mysql://machine_name:port/dbname
    jdbc:mysql://127.0.0.1:3306/mydata
Connection conn = DriverManager.getConnection(url, "root", "123456");
conn.setAutoCommit(false); // JDBC事务机制默认自动提交,设置 false 关闭自动提交


// 获取数据库操作对象
// Statement 专门执行 sql 语句
Statement stmt = conn.createStatement();

sql = "select * from t_user where name = ? and pwd = ?"; // ?表示一个占位符,不能用单引号括着
PreparedStatement ps = conn.prepareStatement(sql); // 预编译 sql 语句,防止sql注入

// 执行 sql 语句
stmt.executeUpdate(sql); // DML语句,返回 int 改动了多少条
rs = stmt.executeQuery(sql); // 查询语句,返回 ResultSet
while(rs.next()); // 执行下一行看是否有数据
rs.getString(1); // 获取某一行中第一列的数据,JDBC下标从1开始
rs.getString("name"); // 最好写列名

ps.setString(1, name); // 给 预编译 第一个 ? 传值
ps.setString(2, pwd); // 给 预编译 第二个 ? 传值
rs = ps.executeQuery();

conn.commit(); // 等待事务结束,手动提交

// 程序前半部分 sql 执行了,后半部分发生错误,sql 没有同时执行成功要进行回滚
catch(Exception e) {
    // 回滚事务
    if (conn != null) {
        try {
            conn.rollback();
        } catch(SQLException e) {
            e.printStackTrace();
        }
    }
}

// 释放资源,数据库已经操作完毕,检查数据库是否关闭
finally {
    try {
        if (rs != null) {
            rs.close();
        }
    }
    try {
        if (stmt != null) {
            stmt.close();
        }
    } catch(SQLException e) {
        e.printStackTrace();
    }
    try {
        if (conn != null) {
            conn.close();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值