** JDBC-规范(Java DateBase Connectivity)
JDK 提供,java链接数据库的规范
Oracle mysql
接口:java.sql
1.连接Connection
2.操作数据 Statement
3.结果 ResultSet
1.导jar包 数据库驱动包—JDBC实现类
mysql-connector
ojdbc
2.连接数据库
a.加载驱动类 可能产生的异常:ClassNotFoundException ①类名写错②jar包没导入
com.mysql.jdbc.driver.OracleDriver
oracle.jdbc.driver.OracleDriver
b.获得数据库连接 工具类DriverManager 可能产生异常:SQLException①账号、密码错误 ②url错误【格式错】
oracle:ip port sid username password
mysql:ip port database username password
Connection conn =DriverManager.getConnection(“x”,“y”,“z”);
x:Oracle:jdbc:oracle:thin:@192.168.6.66:1521:orcl
Mysql:mysql://127.0.0.1:3306/test
y:账号
z:密码
3.操作数据库的Statement对象
执行sql语句的3种方法
execute()->DDL DML DQL,通常执行DDL
返回值:Boolean 是否有结果集
executeUpdate()->DML
返回值:int 更新数据行数
executeQuery()->DQL
返回值:ResultSet 结果集:所有查出来的数据都存储在这里
迭代ResultSet的方法
while(rs.next()){
int x=rs.getInt()//获得元素的方法
String x=rs.getString()
ResultSet:
1.最基本的ResultSet,完成查询结果的存储功能,而且只能读取一次,不能来回的滚动读取。
… 加粗样式
批量执行sql语句
PreparedStatement pst = cnt.prepareStatement(sql);
for(int i=10;i<100;i++) {
pst.setString(1, "jack");
pst.setInt(2, i);
pst.setString(3, "123");
pst.addBatch();
}
pst.executeBatch();
分页查询
oracle:
select * from
( select* rownum n from table_1) u
where u.n between 5 and 10
mysql
select *from talble_1 limit startrow ,pageSize;
弊端:数据量越大,效率越低
加入索引