JDBC(一)idea连接数据库操作及相关知识点(最大问题:java.beans.Statement无法转换为java.sql.Statement)
JDBC定义:
Java语言访问数据库的一种规范,是一套API
JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。
java程序员只需要面对jdbc就行,其他数据库厂家负责实现JDBC接口的具体方法,优点是解耦合
JDBC a =new Mysql()//多态机制
JDBC b =new SqlYog()
连接操作
第一步:导入jar包:
在导入的jar鼠标右击一下,选择Add as library
第二步:注册驱动:
Class.forName("com.mysql.jdbc.Driver");
第三步:获取连接
mysql通信协议:jdbc:mysql://127.0.0.1:3306/dbtest1",“root”,"123456
Oracle通信协议:
oracl:jdbc:thin:@127.0.0.1:3306/dbtest1
本机地址:localhost或者127.0.0.1
Connection con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbtest1","root","123456");
第四步:获取数据库操作对象
出现问题:
Statement提示有歧义,就是说在idea中提示有java.beans.Statement无法转换为java.sql.Statement.
解决方案:
这种重名的冲突需要写出类的完整路径以示区别
java.sql.Statement st = connection.createStatement();
第五步:执行sql语句
第六步:处理查询结果集
第七步:释放资源(使用完一定要关闭)
package com.www;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class JDBCDemo1 {
public static void main(String[] args) throws Exception{
// 第一步:注册驱动:
Class.forName("com.mysql.jdbc.Driver");
// 第二步:获取连接
Connection con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbtest1","root","123456");
// 第三步:获取数据库操作对象
java.sql.Statement stat = con.createStatement();
// 第四步:执行sql语句
String sql ="SELECT * FROM employees";
ResultSet rs= stat.executeQuery(sql);
// 第五步:处理查询结果集
while(rs.next()){
System.out.println(rs.getInt("employee_id")+"\t"+rs.getString("last_name"));
}
// 第六步:释放资源(使用完一定要关闭)
con.close();
stat.close();
con.close();
}
}
功能解释:
DriverManager
1.DriverManager驱动管理对象:
注册驱动:注册驱动的程序为 static void registerDriver(Driver diver)
代码注册时用:Class.forName(“com.mysql.jdbc.Driver”);
这里的Driver会执行jar包里面Driver的Driver类,从而调用了注册驱动的程序,故不需要通过DriverManager调用registerDrive
,
2.java5之后也可以不写第二步的注册驱动;也可以运行的,因为jar包里service里面配置了相关注册信息。

3.数据库连接:
static Connection getConnection(…)
url:连接路径;
jdbc:mysql://127.0.0.1:3306/dbtest1",“root”,“123456”
dbtest1为自己数据库名称
3306:端口号,一般默认是这个
Connetion
1.获取执行者对象
Statement creatStatement(); //执行sql语句的
2.管理事务:
开启事务:setAtutoCommit(false),参数false为开启事务
提交事务:commit()
回滚事务:rollback()
释放资源:close();
Statement
1.执行DML语句:int execuUpdate(String sql)
int可以返回影响的行数;参数sql:可以执行insert,update,delect语句
2.执行DQL语句:ResultSet executeQuery(String sql);
ResultSet :封装查询结果
sql:执行select语句;
结束要释放资源;
java.sql.Statement stat = con.createStatement();
stat.close();
ResultSet
1.ResultSet 结果集对象
【1】判断结果集中是否还有数据:next()
有数据就返回ture ,并j将索引向下一行
【2】获取结果集数据: getInt(),getString();
【3】:结束要释放资源;
while(rs.next()){
System.out.println(rs.getInt("employee_id")+"\t"+rs.getString("last_name"));
}
更多推荐



所有评论(0)