Java数据库连接,(Java Database Connectivity,简称JDBC)为JAVA程序和数据库提供一个公共的接口,是Java程序与数据库连接的桥梁。
我们如果选择连接 mysql,可以去maven官网搜 mysql 驱动包,用于java连接mysql数据库:mysql-connector-java maven
新建项目,添加lib目录,将刚下载好的包(5.1.47)复制到 lib,并且点击 Add as Library,如下图:
新建 myFirst.java:
package com.edward.demo;
import java.sql.*;
public class JdbcFirst {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1. 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 用户信息
String url = "jdbc:mysql://localhost:3306/first_sql?useUnicode=true&characterEncoding=utf8&useSSL=false";
String username = "root";
String password = "888888";
// 3. 连接成功,Connection 对象代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
// 4. Statement用于接下来执行 sql 语句
Statement statement = connection.createStatement();
// 5. 编写 sql 语句,并返回结果
String sql = "SELECT * FROM t1";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
System.out.println("id:" + resultSet.getObject("id") + " name:" + resultSet.getObject("name") + " grade:" + resultSet.getObject("grade"));
System.out.println("===============");
}
// 6. 释放连接
resultSet.close();
statement.close();
connection.close();
}
}
打印结果:
Statement 执行 sql 语句:
statement.executeQuery(); // 查询操作, 返回 ResultSet
statement.execute(); // 执行任何sql
statement.executeUpdate(); // 增、删、改。都是用这个,返回受影响的行数
ResultSet 获取指定的数据类型:
resultSet.getObject(); // 在不知道返回类型的情况下用getObject
result.getString();
result.getInt();
result.getFloat();
. . . . . .
遍历指针:
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast(); // 移动到最后面
resultSet.next(); // 下一条数据
resultSet.previous(); // 上一条数据
resultSet.absolute(row); // 移动到指定行
问题来了,直接用 Statement 对象执行 sql 语句,会存在 Sql 注入的风险 !
prepareStatement 防止 sql 注入:
IDea 编辑器查看 mysql 的可视化界面:
先测试 mysql 数据库连接:
查看 table 表内容: