浅入浅出JDBC————1分钟了解JDBC
浅入浅出JDBC————1分钟了解JDBC
一.了解基本的几个jdbc需要的类
1.1DriverManager类
DriverManager类是一个jdbc的驱动服务类。通常使用该类获得一个Connection对象,得到一个数据库的链接。
1.2.Connection类
每一个Coonection的对象都是一个数据库的链接对象,代表了一个物理会话。
1.3. Statement类
执行sql语句的工具接口。
1.4.PreparedStatement类
Statement类的子接口,一个预编译的Statment对象。
1.5.ResultSet类
查询结果集类
二.进行jdbc编程
2.1步骤
1.加载数据库驱动
使用Class类的forName方法来加载数据库链接驱动。
代码实例:
String dirver ="com.mysql.jdbc.Driver";//加载数据库驱动 Class.forName(dirver);
2.获取数据库的链接
通过上面的驱动服务类来获取数据库链接,使用DriverManager类的getConnection()方法来链接,得到一个数据库的物理会话。
getConnection(String url,String user,String pass)方法解析:
该方法返回一个Connection对象,参数中的url是指数据库的url。
mysql的url为:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
代码实例:
String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false"; String user="root"; String password="4399"; conn = DriverManager.getConnection(url,user,password);
3.通过Connection对象创建一个Statement对象。
在这里有三种Statement对象来创建,基本的Statement对象,还有就是预编译的Statement对象prepareStatement和执行存储过程的CallableStatement对象。
分别来看看三种对象的创建方式:
//加载驱动 Class.forName("com.mysql.jdbc.Driver"); //获得一个物理回话 Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399"); //得到一个普通的Statement对象 Statement stat=conn.createStatement(); //得到预编译对象 PreparedStatement pre_stat=conn.prepareStatement("select * form students"); String str="{call pro_getCountById(?, ?, ?)}";//存储过程 //执行存储过程的对象 CallableStatement call_stat = conn.prepareCall(str);
4.使用Statement对象来执行sql语句
三种方法来执行sql语句:
1.execute()可以执行任何sql语句。
2.executeUpdate()执行DML语句和DDL语句,DDL语句返回0,DML语句返回影响行数。
3.executeQuery()只能执行查询语句,返回查询结果集ResultSet。
代码实例:
stat.executeUpdate("drop table if exists tab1");//执行DDL语句 stat.executeUpdate("insert into tabl values (10,'zhansan') ");//执行DML语句 ResultSet res=stat.executeQuery("select * from tab1");//执行DQL
5.操作结果集
理解ResultSet类:(引用)
ResultSet类是一种数据库查询结果存储类,就是当查询数据库的时候,可以将查询的结果放在具体的ResultSet对象中,其实我们把这种存储查询结果的ResultSet对象叫做ResultSet结果集。比如我们用aaa表示一个ResultSet对象。
那么查询的结果无非就是一些符合查询条件的记录集,ResultSet结果集有一个索引指针,最初这个指针是指向第一条记录的前一个位置,也就是没有指向任何内容,使用aaa.next()方法就会使指针往后移动指向下一个记录,所以一定要先执行一次next()函数才会让指针指向第一条记录。
操作结果集就是移动指针的过程。
6.回收数据库资源
需要关闭的资源:ResultSet、Statement、Connection。