我们学习了数据库,数据库实现了数据的持久化,但我们最终要在程序里处理数据啊,那java代码中怎么去访问数据库读写数据呢?
这就要用到sun公司设定的一套数据库标准了,这套标准就是JDBC(Java Database Connectivity)。但它只是规范,不做具体实现。于是数据库厂商又根据JDBC标准,实现自家的驱动Driver。如:mysql驱动com.mysql.cj.jdbc.Driver,Oracle的驱动oracle.jdbc.OracleDriver。有了这套解决方案,java就可以访问数据库中的数据了。
public interface Connection extends Wrapper, AutoCloseable {} public interface Statement extends Wrapper, AutoCloseable {} public interface PreparedStatement extends Statement {} public interface CallableStatement extends PreparedStatement {} public interface ResultSet extends Wrapper, AutoCloseable {}
Java中提倡面向接口开发,而最经典的接口设计莫过于JDBC数据库接口。
Connection链接、Statement语句、PreparedStatement预处理语句、CallableStatement存储过程、ResultSet结果集。
调用方式有三种:Statement语句、PreparedStatement预处理语句、CallableStatement存储过程,推荐使用第二种PreparedStatement,防止SQL注入,其也是预编译性能高。
1, 提供了丰富的工具类jar包,项目中导入jar包
2, 连接数据库: 端口号3306 库名cgb2109 用户名root 密码root
3, 写SQL
4, 处理数据库返回给java的结果
1,选用哪个版本的jar包,要看你安装的数据库的版本
1, 复制粘贴到工程里
2, 选中jar包,右键-add as libarary… ok
package cn.tedu.jdbc; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; //测试jdbc public class Test1 { //junit单元测试:@Test public void 没有参数 @Test public void get() throws Exception { //1,注册驱动 -- 利用反射获取Driver Class.forName("com.mysql.jdbc.Driver");//5版本的jar包 //Class.forName("com.mysql.cj.jdbc.Driver");//8版本的jar包 //2,连接数据库,并返回了数据库的连接Connection String url = "jdbc:mysql://localhost:3306/cgb2109"; //遵循的协议://本机ip地址:端口号/数据库名 Connection c = DriverManager.getConnection(url,"root","root"); //3,获取传输器 Statement s = c.createStatement(); //4,执行SQL语句 //需求:利用java查询数据库中dpet表的所有数据 ResultSet r = s.executeQuery("select * from dept");//执行查询的SQL语句 //s.executeUpdate()执行增删改的SQL语句 //5,处理结果 //6,释放资源 System.out.println("java和数据库连接成功!!"); } }