JDBC:通过Java代码操作mysql数据库,数据库会提供一些API供我们调用
MySQL、Oracle、等API有差异,但是Java统一了所有接口,即JDBC;
原始api-驱动包(类似转接头)-统一的api-Java
驱动包:安装并引入项目里
下载第三方程序包:
- 官网
- github(Steam++)
- 中央仓库(下载驱动包“MySQL Connector Java”)
Maven Repository: Search/Browse/Explore
ps.驱动包(.jar)要和mysql版本匹配
把驱动包引入项目:
1.复制到目录中,一般叫lib
2.把目录标记成库的目录
1 具体实现
1.1准备工作
先创建一个数据源DataSource (javax.sql - JDBC的包)
DataSource dataSource=new MysqlDataSource();//向上转型
((MysqlDataSource)dataSource).setUrl("地址");//向下转型
((MysqlDataSource)dataSource).setUser("root");//用户名
((MysqlDataSource)dataSource).setPassword("123456");//密码
地址: jdbc:mysql://127.0.0.1:3306/database名?characterEncoding=utf8&useSSL=false
127.0.0.1 环回ip地址,网络上一个主机所在位置,自己给自己发消息,如果jdbc和mysql在同一个主机,就用环回ip,否则用对应主机ip(cmd ipconfig);
3306 端口号(具体到某个软件)
useSSL=false 是否进行加密
? 后面是访问资源时需要哪些参数
root 管理员mysql默认自带用户
高内聚:把相关联的功能放在一起;
低内聚:把相关联功能零散分布;
低耦合:两个模块之间的关联关系不是很紧密,一个变化对另一个影响小
URL(网址) 表示网络上的资源位置
1.2建立连接
Connection connection=dataSource.getConnection();//java.sql包
//抛出异常 SQLException
1.3构造sql
String sql="mysql语句";
PreparedStatement statement=connection.prepareStatement(sql);
//插入用户自行输入数据
String sql="insert into student values(?,?)";
PreparedStatement statement=connection.preparestatement(sql);
statement.setInt(值,对应列名);
statement.setString(值,对应列名);
PreparedStatement 准备好的、预处理的语句;
1.4把sql发给服务器
//写操作
//n表示影响到的行数
int n=statement.executeUpdate();//insert、update、delete 写操作
//读操作
//ResuleSet表示查询到的结果集合(临时表)
ResultSet resultSet=statement.executeQuery();//select 读操作
//遍历表
while(resultSet.next()){
//针对这一行处理,取出列的数据
int id=resultSet.getInt("列名");}
1.5关闭连接 释放资源
//写操作
statement.close();
connection.close();
//后生成的先释放
//读操作
resultSet.close();
statement.close();
connection.close();