麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Java實現Excel導入數據庫,數據庫中的數據導入到Excel

2019-11-14 15:09:40
字體:
來源:轉載
供稿:網友

實現的功能:

 

1、添加jxl.jar MySQL-connector-java.1.7-bin.jar包到項目的lib目錄下­

2、Excel文件目錄:D://book.xls

3、數據庫名:javenforexcel

4、表名:stu

5、編寫類:連接mysql的字符串方法、插入的方法、實體類­­

表結構如下 :

 

 

 

連接數據庫的工具類

復制代碼
package com.javen.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PReparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBhepler {    /*String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";    String url = "jdbc:sqlserver://127.0.0.1;DatabaseName=javenforexcel";*/        String driver = "com.mysql.jdbc.Driver";    String url = "jdbc:mysql://127.0.0.1:3306/javenforexcel";            Connection con = null;    ResultSet res = null;    public void DataBase() {            try {                Class.forName(driver);                con = DriverManager.getConnection(url, "root", "root");            } catch (ClassNotFoundException e) {                // TODO Auto-generated catch block                  System.err.println("裝載 JDBC/ODBC 驅動程序失敗。" );                  e.printStackTrace();            } catch (SQLException e) {                // TODO Auto-generated catch block                System.err.println("無法連接數據庫" );                 e.printStackTrace();            }    }    // 查詢    public ResultSet  Search(String sql, String str[]) {        DataBase();        try {            PreparedStatement pst =con.prepareStatement(sql);            if (str != null) {                for (int i = 0; i < str.length; i++) {                    pst.setString(i + 1, str[i]);                }            }            res = pst.executeQuery();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return res;    }    // 增刪修改    public int AddU(String sql, String str[]) {        int a = 0;        DataBase();        try {            PreparedStatement pst = con.prepareStatement(sql);            if (str != null) {                for (int i = 0; i < str.length; i++) {                    pst.setString(i + 1, str[i]);                }            }            a = pst.executeUpdate();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return a;    }}
復制代碼

 

表的實體如下

復制代碼
package com.javen.entity;/** * @author Javen * @Email zyw205@Gmail.com *  */public class StuEntity {    private int id;    private String name;    private String sex;    private int num;                public StuEntity() {    }    public StuEntity(int id, String name, String sex, int num) {        this.id = id;        this.name = name;        this.sex = sex;        this.num = num;    }        @Override    public String toString() {        return "StuEntity [id=" + id + ", name=" + name + ", sex=" + sex                + ", num=" + num + "]";    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public int getNum() {        return num;    }    public void setNum(int num) {        this.num = num;    }                }
復制代碼

Java實現Excel導入數據核心類 讀取Excel表中所有的數據、操作數據(查詢、更新)

復制代碼
package com.javen.service;import java.io.File;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import jxl.Sheet;import jxl.Workbook;import com.javen.db.DBhepler;import com.javen.entity.StuEntity;/** * @author Javen * @Email [email protected] *  */public class StuService {    /**     * 查詢stu表中所有的數據     * @return      */    public static List<StuEntity> getAllByDb(){        List<StuEntity> list=new ArrayList<StuEntity>();        try {            DBhepler db=new DBhepler();            String sql="select * from stu";            ResultSet rs= db.Search(sql, null);            while (rs.next()) {                int id=rs.getInt("id");                String name=rs.getString("name");                String sex=rs.getString("sex");                int num=rs.getInt("num");                                //System.out.println(id+" "+name+" "+sex+ " "+num);                list.add(new StuEntity(id, name, sex, num));            }                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return list;    }        /**     * 查詢指定目錄中電子表格中所有的數據     * @param file 文件完整路徑     * @return     */    public static List<StuEntity> getAllByExcel(String file){        List<StuEntity> list=new ArrayList<StuEntity>();        try {            Workbook rwb=Workbook.getWorkbook(new File(file));            Sheet rs=rwb.getSheet("Test Shee 1");//或者rwb.getSheet(0)            int clos=rs.getColumns();//得到所有的列            int rows=rs.getRows();//得到所有的行                        System.out.println(clos+" rows:"+rows);            for (int i = 1; i < rows; i++) {                for (int j = 0; j < clos; j++) {                    //第一個是列數,第二個是行數                    String id=rs.getCell(j++, i).getContents();//默認最左邊編號也算一列 所以這里得j++                    String name=rs.getCell(j++, i).getContents();                    String sex=rs.getCell(j++, i).getContents();                    String num=rs.getCell(j++, i).getContents();                                        System.out.println("id:"+id+" name:"+name+" sex:"+sex+" num:"+num);                    list.add(new StuEntity(Integer.parseInt(id), name, sex, Integer.parseInt(num)));                }            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }         return list;            }        /**     * 通過Id判斷是否存在     * @param id     * @return     */    public static boolean isExist(int id){        try {            DBhepler db=new DBhepler();            ResultSet rs=db.Search("select * from stu where id=?", new String[]{id+""});            if (rs.next()) {                return true;            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return false;    }        public static void main(String[] args) {        /*List<StuEntity> all=getAllByDb();        for (StuEntity stuEntity : all) {            System.out.println(stuEntity.toString());        }*/                System.out.println(isExist(1));            }    }
復制代碼

數據的數據導入到Excel表

復制代碼
package com.javen.excel;import java.io.File;import java.util.List;import com.javen.entity.StuEntity;import com.javen.service.StuService;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class TestDbToExcel {    public static void main(String[] args) {        try {            WritableWorkbook wwb = null;                            // 創建可寫入的Excel工作簿               String fileName = "D://book.xls";               File file=new File(fileName);               if (!file.exists()) {                   file.createNewFile();               }               //以fileName為文件名來創建一個Workbook               wwb = Workbook.createWorkbook(file);               // 創建工作表               WritableSheet ws = wwb.createSheet("Test Shee 1", 0);                              //查詢數據庫中所有的數據               List<StuEntity> list= StuService.getAllByDb();               //要插入到的Excel表格的行號,默認從0開始               Label labelId= new Label(0, 0, "編號(id)");//表示第               Label labelName= new Label(1, 0, "姓名(name)");               Label labelSex= new Label(2, 0, "性別(sex)");               Label labelNum= new Label(3, 0, "薪水(num)");                              ws.addCell(labelId);               ws.addCell(labelName);               ws.addCell(labelSex);               ws.addCell(labelNum);               for (int i = 0; i < list.size(); i++) {                                      Label labelId_i= new Label(0, i+1, list.get(i).getId()+"");                   Label labelName_i= new Label(1, i+1, list.get(i).getName());                   Label labelSex_i= new Label(2, i+1, list.get(i).getSex());                   Label labelNum_i= new Label(3, i+1, list.get(i).getNum()+"");                   ws.addCell(labelId_i);                   ws.addCell(labelName_i);                   ws.addCell(labelSex_i);                   ws.addCell(labelNum_i);               }                           //寫進文檔               wwb.write();              // 關閉Excel工作簿對象               wwb.close();                     } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }     }}
復制代碼

Excel表中的數據導入到MySql數據庫

 

復制代碼
package com.javen.excel;import java.util.List;import com.javen.db.DBhepler;import com.javen.entity.StuEntity;import com.javen.service.StuService;/** * @author Javen * @Email [email protected] *  */public class TestExcelToDb {    public static void main(String[] args) {        //得到表格中所有的數據        List<StuEntity> listExcel=StuService.getAllByExcel("d://book.xls");        /*//得到數據庫表中所有的數據        List<StuEntity> listDb=StuService.getAllByDb();*/                DBhepler db=new DBhepler();                for (StuEntity stuEntity : listExcel) {            int id=stuEntity.getId();            if (!StuService.isExist(id)) {                //不存在就添加                String sql="insert into stu (name,sex,num) values(?,?,?)";                String[] str=new String[]{stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+""};                db.AddU(sql, str);            }else {                //存在就更新                String sql="update stu set name=?,sex=?,num=? where id=?";                String[] str=new String[]{stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+"",id+""};                db.AddU(sql, str);            }        }    }}
復制代碼
 
 

源代碼下載地址 http://download.csdn.net/detail/zyw_java/7430807

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 露脸各种姿势啪啪的清纯美女 | 欧美另类激情 | 久久国产精品区 | 免费久久精品 | 久久另类视频 | 欧美视频一区二区三区 | 3xxx | 在线成人亚洲 | 免费国产视频在线观看 | 国产69精品久久久久9999不卡免费 | 久久久精品99 | 国产毛片自拍 | 成人国产精品一区 | 成人毛片免费看 | 一级免费特黄视频 | 欧美成人免费一区二区三区 | 久久精品在线免费观看 | 午夜精品福利视频 | 国产精品视频久久久 | 一区二区三区欧美日韩 | 三级国产三级在线 | 成人精品一区二区 | 欧美性生交xxxxx免费观看 | 成人一级视频在线观看 | 精品国产三级a | 天堂在线中文资源 | 欧洲色阁中文字幕 | 热99re久久免费视精品频软件 | 亚洲特黄a级毛片在线播放 久久久入口 | 91网站在线观看视频 | 日韩黄网站 | 黄色免费不卡视频 | 欧美性受ⅹ╳╳╳黑人a性爽 | 成人在线高清视频 | 香蕉久草视频 | 欧美精品一区自拍a毛片在线视频 | 精品一区二区三区在线观看视频 | 免费久久久久久 | 免费a级观看 | 少妇一级淫片免费放正片 | 国产精品9191 |