首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

JRuby施用ODBC连接Excel

2012-12-25 
JRuby使用ODBC连接Excel整理以前写的东西的时候找到的,一个小Demo,不过现在看来也就这一小段值得整理出来,

JRuby使用ODBC连接Excel

整理以前写的东西的时候找到的,一个小Demo,不过现在看来也就这一小段值得整理出来,也许会有人能用到。

展示了用Jruby调用Java连接ODBC的方法,以及使用excel当数据源时sql的写法。

include Java#演示登录,即从Excel中select,req里面提交了uid和password两个字段。class Login < HTTPServlet::AbstractServlet  def do_POST (req, res)    res.status = 200    res['Content-Type'] = 'text/html; charset=gbk'    java.lang.Class.forName 'sun.jdbc.odbc.JdbcOdbcDriver'    con = java.sql.DriverManager.getConnection 'jdbc:odbc:excel_db','',''    stmt = con.createStatement    rs = stmt.executeQuery "select * from [sheet1$] where uid='#{req.query['uid']}'"    if rs.next and rs.getString('password') == req.query['password']      res.body=ERB.new( IO.read(Dir::pwd+'/AfterLogin.erb') ).result(binding)    else      res.body='Excel里没您老的注册信息,要么就是您老打错密码了。'    end    ###演示获得所有列的名字###    meta_data = rs.getMetaData    column_labels = []    meta_data.getColumnCount.times { |i|      column_labels.push(meta_data.getColumnLabel i+1)    }    ##########################    rs.close    stmt.close    con.close  endend#演示更新Excel中的所谓Message,req里提交了msg_name字段。class UpdateMsg < HTTPServlet::AbstractServlet  def do_POST (req,res)    java.lang.Class.forName 'sun.jdbc.odbc.JdbcOdbcDriver'    con = java.sql.DriverManager.getConnection 'jdbc:odbc:excel_db','',''    stmt = con.createStatement    msg_name = req.query['msg_name']    stmt.executeUpdate "update [sheet1$] set #{msg_name}='#{req.query[msg_name]}' where uid='#{req.query['uid']}'"    stmt.close    con.close    res.set_redirect(HTTPStatus::MovedPermanently, '/ShowUpdateResult')  endend
?

?

热点排行