JDBC还为我们提供了一些元数据,那么元数据是什么呢?
元数据:用来描述数据的含义的一些信息。
主要有:
1.DatabaseMetaData 表述数据库连接的元数据。
//获得 Connection con;
eg: DatabaseMetaData d=con.getMetaData();
2.ResultSetMetaData 表示结果集的元数据。
rs=(Statement) st.executeQuery(sql); //获得ResultSet
ResultSetMetaData r=rs.getMetaData(); //获得结果集列
结果集的一些函数:
1.getColumName(i); //获得列名
2.getColumLaber(i); //获得列别名
3.getColumType(i); //列所对应的数据类型所对应的数字
4.getColumTypeName(i); //列所对应的数据类型
5.getColumCount(); //获得结果集的列数
JDBC中的大数据 Blob
用来将大的数据写入数据库,例如图片等。
思路:以流的方式进行读写。
主要代码:
//1.使用Connection.createBlob()创建一个blob对象。
Blob blob=con.createBlob();
//2.获得这个Blob对象的输出流。
OutputStream os=blob.setBinaryStream();//设置成二进制
//3.向流中写入字节
FileInputSteam fis=new FileInputStream("D:java/a.txt");
byte[] b=new byte[10]; //设计缓冲器
int size=-1;
while((size=(fis.read(b))!=-1){
os.write(bs,0,size);
}
fis.close();
os.close();
//4.通过setBlob()函数将二进制写入数据库中
ps.setBlob(1,blob); // ps为PreparedStatement类型
数据库主键的获得
思路:通过一个重载的PreparedStatement(sql,int)方法来设置是否返回由数据库生成的主键,通过调用getGeneratedKeys()来获得包含主键的结果。
eg:
ResultSet keys=ps.getGeneratedKeys();
keys.next();
int key=keys.getInt(key);