Java 存取图片到Sybase image 字段 的问题

pufeng_999 2003-10-24 05:13:08
为什么我只能存取32K的数据,大于32K的数据就不行
建表是这样建的 create table (len int ,data image )
java 代码如下,请指教
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="jbsybtest.DBBean"%>
<%@ page import="jbsybtest.QueryBean"%>
<%@ page import="java.io.*"%>
<%
String getType = "";
System.out.println(pageContext.getRequest().getParameter("Type"));
if (pageContext.getRequest().getParameter("Type")!=null)
{
getType = pageContext.getRequest().getParameter("Type").toString();

if (getType.equals("insert")){
//file size = 69576 这是我指定的一个文件,为了方便
java.io.File file = new java.io.File("C:\\1.jpg");

java.io.FileInputStream fis = new java.io.FileInputStream(file);
System.out.println((int) file.length());

int l = (int) file.length();
Integer intLen = new Integer(l);


ResultSet result = null;
String mSql = null;
PreparedStatement prestmt = null;

DBBean DBLink = new DBBean();
DBLink.openDBConnect();
mSql = "insert into ss (id ,data) values (?,?)";
prestmt = DBLink.getConn().prepareStatement(mSql);
prestmt.setInt(1,1);
prestmt.setBinaryStream (2, fis , l );

DBLink.setAutoCommit(true);
prestmt.executeUpdate();
DBLink.getConn().commit();
} else {
int bytesum=0;
int byteread=0;
ResultSet result=null;
String Sql=null;
PreparedStatement prestmt=null;
DBBean DBLink = new DBBean();
DBLink.openDBConnect();

Sql="select * from dd";
result=DBLink.executeQuery(Sql);
result.next();

java.io.InputStream inStream=result.getBinaryStream("filedata");
java.io.FileOutputStream fs=new java.io.FileOutputStream("c:\\xx.jpg");

byte[] b = new byte[69576];//file size
int i = 0;
final int unitlen = 16384;
int cbread;
int l = b.length;
for ( i =0;i < l; i+=unitLen){
if (l - i < cbread) {
cbread = inStream.read(b,i,l-i);
}else{
cbread = inStream.read(b,i,unitLen);
}
System.out.println(cbread);
}

fs.write(b);
fs.close();
}}

%>
...全文
173 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pufeng_999 2003-10-24
  • 打赏
  • 举报
回复
哦,数据库名打错了,都是表ss
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)中的应用,通过Matlab代码实现了对水下机器人的动力学建模与运动控制。重点探讨了将强化学习算法QLearning与传统PID控制相结合的方法,以提升AUV在复杂、时变及非线性水下环境中的自适应控制能力。文中系统分析了AUV的运动学与动力学特性,阐述了传统PID参数整定面临的挑战,并提出采用QLearning算法在线动态优化PID控制器的比例、积分和微分参数,从而实现对系统误差、响应速度、超调量等性能指标的综合优化。通过Matlab仿真实验验证了该复合控制策略在轨迹跟踪精度、抗外部干扰能力和系统鲁棒性方面的显著优势,充分展示了强化学习在智能水下装备自主控制领域的可行性和应用潜力。; 适合人群:具备自动控制理论基础、强化学习基础知识及Matlab编程能力的研究生、科研人员和自动化、海洋工程、机器人等相关领域的技术研发人员。; 使用场景及目标:①用于水下机器人、无人潜航器等智能移动装备的高精度运动控制系统设计与开发;②开展强化学习与经典控制理论融合创新的教学案例与科学研究;③解决传统固定参数PID控制器在面对模型不确定性和环境扰动时适应性差、控制性能下降的关键问题。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点关注QLearning算法中状态空间、动作空间的设计逻辑以及奖励函数的构建原则,深入理解其在参数寻优过程中的作用机制,并可通过调整环境参数和初始条件来测试算法的鲁棒性与泛化能力。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧