java提供的一套操作数据库数据的应用编程接口,在用连接jdk所提供的相应实现类。
需要下载MySQL的第三方驱动包,使用Maven添加以下依赖:
<!--JDBC驱动包依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
package com.JDBC;
import java.sql.*;
/**
* @Created with IntelliJ IDEA
* @Description:
* @Package: com.JDBC
* @author: FLy-Fly-Zhang
* @Date: 2019/7/5
* @Time: 20:17
*/
public class JDBCDemo {
public static void main(String[] args) {
try {
//加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
/**
* 获取数据库连接
* 传递参数含三个部分:
* String url: 数据库连接的URL
* jdbc: 数据库子协议 ://ip+端口/数据库名
* jdbc:jdbc ://localhost:3306/sqldemo
* String user:数据库连接用户名
* String password: 数据库密码
* 返回connection对象
*/
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/sqldemo?useSSL=false&serverTimezone=UTC","root","123456");
// connection.setSavepoint("a");//设置保存点
// connection.setAutoCommit(true);//设设置是否进行手动提交
// connection.rollback();//回滚置保存点
// connection.commit();//手动提交事务
//创建 Statement对象有三种实现:
/**
* 1,创建基本的statement 对象
* java.sql.Statement
*/
Statement statement = connection.createStatement();
String sql = "select * from Student";
//4.执行SQL语句
ResultSet resultSet = statement.executeQuery(sql);
/**
* 2,创建预编译的Statement对象
* java.sql.PreparedStatement
*/
/**
* sql语句上参数通过占位符? 来代替参数
* 创建PreparedStatement对象后进行参数赋值
* 参数赋值使用statement.setString(1,"1"); //当然也可以使用对应属性函数进行赋值
* 该参数两个方法,第一个参数表示要给SQL中哪一个位置进行赋值,默认值为1
* 第二个参数为需要赋值的值。
*/
// String sql="select * from Student where SID=? and Sname=?";
// PreparedStatement statement=connection.prepareStatement(sql);
// //statement.setString(1,"1");
// statement.setInt(1,1);
// statement.setString(2,"赵雷");
// // 4.执行sql
// ResultSet resultSet=statement.executeQuery();
/**
* 3,创建带有回调功能的CallableStatement对象
* java.sql.CallableStatement对象
* 也带有预编译功能
*/
//CallableStatement callableStatement=connection.prepareCall("");
//5.处理结果集
while (resultSet.next()){
//根据对应属性名获取对应属性。
int SID=resultSet.getInt("SID");
String sname = resultSet.getString("Sname");
System.out.println("SID: "+SID+" Sname: "+sname);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}