1.数据库
数据库的本质就是通过I/O读写文件
2.Java DataBase connectivity
可以理解为以前的 Socket桥梁 流读写数据库
作用
1.负责产生链接
2.传送SQL指令
3.处理效应信息
4.处理事务
3.JDBC驱动类型
JDBC-ODBC 每一个客户机都需要安装很耗费空间 管理不方便
JDBC-Native 类似第一种,每一个客户机上安装,调用本地原生C、C++ 具体到某一个数据库,
想要改变,需要改变底层代实现码
纯JavaJDBC 一个纯粹的基于Socket通信不需要安装在用户机上,每一个数据库的厂商自身提供
4.先找到适合MySQL数据库的JDBCQ驱动包
下载驱动包去官网 www.mysql.com
5.一切准备好了,可以发了
通过java利用jbdc 桥梁操作Mysql数据库
JDBC六部曲
1.导包(将找到的这个jar文件导入到java工程里)
在我们的工程里面创建一个文件夹lib
键mysql-connector-java.jar复制当前工程的lib文件内
做一个设置
File–>Project Structure–>Libraries 点击中的+号 选择jar文件路劲
public static void main(String[] args){
Connection connection =null ;
PreparedStatement preparedStatement = null ;
try {
//1导包
//2.加载驱动 Driver
Class.forName("com.mysql.jdbc.Driver");//通过反射获取类 可能找不到类 捕捉异常
// 用户连接不上数据是:
//verifyServerCertificate=false&useSSL=true
//?useUnicode=true&characterEncoding=UTF-8 设置字符集
//1存数据时:数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中
//2获取数据在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,
// 最后再将数据返回给客户端:
//3.获取连接
String url = "jdbc:mysql://localhost:3306/ccc?characterEncoding=UTF-8&verifyServerCertificate=false&useSSL=true" ;//jdbc:数据库类型://ip:端口号/数据名
String user = "root" ; //数据用户名
String password = "root" ; //密码
connection = DriverManager.getConnection(url,user,password);
//4.创建状态参数
//将我们需要执行的sql语句传入 反转sql注入
String sql = "UPDATE CITY SET CITYID = 1 WHERE CITYNAME='哈尔滨'" ;
preparedStatement = connection.prepareStatement(sql);
//5.执行操作
int result = preparedStatement.executeUpdate();//返回值是执行成功的语句的个数
System.out.println("执行完毕"+result);
} catch (Exception e) {
e.printStackTrace();
}finally{
//6.倒序关闭 close 这件事情必须做 所有放在finally里
try {
if (preparedStatement!=null){//在获取连接的时候可能会失败 会产生空指针异常
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection!=null){//在创建状态参数的时候可能会失败 会产生空指针异常
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}