如何在Java程序中选择添加图片,再存到数据库中
想要做的是一个比较小的程序,想要在一个java程序中有一项功能是添加图片,之后再存到数据库的相应的表中。比如:有Student这张表,表中有(name,photo)。那我...
想要做的是一个比较小的程序,想要在一个java程序中有一项功能是添加图片,之后再存到数据库的相应的表中。
比如:有Student这张表,表中有(name,photo)。那我在程序中要添加photo这一项。该如何实现?
JLabel jLabel1 = new JLabel();
JTextField sName = new JTextField(15);
;;;
jLabel1.setText("学生姓名:");
jLabel1.setFont(new Font("Dialog",0,12));
girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 0;
girdBagCon.gridy = 0;
girdBagCon.insets = new Insets(10,10,10,1);
girdBag.setConstraints(jLabel1,girdBagCon);
centerPanel.add(jLabel1);
girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 1;
girdBagCon.gridy = 0;
girdBagCon.fill = girdBagCon.BOTH;
girdBagCon.insets = new Insets(10,1,10,10);
girdBag.setConstraints(sName,girdBagCon);
centerPanel.add(sName);
就是类似于向上面name的这种形式,会出现一个框。
而photo就是要选择并上传,同时添加到数据库中的。
不知该如何实现。。。
希望能够有相应的代码,能够操作的。。我是初学java的,不太懂。。。 展开
比如:有Student这张表,表中有(name,photo)。那我在程序中要添加photo这一项。该如何实现?
JLabel jLabel1 = new JLabel();
JTextField sName = new JTextField(15);
;;;
jLabel1.setText("学生姓名:");
jLabel1.setFont(new Font("Dialog",0,12));
girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 0;
girdBagCon.gridy = 0;
girdBagCon.insets = new Insets(10,10,10,1);
girdBag.setConstraints(jLabel1,girdBagCon);
centerPanel.add(jLabel1);
girdBagCon = new GridBagConstraints();
girdBagCon.gridx = 1;
girdBagCon.gridy = 0;
girdBagCon.fill = girdBagCon.BOTH;
girdBagCon.insets = new Insets(10,1,10,10);
girdBag.setConstraints(sName,girdBagCon);
centerPanel.add(sName);
就是类似于向上面name的这种形式,会出现一个框。
而photo就是要选择并上传,同时添加到数据库中的。
不知该如何实现。。。
希望能够有相应的代码,能够操作的。。我是初学java的,不太懂。。。 展开
1个回答
展开全部
存储图片:
//加载驱动程序类
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
Statement stmt=con.createStatement(); //建立Statement对象
FileInputStream str=new FileInputStream(filename); //图片文件路径
String sql="insert into picturenews(id,image) values(?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,id); //ID号
pstmt.setBinaryStream(2,str,str.available()); //图片数据
pstmt.execute();
//将数据存入数据库
out.println("Success,You Have Insert an Image Successfully");
图片读取:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
Statement stmt=con.createStatement();
ResultSet rs=null;
String sql = "select image from picturenews WHERE id="+id;
rs=stmt.executeQuery(sql);
if(rs.next()) {
//图片输出的输出流
InputStream in = rs.getBinaryStream("image");
byte b[] = new byte[0x7a120];
for(int i = in.read(b); i != -1;)
{
//将缓冲区的输入输出到页面
in.read(b);
}
}
/**
* 获得数据后可以按照自己的方法进行处理或者显示
*/
JLabel label=new JLabel(new ImageIcon(b)); //用JLabel进行显示
.....
//加载驱动程序类
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
Statement stmt=con.createStatement(); //建立Statement对象
FileInputStream str=new FileInputStream(filename); //图片文件路径
String sql="insert into picturenews(id,image) values(?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,id); //ID号
pstmt.setBinaryStream(2,str,str.available()); //图片数据
pstmt.execute();
//将数据存入数据库
out.println("Success,You Have Insert an Image Successfully");
图片读取:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
Statement stmt=con.createStatement();
ResultSet rs=null;
String sql = "select image from picturenews WHERE id="+id;
rs=stmt.executeQuery(sql);
if(rs.next()) {
//图片输出的输出流
InputStream in = rs.getBinaryStream("image");
byte b[] = new byte[0x7a120];
for(int i = in.read(b); i != -1;)
{
//将缓冲区的输入输出到页面
in.read(b);
}
}
/**
* 获得数据后可以按照自己的方法进行处理或者显示
*/
JLabel label=new JLabel(new ImageIcon(b)); //用JLabel进行显示
.....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询