如何把word文档导入到数据库中——java POI
                        
                            时间:2021-07-01 10:21:17
                            帮助过:20人阅读
							                        
                     
                    
                    
                     import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.util.HashMap;
 4 import java.util.List;
 5 import java.util.Map;
 6 
 7 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 8 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 9 
10 import Bean.Article;
11 import Dao.IDao;
12 import Dao.UserDaoImpl;
13 
14 public class WordToSql {
15 
16     public static String pian;
17     public static String zhang;
18     
19     public static void readAndWriter(String fileName)
throws Exception {
20         File file = 
new File(fileName);
21         try {
22             FileInputStream fis = 
new FileInputStream(file);
23             XWPFDocument xdoc = 
new XWPFDocument(fis);
24             List<XWPFParagraph>paras =
 xdoc.getParagraphs();
25             Article article = 
new Article();
26             IDao userDao = 
new UserDaoImpl();
27             boolean isFirst = 
true;
28             for(XWPFParagraph p:paras) {  
//遍历段落
29                 String level =
 p.getStyleID();
30                 System.out.println(level);
31                 if(level==
null)
continue;
32                 if(level.equals("12030")) {   
//篇的字号是小三:15
33                     pian =
 p.getParagraphText();
34                     article.setPian(pian);
35                 }
else if(level.equals("2201812")) {  
//章的字号是四号:14
36                     if(!
isFirst) {
37                         userDao.add(article);
38                         isFirst = 
true;
39                     }
40                     zhang =
 p.getParagraphText();
41                     article.setZhang(zhang);
42                 }
else if(level.equals("3132020")) {   
//每个热词的字号是13
43                     if(isFirst)isFirst = 
false;
44                     else userDao.add(article);
45                     String title =
 p.getParagraphText();
46                     article.setTitle(title);
47                     article.setContent(
null);
48                 }
else if(level.equals("41")) {  
//段落的字号是小五:9
49                     String content =
 p.getParagraphText();
50                     if(article.getContent()!=
null)content =article.getContent()+
 content;
51                     article.setContent(content);
52                 }
53             }
54             fis.close();
55         }
catch(Exception e) {
56             System.out.println("WordToSql:"+
e.getMessage());
57         }
58     }
59     
60 }
在这一部分代码中,有一部分方法是POI的jar包自带的方法,如getParagraphs()和getStyleID()方法。
在博主推荐的那篇博客中,处理数据的方式也是根据字号进行,不过在博主使用后发现数据库中并没有导入数据,最后发现错误的原因是由于字号错误,于是在使用getStyleID()方法后,我将字号输出,最后发现这四种不同的字号。
isFirst的true和false将控制调用存储函数的时间点,可在仔细看过代码后,进行理解。
 
以下是存储函数的代码:
 1 import java.sql.Connection;
 2 import java.sql.PreparedStatement;
 3 
 4 import Bean.Article;
 5 import Util.DBUtil;
 6 
 7 public class UserDaoImpl implements IDao{
 8 
 9     public void add(Article article) {
10         Connection con = DBUtil.getConnection();
11         PreparedStatement pre = null;
12         String sql = "insert into data(pian,zhang,title,context) values(?,?,?,?)";
13         try {
14             pre = con.prepareStatement(sql);
15             pre.setString(1,article.getPian());
16             pre.setString(2,article.getZhang());
17             pre.setString(3,article.getTitle());
18             pre.setString(4,article.getContent());
19             pre.executeUpdate();
20             System.out.println("添加成功!");
21         }catch(Exception e) {
22             System.out.println(e.getMessage());
23         }finally {
24             DBUtil.close(pre);
25             DBUtil.close(con);
26         }
27     }
28     
29 }
以上就是全部内容,如果并不能理解博主的方法,可以看一看博主推荐的博客。
 
如何把word文档导入到数据库中——java POI
标签:stream   ash   zhang   lse   导入   first   util   bsp   add