JDBC学习(三)
来源:互联网 发布:病态函数 知乎 编辑:程序博客网 时间:2024/04/29 16:27
JDBC学习(三)
在知道怎么完成与Mysql数据库链接操作和提交SQL到Mysql数据库以后,还需要知道怎么从Mysql数据库获取信息。
接口 ResultSet
ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
SQL返回的表格信息按列表的形式被封装在ResultSet中。通过遍历可以将其获取。
//通过遍历ResultSet对象,获取表格信息。
public class Demo1 {
private static List<Book> listBook3()throws Exception{
List<Book> booklist = new ArrayList<Book>();
Connection con = DbUtil.getConnection();
System.out.println("获取链接成功....");
String sql="select *from t_book";
PreparedStatement pre = con.prepareStatement(sql);
System.out.println("获取SQL预编译对象成功.....");
ResultSet rs = pre.executeQuery();
System.out.println("获取数据库表ResultSet接口对象成功.....");
System.out.println("开始遍历....");
while(rs.next()){
int id = rs.getInt("id");
String bookName = rs.getString("bookName");
float price = rs.getFloat("price");
String author = rs.getString("author");
int bookType = rs.getInt("bookTypeId");
Book book = new Book(id, bookName, price, author, bookType);
booklist.add(book);
}
System.out.println("开始成功....");
DbUtil.colse(rs,pre, con);
return booklist;
}
public static void main(String[] args)throws Exception{
//lsitBook();
List<Book> bookList = listBook3();
for(Book book :bookList){
System.out.println(book);
}
}
}
接口 CallableStatement
用于执行 SQL 存储过程的接口。JDBC API提供了一个存储过程 SQL转义语法,该语法允许对所有 RDBMS使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为OUT 参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是1。
{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
{call <procedure-name>[(<arg1>,<arg2>, ...)]}
IN 参数值是使用继承自 PreparedStatement 的 set 方法设置的。在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法获取的。
CallableStatement 可以返回一个 ResultSet 对象或多个 ResultSet 对象。多个 ResultSet 对象是使用继承自Statement 的操作处理的。
为了获得最大的可移植性,某一调用的 ResultSet 对象和更新计数应该在获得输出参数的值之前处理
//通过CallableStatement对象,获取表格具体某项数据
public class Demo1 {
private static String getBookName(int id)throws Exception{
Connection con = DbUtil.getConnection();
String sql="{CALL pro_getBookNameById(?,?)}";
CallableStatement catemt = con.prepareCall(sql);
catemt.setInt(1, id);
catemt.registerOutParameter(2, Types.VARCHAR);
catemt.execute();
String bookName = catemt.getString("bN");
DbUtil.colse(catemt, con);
return bookName;
}
public static void main(String[] args)throws Exception {
System.out.println("图书名字:" +getBookName(4));
}
}
- JDBC学习(三)
- JDBC学习(三)
- Java JDBC学习实战(三): 事务管理
- ES学习(三)使用JDBC importer
- JDBC学习笔记(三)
- jdbc学习笔记(三) --引用
- JDBC学习之三Batch
- JDBC检索数据(数据库学习之三)
- JDBC--学习笔记(三)数据源与连接池
- Java学习笔记(三)—— JDBC封装
- JDBC 概述(三)
- JDBC 概述(三)
- JDBC 概述(三)
- JDBC 概述(三)
- JDBC基础(三)
- jdbc详解(三)
- jdbc详解(三)
- JDBC(三)
- 构建一个资源类型的php扩展(二)
- eclipse birt报表开发入门
- Android动态分析工具Inspeckage
- heightcharts报表点击事件
- java 平面上在一条直线上最多的点数
- JDBC学习(三)
- 关于ExpandListView实现列表搜索
- TCP/IP协议三次握手
- 微信网页第三方登录原理
- 设置输入框限制长度兼容IE8 maxlength
- Pair RDD
- 编写一个程序,对用户输入的任意一组数字字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现
- Pixhawk——mc_att_control(姿态控制)
- 欢迎使用CSDN-markdown编辑器