JDBC
1. jdbc是什么
jdbc是一套由sun公司指定的接口,是一套规范,大家都要遵守。
jdbc(java database connectivity,Java语言连接数据库),顾名思义,就是用Java语言连接数据库,来获取底层数据(数据库中的数据)的操作。
2. jdbc的本质
jdbc实质是一个接口,接口其实就是一种协议,一种抽象的协议,调用者和实现者都要遵守,如果不制定一套接口规范,就得写多套java程序,因为数据库有MySQL,Oracle,,,,每个数据库都有自己的原理,所以sun公司制定了jdbc接口,大家都遵守这一套接口。
3. IDEA里导入对应数据库的驱动jar包
虽然不用写多套连接数据库的Java代码,但是也要到各大公司的官网去下载驱动jar包,sun公司没有提供驱动。jar包里有很多.class文件,必须要导入到IDE里。
注意:没有驱动的时候,可以编译,不可以运行。到相应的官网上下载对应的驱动,并配置到环境变量classpath中,不要忘记在最开始写. ; (. 和 ; 都要用英文符号)。以上是文本编辑器开发的配置方式,IDEA中有它自己的配置方式。
将驱动导入IDEA步骤:
4. jdbc编程六步
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取链接(表示JVM进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后,一定要关闭)
第三步:获取数据库操作对象(专门执行SQL语句的对象)
第四步:执行SQL语句(DQL , DML,)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有第五步处理查询结果集)
第六步:释放资源(使用完资源之后一定要进行关闭资源,java和数据库属于进程间的通信,开启之后一定要关闭)
import java.sql.*;
public class firstJDBC {
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
//1.注册驱动
//com.mysql.cj.jdbc.Driver是新的类驱动,原来是com.mysql.jdbc.Driver
//加载驱动只需要类加载的动作,因为registerDriver是静态方法,静态方法在类加载的时候就执行了,没必要去new一个Driver对象
// Driver driver = new com.mysql.jdbc.Driver();
// DriverManager.registerDriver(driver);
/*url:统一资源定位符(网络某个资源的绝对路径)
url包括哪几部分
协议
IP
PORT
资源名
jdbc:mysql://localhost:3306/homework
jdbc:mysql:// 协议
localhost 本机IP(localhost和127.0.0.1都是本机IP)
3306 mysql默认端口号
/homework 要连接的资源名(数据库名称)
*/
// String url = "jdbc:mysql://localhost:3306/homework";
// String user = "root";
// String password = "20281235liyifeng";
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/homework","root","20281235liyifeng");
//3.获取数据库连接对象
st = conn.createStatement();
String sql = "select * from user";
//5.执行sql语句
rs = st.executeQuery(sql);
while (rs.next()){
String username = rs.getString("username");
String password1 = rs.getString("password");
System.out.println(username + "," + password1);
}
//验证是否成功连接数据库
//System.out.println(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {//释放资源
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
注意:一定要进行资源释放,不然会造成资源浪费。
在写JDBC的时候将password改成你自己的root账户的密码即可。