/*
JDBC编程六步:
1、注册驱动
2、获取数据库连接
3、获取数据库操作对象
4、执行SQL语句
5、处理查询结果集
6、关闭资源
一、编写JDBC程序连接数据库的话,需要先将连接数据库的驱动jar包配置到环境变量classpath当中:
classpath=.;jar包的路径
二、JDBC接口的源码在哪里?JDBC接口的字节码在哪里?JDBC接口的帮助文档在哪里?
api源码:SUN公司负责编写JDBC接口这套规范,JAVA_HOME/src.zip(java.sql.*)
api字节码:JRE_HOME/lib/rt.jar
api帮助文档:JDK的帮助文档
三、JDBC接口的MySQL实现类源码在哪里?JDBC接口的MySQL实现类的字节码在哪里?
四、JDBC接口的调用程序我们负责来进行开发(我们 ---> JDBC接口 ---> 接口实现类(驱动))
*/
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
public class Test1
{
public static void main(String[] args){
/*
Object obj = new Object();
System.out.println(obj); //java.lang.Object@15db9742
*/
Connection conn = null;
Statement stmt = null;
try{
//1、注册驱动
//注册驱动这一步完成表示通知了java程序,我们即将连接的是哪个品牌的数据库
//1.1、创建驱动对象(MySQL的核心驱动类的完整类名:com.mysql.jdbc.Driver)
Driver driver = new com.mysql.jdbc.Driver();
//1.2、注册驱动
DriverManager.registerDriver(driver);
//2、获取数据库连接
//数据库连接建立之后表示JVM进程和数据库进程之间通道打开了,两个进程之间进行通讯,比较耗费资源
//所以数据库连接对象使用完毕之后一定要关闭。
//MySQL和Oracle默认支持的连接数量不同
//MySQL的连接数量默认支持:my.ini文件(max_connections=100)
//Oracle的连接数量默认支持:150
/*
url: 统一资源定位符
Union Resources Location(定位网络当中的某个具体存在的资源)
url主要包括:协议+IP+端口+资源名称
这就是一个URL:http://119.75.213.61:80/index.html
http:// 协议
119.75.213.61 IP地址
80 端口号(代表的是计算机当中的某个应用/进程/服务)
index.html 资源名称
连接MySQL数据库的URL:
jdbc:mysql://IP:port/数据库名
jdbc:mysql://localhost:3306/bjpowernode
Oracle数据库的URL:
jdbc:oracle:thin:@localhost:1521:bjpowernode
IP地址:本机IP地址是(localhost / 127.0.0.1)
*/
String url = "jdbc:mysql://localhost:3366/bjpowernode";
String user = "root";
String password = "123";
conn = DriverManager.getConnection(url,user,password);
//Connection conn = new com.mysql.jdbc.JDBC4Connection(); //多态
//com.mysql.jdbc.JDBC4Connection@41cf53f9
//类名:com.mysql.jdbc.JDBC4Connection
//System.out.println(conn.toString());
//3、获取数据库操作对象
//获取数据库操作对象的目的是为了通过该对象去执行SQL语句
stmt = conn.createStatement();
System.out.println(stmt); //com.mysql.jdbc.StatementImpl@41cf53f9
//可以通过一个连接对象创建多个数据库操作对象
//Statement stmt2 = conn.createStatement();
//System.out.println(stmt2);
//4、执行SQL语句
//注意:JDBC中的SQL语句不需要提供分号结尾
//String sql = "insert into dept(deptno,dname,loc) values(50,'销售部','北京')";
//String sql = "update dept set dname='人事部',loc='天津' where deptno=50";
String sql = "delete from dept where deptno = 50";
int count = stmt.executeUpdate(sql); //返回值是int类型,返回的是此SQL语句的执行影响了数据库表当中几条记录。
System.out.println(count);
//5、处理查询结果集
//当前例子不能处理查询结果集,因为以上的语句都是DML语句,没有DQL。
}catch(SQLException e){
e.printStackTrace();
}finally{
//6、关闭资源
if(stmt != null){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(conn != null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}