一、JDBC是什么
Java Database Connectivity:Java数据库连接,是一种用于执行SQL语句的Java API(各种软件之间的通信方法,由一些类和接口组成),是Java数据连接的规范。
解决不同数据库之间代码差异性(类似于中间适配器),为多种关系数据库提供统一访问
二、JDBC的优势
程序的可移植性大大提升
三、JDBC的使用
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class AddCity {
public static void main(String[] args) throws SQLException {
//1.获得数据源 DateSource(设置MySQL的服务器地址)
MysqlDataSource dataSource = new MysqlDataSource();
//1.1设置MySQL的服务器地址
dataSource.setURL("jdbc:mysql://127.0.0.1:3306/java33?characterEncoding=utf8&useSSL=false");
//URL("jdbc:mysql://127.0.0.1:3306/java33?characterEncoding=utf8&useSSL=true")
//设置服务器信息(协议名//MySQL IP地址:端口号(默认情况3306)/数据库名?(参数开始符)数据库操作编码格式(防止乱码)&(多个参数连接符号)是否使用安全加密)
//useSSL=true注意事项:如果在操作过程中出现错误,可以尝试改为false,因为有些电脑不支持ssl加密
//1.2 设置连接mysql的用户名
dataSource.setUser("root");
//1.3 设置mysql的密码
dataSource.setPassword("123456789");
//2.得到连接Connection(使用com.mysql.jdbc包)
Connection connection= (Connection) dataSource.getConnection();
//3.得到执行器并组装(使用java.sql)
//三种执行器:1.Statement(不带where的简单SQL语句)
// 2.PrepareStatement((1)增删改查,带where和不带where的都可以执行(2)性能高(3)SQL预编译(4)可以使用占位符?(5)组织SQL注入)
//3.CallableStatement(用于执行存储过程的调用)
String insertSQL="insert into class(id,class_name)values(?,?)";
PreparedStatement statement= connection.prepareStatement(insertSQL);
//填充占位符
statement.setInt(1,3);//1:占位符的下标地址(下标来时位置是1) 4:给sql中第一个位置设置具体值
statement.setString(2,"数学");
//4.执行SQL
//executeQuery():返回单个结果集,通常用于select语句
//executeUpdate():返回一个整数,指示受影响行数,通常用于update,insert,delete语句
int result=statement.executeUpdate();//返回一个受影响的行数
System.out.println("受影响行数:"+result);
//5.关闭资源(从小到大关闭)
statement.close();//关闭执行器
connection.close();//关闭连接
}
}