Servlet读取Excel标准化数据库过程记录
完成数据库的连接
获取连接参数
拷贝1.数据库URL 2.驱动程序类 3.用户
编写Servlet
1.创建连接对象
Connection con = null;
PreparedStatement prst = null;
ResultSet rs = null;
2.写入连接参数
String url = "数据库URL";
String driver = "驱动程序类";
String user = "用户";
String password = "数据库用户密码";
3.连接数据库,编写sql语句
Class.forName(driver)
con = DriverManager.getConnection(url,user,password);
String sql = "UPDATE [表] SET [目标列]=? WHERE [目标列]=?";
4.读取execel
Workbook book = Workbook.getWorkbook(new File("文件路径"));
Sheet sheet = book.getSheet(工作表序号);
5.写一个for循环
//一个整型,注意excel从第几行开始是更新值,注意范围设置,i++
for (int i = 1; i < 215; i++) {
// 使用jxl包,读取单元格(列序号,行序号)
jxl.Cell cell0 = sheet.getCell(0, i);
jxl.Cell cell1 = sheet.getCell(1, i);
//声明变量,取单元格的文本内容
String result0 = cell0.getContents();
String result1 = cell1.getContents();
//编译预编译语句,将两个单元格内容传入sql语句
prst = con.prepareStatement(sql);
// 注意位置(数字表示第几个问号,传入变量)
prst.setString(2, result0);
prst.setString(1, result1);
//执行sql语句
prst.executeUpdate();
}
6.关掉excel读取
book.close();
完整代码
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection con = null;
PreparedStatement prst = null;
ResultSet rs = null;
String url = "jdbc:sqlserver://localhost:***;databaseName=***";
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String user = "sa";
String password = "***";
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
String sql = "UPDATE [***] SET [***]=? WHERE [***]=? ";
Workbook book = Workbook.getWorkbook(new File("****"));
Sheet sheet = book.getSheet(*);
//一个整型,注意excel从第几行开始是更新值,注意范围设置,i++
for (int i = *; i <***; i++) {
// 使用jxl包,读取单元格(列序号,行序号)
jxl.Cell cell0 = sheet.getCell(0, i);
jxl.Cell cell1 = sheet.getCell(1, i);
//声明变量,取单元格的文本内容
String result0 = cell0.getContents();
String result1 = cell1.getContents();
//编译预编译语句,将两个单元格内容传入sql语句
prst = con.prepareStatement(sql);
// 注意位置(数字表示第几个问号,传入变量)
prst.setString(2, result0);
prst.setString(1, result1);
//执行sql语句
prst.executeUpdate();
}
out.print("<h1><strong>成功!</strong></h1>");
book.close();
} catch (BiffException ex) {
Logger.getLogger(doH.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(doH.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(doH.class.getName()).log(Level.SEVERE, null, ex);
}
}
注意事项:
1.该方法用的jxl的包,需要在库中导入
2.操作数据库需要try{}catch 来抛出异常,先码
Class.forName(driver);
处理方式
接着码
prst = conn.prepareStatement(sql);
添加catch子句
Servlet读取Excel标准化数据库过程记录的更多相关文章
- SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable
MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...
- 读取excel到数据库里面
//读取excel数据到dataTable里面 public DataTable ReadExcelDataToDataTable(string path) { DataTable dt = new ...
- ThinkPHP3.2.3 PHPExcel读取excel插入数据库
版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255 ...
- 无需上传附件到服务器,Servlet读取Excel(二)
package com.str; import java.io.File;import java.io.FileInputStream;import java.io.IOException; impo ...
- Java小知识----POI事件模式读取Excel 2007
一.知识背景 1.读取excel的方法选择问题 java中读excel中的时间,我们通常用POI去解析,在使用new HSSFWorkbook(NEW FileInputStream(excelFil ...
- 读取Excel的记录并导入SQL数据库
准备一下,近段时间,需要把Excel的数据导入数据库中. 引用命名空间: using System.Configuration; using System.Data; using System.Dat ...
- java读取excel文件数据导入mysql数据库
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...
- Java web项目 Jxl 读取excel 并保存到数据库,(从eclipse上移动到tomact服务器上,之路径更改,)
最开始在eclipse中测试的时候,并没有上传到服务器上,后来发现,想要读取数据必须上传服务器然后把文件删除就可以了,服务器不可以直接读取外地的文件.用到jxl 1.上传到服务器 前端 <for ...
- Java 用jxl读取excel并保存到数据库(此方法存在局限,仅限本地电脑操作,放在服务器上的项目,需要把文件上传到服务器,详细信息,见我的别的博客)
项目中涉及到读取excel中的数据,保存到数据库中,用jxl做起来比较简单. 基本的思路: 把excel放到固定盘里,然后前段页面选择文件,把文件的名字传到后台,再利用jxl进行数据读取,把读取到的数 ...
随机推荐
- Cheat sheets
- 用swing也可以做出好看的界面
用Swing做出的例子:JavaFX做出的界面:后来又做出了自己编写的一套基于Synth的L&F,其与直接在代码中重绘某个组件不同,最大优点是具有可插拔性,即在不改变原有程序代码的情况下,用户 ...
- WPF这样的界面应该如何编写呢?
如上图: 外围是一个Border,内部填充一个Grid,Grid分成两行,第一行有一个按钮可以进行操作(主要是操作ListBox的数据源:增加和删除对象),第二行填充一个ListBox,绑定数据源并根 ...
- JSP页面元素构成
1.page指令 <%@ page 属性1="" 属性2="" 属性3=""> <%@ page language=&qu ...
- JS学习:第二周——NO.3盒子模型
1.CSS盒子模型包括四个部分组成:设定的宽高+padding+border+margin: 2.JS盒子模型:通过系统提供的属性和方法,来获取当前元素的样式值 JS提供的属性和方法: clien ...
- android Viewpager HorizontalScrollView 实现分页栏拖拽
源码:http://files.cnblogs.com/android100/ViewPaperDemo.rar首先我们先看一个效果: 前两个是网易的,它做的title不能拖拽,.不过点击动画效果挺 ...
- Facebook的Web开发三板斧:React.js、Relay和GraphQL
2015-02-26 孙镜涛 InfoQ Eric Florenzano最近在自己的博客上发表了一篇题为<Facebook教我们如何构建网站>的文章,他认为软件开发有些时候需要比较大的跨 ...
- 【Unity3d】火炬之光的X射线效果
http://www.cnblogs.com/dosomething/archive/2012/04/03/2431149.html 人物和摄像机之间存在例如墙壁等的阻挡时 可以修改阻挡材质的alp ...
- C++指针参数引用
粘个代码占位置,以后有时间把指针函数,函数指针都补上 #include <iostream> using namespace std; void freePtr1(int* p1){ /* ...
- Erlang C1500K长连接推送服务-性能
Whatsapp已经使用Erlang在生产环境跑到96GB内存单机 3M长连接,参加:WhatsApp的Erlang世界.毕竟业务级别能达到Whatsapp那样极少,现在只有千万级,单机太多挂一台影响 ...