1.关于 JDBC:
本质是 java 连接数据库使用的 Api,
三个 w:
①what:
java Database Connectivity: 数据库的连接技术;
java 语言的连接数据库的技术(别的语言也可以;)
jdbc:sun 公司的对于数据库连接的公共接口;
②how:
所有的数据库的增删改查,都是在利用的是 SQL 语句来实现,
这些所谓的 SQL Server 和 MySql,以及和这个 ORACLE,
1.都是数据库的管理系统(DBMS)--通过区域来管理数据,
2. 操作数据的是 ----->SQL
3. 数据库的可视化工具:--->SQL loy,navicat,等
这些可以可视化工具,不用和 cmd 的 doc 环境下去写命令连接, 可以实例化的操控,但是实现还是 SQL 语句,建表,就可以实际操 作;
4.将这些数据取出,去使用这些数据,必须要从这个数据仓库中去连接,快递去取,这个连接,(在 java 程序上,就是 jdbc)
③why:为什么要有这个 jdbc;
sun 公司制定出接口,(连接的方法,连接的准备什么的)
各个 DBMS 去,根据自己的产品去实现类,去实现连接的(驱动类)
这个驱动类,说白了就是讲 sun-java 制定接口,(use 的),但是众多的手机厂商,去传输数据的,(去由这个手机厂商去制定实现这个接口,通过这个 usb 获取连接)
如何使用的是 java 程序员应该是根据这个公共接口,面向接口编程,
但是要运行的时候,要驱动类去连接;
2.JDBC:
jDBC 中的这些公共的接口和 DBMS 的实现类(驱动 jar),都为了实现 java 代码可以连接 DBMS,并且操作它里面的数据而声明的
(java)--->Sql-->某个数据库-
但是连接的任务---就是驱动类;底层实现的;
包:java.sql 包和扩展包 javax.sql 包
常用的接口:
①Connection:连接
②Statement 和 PreparedStatement:增删改查:
③ResultSet:接受和处理查询结果--结果集
常见的辅助的类:
①DriverManager:驱动管理类
3.JDBC 的连接步骤:
①注册驱动类:(导包 mysql-connection-5.0.8.jar)
这里,要是没有注册驱动,编译不会报错误,运行时会报错误,
②连接数据库:
Connection 的接口和 DriverManager 的驱动管理;
③数据库的操作:
-----增删改: Statement 或者是 PrepareStatement
-----查询:(会有结果)Statement 或者是 PrepareStatement
加上 ResultSet 的接口;
④关闭数据库的连接:
关闭资源:
各种关闭:
package day_29JDBC.atguigui;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
/*
* 实例化操作JDBC的对象,并且得到JDBC的连接对象;
* 要点一:注册驱动:加载到内存(导jar包之后,加载内存忠的Driver的驱动类)
* 要点二:连接数据库:连接数据库url---getConnection的方法;
* 要点三:操作:增删该查;
* 先要创建这个Statement接口的对象
* 然后是excuteUpate(sql)的一个方法
*
* 要点四:关闭资源:st.close();
* connection.close();
* */
public class JdbcConnection {
@Test//单元测试junnit---方法前面加上的是public,到junit就不用啦;
public void connection() throws Exception{
/*
* 未注册驱动的错误
* java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/storebook4
*
* 数据库名写错误:
* com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'storebook4'
*
* mysql的异常:
* java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
* 这个是密码和账户名错误引起的;
*
* 其中这个主机号或者端口号错误:(连接错误)
* Communications link failure due to underlying exception:
*
* */
//1.注册驱动:
/*
* 三部曲:
* 首先,将mysql-connection的jar导进来;
* 将这个jar如添加到运行的类中;build path一下;
* 将这个类--加载到内存中,(注册)
*
*
*
* */
//注册驱动将驱动,加载到内存;
Class.forName("com.mysql.jdbc.Driver");
/*类加载的方式---将Driver---全类名---要用这个类去注册驱动
* com.mysql.jdbc.Driver---在我们添加的mySql-Connection的jar包中的
* */
//2.建立连接,
/* <☆>通过DriverManager的getConnection的方法获取连接
* ①获取连接到url-
* url:统一资源定位符--(网址),通过这个可以确定,
* 哪个电脑上的,哪个DBMS软件;在哪个主机号和端口号启动:
*
* url的格式:协议:dbms的名字://主机号:端口号/资源路径
*
* 比如在写这个Tomcat的时候,虚拟路径,以及启动的是;
* Http://localhost:8080:/路径名(hello.html)
* http://localhost:8080/day05_Tomcat/hello.html
*
* DriverManager.getConnection(url, user, password)
*
* */
String url="jdbc:mysql://localhost:3306/bookStore4";
Connection connection = DriverManager.getConnection(url, "root", "123456");
/*
* Connection是一个接口,接口类型的,后面是DriverManager创建的实现类
*
* */
System.out.println(connection);//获取的connection的对象
//com.mysql.jdbc.Connection@4361bd48
System.out.println(connection.getClass());//获取的是运行时类型
//class com.mysql.jdbc.Connection
//3.操作数据库:
/*
* 增加,用的接口是Statement,然后用这个对象去upadate;
* ①创建Statement接口的createStatement 的对象(注意这个接口的包是import java.sql.Statement;)
* Statement st=connection.createStatement();
*
*
* */
Statement st=connection.createStatement();
//去执行这个sql语句
String sql="INSERT INTO lable VALUES(3,'微博')";
int count=st.executeUpdate(sql);
//这里为了验证成功,这个executeUpdate(sql)的方法返回值是一个整数,
//数据库中经过会遇见,添加之后,几行受到影响;这就是哪个数值
System.out.println(count>0?"添加成功":"添加失败");
/*
*
*com.mysql.jdbc.Connection@36aa7bc2
*class com.mysql.jdbc.Connection
*添加成功
*
* */
//4.关闭连接:
st.close(); //关闭这个增删改的对象
connection.close();//关闭连接
}
}
复制代码
评论