关于jdbc重点讲解实例--使用jdbc操作数据库上传附件

来源:互联网 发布:淘宝自动软件是真的吗 编辑:程序博客网 时间:2024/06/05 05:29

关于jdbc章节

Jdbc描述:

访问数据库是通过jdbc,使用jdbc访问mysql需要mysql的驱动。Jdbc定义了java数据库连接,sql语句的执行以及查询结果的遍历等操作,把这些操作定义为接口,在java.sql.jar包下面。

Jdbc连接:

Jdbc访问数据库的一般步骤:注册驱动,获取连接,获取statement,执行sql并返回结果集,遍历结果集显示数据,断开连接。

e.printStackTrance()在命令行打印异常信息在程序中出错的位置及原因。

ExcuteUpdate()方法用于执行insert,update,delete等,返回数据库中影响的行数,返回int类型。excuteQuery()方法用于执行select,返回查询到的结果集,返回resultset类型。

Statement提供getGeneratedKeys()方法以resultset方式返回所有自动生成的键值,遍历该resultset对象便可得到插入行的id。在返回结果集时,会自动关闭上一次查询的结果集。

取一个或多个id值

string[] id=request.getParameterValues("id");

preparedStatement与statement的最大区别是preparedstatement可以使用参数,也就是?号,preparedStatement允许使用不完整的sql语句,空缺的部分使用?袋体 ,直到执行前的时候设置进去。当程序中有大量重复性的sql时,更倾向于使用preparedStatement。

关于批处理sql时,addbatch()批量添加数据到数据库。

ExcuteBatch()批量执行insert语句,返回Int数组。

关于分页:

int pagesize=10;

int recodeCount =DbManager.getCount(sql);封装的方法,返回记录总数

int pagecount=(recodeCount+pagesize-1)/pagesize;总页数

intstartCount=(pagenum-1)*pagesize;当前页开始条数

Resultset对象的列名可以由resultsetmetadata元数据获得,resultset.getmetadata可以返回元数据,便利元数据即可货值resultset中有哪些列,每一列是什么类型。


pagecontext.request.requesturl  el表达式,取得请求的url,但不包括请求之参数字符串,即servlet的http地址。


获取第一列的名称,并对名称进行了中文转换。


Servlet或者jsp只操作javabean或者dao层,而dao层只操作数据库。Eg:外部可以用departmentdao直接操作department对象。

在AB转账过程中,先使用conn.setAutoCommit(false)将自动提交设置俄日false,即执行完该sql语句后不提交,若执行完多条sql语句没有错误,则conn.commit()处理事务,否则,conn.rollback()回滚,sql执行无效。如果抛出了异常,事务也会回滚。

 

上传附件,保存二进制数据





Blob用于存储二进制数据,longblob存储大量二进制数据。

Text存储文本数据,longtext存储大量文本数据。

Fileitem类有一个方法,isFormField()返回是否是纯form的表单,假如没有附件,返回true,有附件,返回true。

Fileitem.getname()方法获取上传附件的名称,在windos系统下返回文件的上传路径,在unix linix系统下返回文件的名称。

Fileitem.getContentType()返回上传的附件类型

fileItem.getSize()返回上传附件的大小

new timestamp(system.currentTimeMillis())返回当前时间


上传附件,展示二进制数据



方法:
PreparedStatement. setBinaryStream(i, inputStream, length);设置二进制数据流
InputStream in  = resultSet.getBinaryStream(String columnLabel);根据列明获取二进制数据流
0 0
原创粉丝点击