JDBC概述
JDBC(Java Database Connectivity )是java语言操作数据库的API(应用程序接口),它在java.sql.*包下。要在你的IDE中导入相关的数据库jar包,我用的是MySQL数据库和idea编译器,导入的是这个https://pan.baidu.com/s/1u793mqxk_U2FwzsiDa27gAjar包
常用的接口
Connection 连接 代表了java和数据之间的通道,桥梁
Statement 语句 可以用来执行 insert, update, delete , select ...
ResultSet 结果集 代表的是查询的结果
常用的类
DriverManager 工具类,获取连接对象
SQLException 异常对象 是 Exception的子类型,属于检查异常
操作步骤顺序
1、加载驱动 (Driver) jdbc的驱动就是一个连接工厂,生成的产品是连接对象
- com.mysql.jdbc.Driver 是Driver的mysql实现类
- oracle.jdbc.Driver 是Driver的oracle实现类
格式: Class.forName("驱动类名");
例如:Class.forName("com.mysql.jdbc.Driver");// jdbc 3.0 以上版本都可以省略加载驱动这一步
2、获取连接对象
- DriverManager.getConnection(url, 用户名, 密码); // 内部调用了 Driver 对象获取数据库连接,其中url的格式:jdbc:mysql://ip地址:端口号/数据库名?参数
例如:mysql数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");3、创建语句对象
- Statement stmt = conn.createStatement();
4、执行sql
- int rows = stmt.executeUpdate(String sql); // 用来执行 insert , update, delete , DDL , 返回值代表影响行数
- ResultSet rs = stmt.executeQuery(String sql); // 用来执行 select
- boolean moreRows = rs.next() //取得下一条记录, moreRows 是true ,表示有下一条记录, false 表示没有了
5、释放资源( 先打开的资源后关闭 )
上述的第三步和第四步可以用另一个语法创建对象也就是用PreparedStatement (预编译语句)创建对象,它与Statement创建对象不同,它是把sql语句在创建对象是就放入的,也可以用“?”符号来对SQL语句进行占位,并给这个位置赋值,如下:
1.、需要预先提供sql语句
- PreparedStatement psmt = conn.prepareStatement(String sql);
2、可以在sql中用?占位某个值
- 如:String sql ="insert into student(sid,sname,birthday,sex) values(null, ?, ?, ?)" ;
- PreparedStatement psmt = conn.prepareStatement(sql);
3、给?赋值,使用PreparedStatement中一系列以 set开头的方法(位置1开始),有很多例举几个常用,如下
- setString(?的位置, 值)//给类型为String类型的变量赋值,从位置1开始
- setInt(?的位置, 值)//给类型为Int类型的变量赋值,从位置1开始
- setDate(?的位置, 值)//给类型为Date类型的变量赋值,从位置1开始
4、执行sql
- int rows = psmt.executeUpdate();//用来执行 insert , update, delete , DDL , 返回值代表影响行数
- ResultSet rs = psmt.executeQuery();//用来执行 select
- boolean moreRows = rs.next() //取得下一条记录, moreRows 是true ,表示有下一条记录, false 表示没有了
代码演示
