中央仓库(jar包下载地址)
理论
API:是应用程序编程接口,
提供了一组类/方法让程序员直接调用
JDBC:即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是
Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java
开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问
不同数据库需要下载不同的驱动包,才能使用各个类型的数据库,
在中央仓库上选择驱动版本号要和数据库版本号对应(大版本号相同即可)。
操作
java引入jar包驱动
需要有驱动包进行接口之间的转换(数据库接口适配java提供的统一接口:标准)),
因此就需要先把驱动包给下载下来,并且导入到项目中。
(1)创建与src同级的目录lib,将数据库驱动包复制到lib目录下


(2)右键lib,选择Add as Library
把刚才创建好的目录标记为存放库文件(jar包)的目录

(3)此时jar包可以展开,说明可以正常使用了

找到数据库

访问数据库,建立连接


sql语句预处理

通过拼接可以将输入数据插入数据库(但是容易被sql注入,安全性较低)

运用(?占位符)问号解决sql注入问题(建议)

数据操作
statement.executeUpdate();
将数据插入数据库,返回值为影响的数据库行数

关闭资源

查询数据操作:
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCSelect {
public static void main(String[] args) throws SQLException {
//创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=utf8&useSSL=false");
((MysqlDataSource) dataSource).setUser("用户名");
((MysqlDataSource) dataSource).setPassword("密码");
//建立连接
Connection connection = dataSource.getConnection();
//构造sql
//预处理sql语句
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);
//执行sql语句,查询为临时表返回值为 ResultSet
ResultSet resultSet = statement.executeQuery();
//遍历结果集合
while (resultSet.next()){
//按照列序号遍历
//int id = resultSet.getInt(1);
//String name = resultSet.getString(2);
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("id = "+ id +", name = "+ name);
}
//关闭资源
resultSet.close();
statement.close();
connection.close();
}
}
增删改操作:
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCUpdate {
public static void main(String[] args) throws SQLException {
//创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("用户");
((MysqlDataSource)dataSource).setPassword("密码");
//建立连接
Connection connection = dataSource.getConnection();
//构造sql
Scanner scan = new Scanner(System.in);
System.out.println("输入要修改的学生ID");
int id = scan.nextInt();
System.out.println("输入要修改的学生姓名");
String name = scan.next();
//预处理sql语句
String sql = "update student set name=? where id = ?";
//数据预处理将数据解析,让数据库可以直接执行命令,提高数据库执行效率
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(2,id);
statement.setString(1,name);
//执行sql语句
int n = statement.executeUpdate();
System.out.println("受影响的行:"+n);
//关闭资源
statement.close();
connection.close();
}
}