1.如果不同的数据库,我们的方法不同意,不利于程序管理
2.改进:规定一套接口范围,让不同的数据库厂商实现,在java程序种统计条用接口的方法即可。
数据库厂商调用java程序的标准接口,实现java程序的接口,接口就是java厂商指定的规范。
jar其实就是一个驱动
Jdbc的好处(示意图)
说明:Jdbc是java提供一套用于数据库操作的接口api,java程序员只需要面对这套接口编程即可。不同的数据库厂商,需要针对这套接口,提供不同实现。
jdbc api
jdbc Api 是一系列的接口,他统一和规范了应用程序与数据库的连接、执行sql语句,并得到返回结果各类操作,相关类和接口在java.sql 与javax.sql 包中。
把包引进来:
加入maven:
连接数据库:
1.注册驱动
Driver driver = new Dirver();
得到连接:
jdbc:mysql:// 规定好表示协议,通过jdbc的方式连接mysql
localhost 主机,可以是ip地址
3306 表示mysql监听的端口
hsp_db02连接到mysqldbms的哪个数据库
5mysql的连接本质就是前面学习的socket连接
String url ="jdbc:mysql://localhost:3306/xxx?
将对象
interface Statement
用于执行静态sql语句并返回生成的结果的对象
Statement statement = connect.createStatement();
statement.executeUpdate(sql);
int rows = statement.executeUpdate(sql); //如果是dml语句,返回的就是影响行数。
DML(Data Manipulation Language,数据操作语言)是用于操作数据库中数据的 SQL 语句类型。DML 语句主要用于对数据库中的记录进行增、删、改、查的操作,它们不影响数据库的结构(如表或索引),而是用于对表中的数据进行操作。
- DDL(Data Definition Language,数据定义语言):用于定义和管理数据库结构,如创建、修改、删除表或索引(
CREATE
、ALTER
、DROP
等)。 - DCL(Data Control Language,数据控制语言):用于控制数据库访问权限(
GRANT
、REVOKE
等)。 - TCL(Transaction Control Language,事务控制语言):用于控制事务的处理(
COMMIT
、ROLLBACK
、SAVEPOINT
等)。
连接方式1:会直接使用:com.mql.jdbc.Driver(),属于安静加载,灵活性差,依赖强
Driver driver = new Driver();
String url ="jdbc:mysql://localhost:3306/jdbc_db";
Properties info = new Porperties();
info.setProperty("user","root");
info.setProperty("password","hsp");
Connection con = new driver.conect(url,info);
System.out.println(conn);
推荐使用:
@Test public void jdbcTest4() throws ClassNotFoundException, SQLException { //使用反射加载了Driver 类 //在加载Driver类,完成注册 //mysql驱动5.1.6可以无需Class.forName(xxxx); //从jdk1.5 以后使用jdbc4,不需要现实调用class.forName()注册驱动而是自动调用驱动,jar包下META-INF\services\java.sql.Driver Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/atguigudb"; String user = "root"; String passwd = "root"; Connection connection = DriverManager.getConnection(url, user, passwd); System.out.println("第四种方式" + connection); }
方式2:
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) aClass.newInstance(); String url = "jdbc:mysql://localhost:3306/atguigudb"; Properties properties = new Properties(); properties.setProperty("user","root"); properties.setProperty("password","root"); Connection connect = driver.connect(url, properties); System.out.println("方式二:" + connect);
方式五:
Properties properties = new Properties(); properties.load(new FileInputStream("src/mysql.properties")); //获取相关值 String user = properties.getProperty("user"); String password = properties.getProperty("password"); String driver = properties.getProperty("driver"); String url = properties.getProperty("url"); Class.forName(driver); Connection connection = DriverManager.getConnection(url, user, password); System.out.println(connection);
user=root password=root url=jdbc:mysql://localhost:3306/atguigudb driver=com.mysql.jdbc.Dri