仓酷云
标题:
JAVA编程:在java使用程序中显现数据库的blob图象...
[打印本页]
作者:
乐观
时间:
2015-1-18 11:54
标题:
JAVA编程:在java使用程序中显现数据库的blob图象...
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,程序|数据|数据库|显现道理:
<1>从数据库中读取blob到Blob对象.Blobblob=rs.getBlob(2);
<2>把blob传给Stream.
<3>用Stream参数创立Image对象
<4>显现Image对象.
申明:这只是例子,没有思索其他方面.但愿人人能对java毗连数据库,和取对象有个详细的懂得.
关于数据库的sql
CREATETABLEphoto(
photo_noint(6)unsignedNOTNULLauto_increment,
imageblob,
PRIMARYKEY(`photo_no`)
)
本例子用到两个文件:
DrawPanel.java以下
importjava.awt.*;
importjava.sql.*;
importjava.awt.image.*;
importjava.io.*;
importjavax.swing.*;
/**
*<p>Title:</p>
*
*<p>Description:vincentlaw@163.com</p>
*
*<p>Copyright:Copyright(c)2005</p>
*
*<p>Vincent</p>
*
*@authorvincent
*@version1.0
*/
publicclassDrawPanelextendsPanel{
Imageim;
Insetsinsets;
publicDrawPanel(){
im=Toolkit.getDefaultToolkit().getImage("c:1.jpg");//默许的文件
try{
jbInit();
}catch(Exceptionex){
ex.printStackTrace();
}
}
publicvoidaddNotify(){
super.addNotify();
insets=getInsets();
setBounds(100,100,217+insets.left,321+insets.top);
}
publicvoidpaint(Graphicsg){
g.drawImage(im,insets.left,insets.top,this);
}
privatevoidjbInit()throwsException{
}
publicvoidchangeImage(StringfileName)
{
try{
//Class.forName("oracle.jdbc.driver.OracleDriver");
//Connectionconn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl2","user","password");
Class.forName("com.mysql.jdbc.Driver");
Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/job?user=root&password=5672831");
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery("selectphoto_no,photo_imagefromphoto");
rs.next();
Blobblob=rs.getBlob(2);
//数据库毗连
InputStreamfin=blob.getBinaryStream();
im=javax.imageio.ImageIO.read(fin);
rs.close();
stmt.close();
conn.close();
}
catch(Exceptione)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,"毛病,装载当地文件");
im=Toolkit.getDefaultToolkit().getImage(fileName);
}
this.repaint();
}
}
ShowImage.java以下:
importjava.awt.BorderLayout;
importjava.awt.*;
importjavax.swing.*;
importjavax.swing.JToggleButton;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
/**
*<p>Title:</p>
*
*<p>Description:vincentlaw@163.com</p>
*
*<p>Copyright:Copyright(c)2005</p>
*
*<p>Vincent</p>
*
*@authorvincent
*@version1.0
*/
publicclassShowImageextendsJFrame{
BorderLayoutborderLayout1=newBorderLayout();
JToggleButtonjToggleButton1=newJToggleButton();
DrawPanelpanel=newDrawPanel();
publicShowImage(){
try{
jbInit();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
privatevoidjbInit()throwsException{
getContentPane().setLayout(borderLayout1);
jToggleButton1.setText("jToggleButton1");
jToggleButton1.addActionListener(new
ShowImage_jToggleButton1_actionAdapter(this));
this.getContentPane().add(jToggleButton1,java.awt.BorderLayout.NORTH);
this.getContentPane().add(panel,java.awt.BorderLayout.CENTER);
}
publicvoidjToggleButton1_actionPerformed(ActionEvente){
panel.changeImage("E:photohoto1281.jpg");//备用图象文件
}
publicfinalstaticvoidmain(String[]args){
JFrameframe=newShowImage();
frame.setSize(800,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
classShowImage_jToggleButton1_actionAdapterimplementsActionListener{
privateShowImageadaptee;
ShowImage_jToggleButton1_actionAdapter(ShowImageadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jToggleButton1_actionPerformed(e);
}
}
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
作者:
仓酷云
时间:
2015-1-21 16:55
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
莫相离
时间:
2015-1-30 21:21
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者:
金色的骷髅
时间:
2015-1-31 07:40
是一种使网页(Web Page)产生生动活泼画面的语言
作者:
谁可相欹
时间:
2015-2-6 18:26
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者:
兰色精灵
时间:
2015-2-7 12:51
是一种语言,用以产生「小应用程序(Applet(s))
作者:
小妖女
时间:
2015-2-11 03:10
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者:
再见西城
时间:
2015-3-1 20:11
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
简单生活
时间:
2015-3-4 08:45
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
活着的死人
时间:
2015-3-11 18:04
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
再现理想
时间:
2015-3-12 23:52
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
admin
时间:
2015-3-20 00:53
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者:
若相依
时间:
2015-3-22 19:11
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
不帅
时间:
2015-3-27 12:08
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
第二个灵魂
时间:
2015-4-1 16:16
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
愤怒的大鸟
时间:
2015-4-9 13:36
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
灵魂腐蚀
时间:
2015-4-18 11:36
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
分手快乐
时间:
2015-4-28 02:18
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
精灵巫婆
时间:
2015-5-1 13:12
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
透明
时间:
2015-5-8 02:34
是一种使用者不需花费很多时间学习的语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2