java html读取数据库,用Java实现HTML文件代替数据库存储数据

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.*;

import java.io.*;

import javax.swing.*;publicclassfilework extends JFrame implements ActionListener {

JPanel p;

JButton b0,b1,b2;

JTable tab;

Object my[][]=newObject[50][3];inta[]=newint[50];intb[]=newint[50];intj=0,rows=0;intk=0,shu=0;

String name,age;

String title[]={"姓名","年龄","身高"};

BufferedReaderin;inti=0;publicfilework() {

super("数据轮回");this.setSize(300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

p=newJPanel();

tab=newJTable(my, title);

b0=newJButton("添加");

b1=newJButton("打开");

b2=newJButton("保存");

b1.addActionListener(this);

b2.addActionListener(this);

b0.addActionListener(this);

p.add(b0);

p.add(b1);

p.add(b2);this.getContentPane().add(newJScrollPane(tab),"Center");this.getContentPane().add(p,"South");this.setVisible(true);

}publicvoidfileopen() {try{

JFileChooser choose=newJFileChooser(".");intsis=choose.showOpenDialog(this);

String name=choose.getSelectedFile()+"";if(sis==JFileChooser.APPROVE_OPTION){in=newBufferedReader(newFileReader(name));

String over=null;

String line;while((line=in.readLine())!=null){

over=over+line;

}for(inti=0;i

a[i]=over.indexOf("

")+4;

b[i]=over.indexOf("

");

my[rows][k]=over.substring(a[i],b[i]);

over=over.substring(b[i]+4,over.length());

k=k+1;if(k==3){k=0;rows=rows+1;}

}

}

}catch(Exception ie){}

}publicstaticvoidmain(String[] args) {

filework filework=newfilework();

}publicvoidactionPerformed(ActionEvent e) {if(e.getSource()==b1) {

fileopen();

}if(e.getSource()==b2) {

JFileChooser save=newJFileChooser(".");intresult=save.showSaveDialog(null);

String s1=save.getSelectedFile()+"";if(result==JFileChooser.APPROVE_OPTION){try{

OutputStreamWriterout=newOutputStreamWriter(newFileOutputStream(s1));

String s2="

";

s2=s2+"

s2=s2+"

";

s2=s2+"

"+"姓名"+"";

s2=s2+"

"+"年龄"+"";

s2=s2+"

"+"身高"+"";

s2=s2+"

";for(intshu=0;shu

{

s2=s2+"

";

s2=s2+"

"+my[shu][0].toString().trim()+"";

s2=s2+"

"+my[shu][1].toString().trim()+"";

s2=s2+"

"+my[shu][2].toString().trim()+"";

s2=s2+"

";

}

s2=s2+"

";out.write(s2);out.close();for(inti1=0;i1<50;i1++){

my[i1][0]="";

my[i1][1]="";

my[i1][2]="";

}

rows=0;this.repaint();

JOptionPane.showMessageDialog(null,"保存数据成功!","information",JOptionPane.QUESTION_MESSAGE);

}catch(Exception ex1) {

}

}

}if(e.getSource()==b0){

JTextField message[]=newJTextField[6];

message[0]=newJTextField("请输入姓名:");

message[0].setEditable(false);

message[1]=newJTextField();

message[2]=newJTextField("请输入年龄:");

message[2].setEditable(false);

message[3]=newJTextField();

message[4]=newJTextField("请输入身高:");

message[4].setEditable(false);

message[5]=newJTextField();

String str[]={"确认","取消"};intgo=JOptionPane.showOptionDialog(null, message,"添加用户",

JOptionPane.YES_OPTION, JOptionPane.INFORMATION_MESSAGE,null, str, str[0]);if(go==0){if(message[1].getText().equals("")&&message[3].getText().equals("")&&message[5].getText().equals("")){

JOptionPane.showMessageDialog(null,"数据不能为空","ERROR",JOptionPane.ERROR_MESSAGE);}else{

my[rows][0]=message[1].getText();

my[rows][1]=message[3].getText();

my[rows][2]=message[5].getText();this.repaint();rows=rows+1;}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤实现: 1. 使用Java读取本地图片,可以使用如下代码: ```java File file = new File("path/to/image/file"); byte[] imageData = Files.readAllBytes(file.toPath()); ``` 2. 将读取的图片数据存储数据库中,可以使用如下代码: ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password"); PreparedStatement stmt = conn.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)"); stmt.setString(1, "image_name"); stmt.setBytes(2, imageData); stmt.executeUpdate(); ``` 在上面的代码中,`images`是数据库存储图片的表名,`name`和`data`分别是存储图片名称和数据的列名,`image_name`是图片的名称。 3. 在HTML网页中显示图片,可以使用以下代码: ```html <img src="data:image/png;base64,base64_encoded_image_data" alt="image_name"> ``` 其中,`base64_encoded_image_data`是从数据库读取出来的图片数据进行Base64编码后的字符串,可以使用如下代码进行编码: ```java String base64ImageData = Base64.getEncoder().encodeToString(imageData); ``` 完整的代码示例如下: ```java import java.io.File; import java.nio.file.Files; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Base64; public class ImageDemo { public static void main(String[] args) throws Exception { // 读取图片数据 File file = new File("path/to/image/file"); byte[] imageData = Files.readAllBytes(file.toPath()); // 存储图片数据数据库 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password"); PreparedStatement stmt = conn.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)"); stmt.setString(1, "image_name"); stmt.setBytes(2, imageData); stmt.executeUpdate(); // 从数据库读取图片数据并进行Base64编码 stmt = conn.prepareStatement("SELECT data FROM images WHERE name = ?"); stmt.setString(1, "image_name"); ResultSet rs = stmt.executeQuery(); if (rs.next()) { byte[] imageDataFromDb = rs.getBytes("data"); String base64ImageData = Base64.getEncoder().encodeToString(imageDataFromDb); System.out.println("<img src=\"data:image/png;base64," + base64ImageData + "\" alt=\"image_name\">"); } rs.close(); stmt.close(); conn.close(); } } ``` 在上面的代码示例中,`images`表需要提前创建好,可以使用如下SQL语句创建: ```sql CREATE TABLE images ( name VARCHAR(255) PRIMARY KEY, data LONGBLOB NOT NULL ); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值