欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java批量生成代碼 快速生成代碼

從excel表格讀取數(shù)據(jù)用Java代碼實(shí)現(xiàn)批量上傳寫入數(shù)據(jù)庫

java操作Excel的一種方法:在開源世界中,有兩套比較有影響的API可供使用,一個是POI,一個是jExcelAPI。其中jExcelAPI是一個韓國程序員的作品,雖然沒有POI那樣血統(tǒng)高貴,但是在使用過程中,感覺簡單方便,對中文支持非常好,功能也比較強(qiáng)大。它的下載地址是: 當(dāng)前的最高版本是2.4。作者的網(wǎng)站上對它的特征有如下描述:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了孝感免費(fèi)建站歡迎大家使用!

● 支持Excel 95-2000的所有版本

● 生成Excel 2000標(biāo)準(zhǔn)格式

● 支持字體、數(shù)字、日期操作

● 能夠修飾單元格屬性

● 支持圖像和圖表

搭建環(huán)境

將下載后的文件解包,得到j(luò)xl.jar,放入classpath,安裝就完成了。

基本操作

一、創(chuàng)建文件

擬生成一個名為“測試數(shù)據(jù).xls”的Excel文件,其中第一個工作表被命名為“第一頁”,大致效果如下:

代碼(CreateXLS.java):

//生成Excel的類

import java.io.*;

import jxl.*;

import jxl.write.*;

public class CreateXLS

{

public static void main(String args[])

{

try

{

//打開文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“測試.xls”));

//生成名為“第一頁”的工作表,參數(shù)0表示這是第一頁

WritableSheet sheet=book.createSheet(“第一頁”,0);

//在Label對象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)

//以及單元格內(nèi)容為test

Label label=new Label(0,0,”test”);

//將定義好的單元格添加到工作表中

sheet.addCell(label);

/*生成一個保存數(shù)字的單元格

必須使用Number的完整包路徑,否則有語法歧義

單元格位置是第二列,第一行,值為789.123*/

jxl.write.Number number = new jxl.write.Number(1,0,789.123);

sheet.addCell(number);

//寫入數(shù)據(jù)并關(guān)閉文件

book.write();

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

編譯執(zhí)行后,會在當(dāng)前位置產(chǎn)生一個Excel文件。

三、讀取文件

以剛才我們創(chuàng)建的Excel文件為例,做一個簡單的讀取操作,程序代碼如下:

//讀取Excel的類

import java.io.*;

import jxl.*;

public class ReadXLS

{

public static void main(String args[])

{

try

{

Workbook book=

Workbook.getWorkbook(new File(“測試.xls”));

//獲得第一個工作表對象

Sheet sheet=book.getSheet(0);

//得到第一列第一行的單元格

Cell cell1=sheet.getCell(0,0);

String result=cell1.getContents();

System.out.println(result);

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

程序執(zhí)行結(jié)果:test

四、修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的時候,除了打開文件的方式不同之外,其他操作和創(chuàng)建Excel是一樣的。下面的例子是在我們已經(jīng)生成的Excel文件中添加一個工作表:

//修改Excel的類,添加一個工作表

import java.io.*;

import jxl.*;

import jxl.write.*;

public class UpdateXLS

{

public static void main(String args[])

{

try

{

//Excel獲得文件

Workbook wb=Workbook.getWorkbook(new File(“測試.xls”));

//打開一個文件的副本,并且指定數(shù)據(jù)寫回到原文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“測試.xls”),wb);

//添加一個工作表

WritableSheet sheet=book.createSheet(“第二頁”,1);

sheet.addCell(new Label(0,0,”第二頁的測試數(shù)據(jù)”));

book.write();

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

執(zhí)行結(jié)果如圖:

高級操作

一、 數(shù)據(jù)格式化

在Excel中不涉及復(fù)雜的數(shù)據(jù)類型,能夠比較好的處理字串、數(shù)字和日期已經(jīng)能夠滿足一般的應(yīng)用。

1、 字串格式化

字符串的格式化涉及到的是字體、粗細(xì)、字號等元素,這些功能主要由WritableFont和WritableCellFormat類來負(fù)責(zé)。假設(shè)我們在生成一個含有字串的單元格時,使用如下語句,為方便敘述,我們?yōu)槊恳恍忻罴恿司幪枺?/p>

WritableFont font1=

new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); ①

WritableCellFormat format1=new WritableCellFormat(font1); ②

Label label=new Label(0,0,”data 4 test”,format1) ③

其中①指定了字串格式:字體為TIMES,字號16,加粗顯示。WritableFont有非常豐富的構(gòu)造子,供不同情況下使用,jExcelAPI的java-doc中有詳細(xì)列表,這里不再列出。

②處代碼使用了WritableCellFormat類,這個類非常重要,通過它可以指定單元格的各種屬性,后面的單元格格式化中會有更多描述。

③處使用了Label類的構(gòu)造子,指定了字串被賦予那種格式。

在WritableCellFormat類中,還有一個很重要的方法是指定數(shù)據(jù)的對齊方式,比如針對我們上面的實(shí)例,可以指定:

//把水平對齊方式指定為居中

format1.setAlignment(jxl.format.Alignment.CENTRE);

//把垂直對齊方式指定為居中

format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、單元格操作

Excel中很重要的一部分是對單元格的操作,比如行高、列寬、單元格合并等,所幸jExcelAPI提供了這些支持。這些操作相對比較簡單,下面只介紹一下相關(guān)的API。

1、 合并單元格

WritableSheet.mergeCells(int m,int n,int p,int q);

作用是從(m,n)到(p,q)的單元格全部合并,比如:

WritableSheet sheet=book.createSheet(“第一頁”,0);

//合并第一列第一行到第六列第一行的所有單元格

sheet.mergeCells(0,0,5,0);

合并既可以是橫向的,也可以是縱向的。合并后的單元格不能再次進(jìn)行合并,否則會觸發(fā)異常。

2、 行高和列寬

WritableSheet.setRowView(int i,int height);

作用是指定第i+1行的高度,比如:

//將第一行的高度設(shè)為200

sheet.setRowView(0,200); 能夠獲取到j(luò)ava里面那么再封裝保存進(jìn)數(shù)據(jù)庫也就簡單了,希望這樣可以幫到你。

怎樣調(diào)用lazytestelementsextractor生成java代碼

簡單來說,批量獲取就是把每個控件單個獲取的結(jié)果,以表格形式呈現(xiàn),并且對獲取到的控件做一個直觀的展示(“控件展示”列),以便用戶勾選需要的控件,生成代碼。

如上圖所示:

第一行為百度搜索框的抓取結(jié)果,

控件類型為“text”,

默認(rèn)勾選生成代碼,因?yàn)榭梢杂胕d唯一定位,

給出了三個可對其唯一定位的xpath:

//input[@id='kw']

//input[@name='wd']

//input[contains(@class,'s_ipt')]

控件名稱和描述都默認(rèn)取其id,可自行修改。

點(diǎn)擊全選,可以將工具抓取到的所有控件勾選,(能用ID或name唯一定位的,默認(rèn)勾選“生成代碼”)

也可以在xpath列勾選抓取到的xpath,可以把那些不穩(wěn)定的xpath勾選掉,

在最下面填寫pagebean的包名和類名后,會生成一個.Java文件,包含了bean層所有的代碼,直接拷貝到工程中即可使用。

[java] view plain copy

package bean;

import lazy.test.ui.annotations.*;

import lazy.test.ui.beans.PageBean;

import lazy.test.ui.controls.*;

import lazy.test.ui.browser.BrowserEmulator;

public class baidu extends PageBean {

@Xpath(xpath={"http://input[@id='kw']", "http://input[@name='wd']", "http://input[contains(@class,'s_ipt')]"})

@Frame(frame="")

@Description(description="kw")

public Text kw;

@Xpath(xpath={"http://input[@id='su']", "http://input[contains(@value,'百度一下')]", "http://input[contains(@class,'bg s_btn')]"})

@Frame(frame="")

@Description(description="su")

public Click su;

@Xpath(xpath={"http://a[@name='ime_hw']", "http://a[contains(text(),'手寫')]", "/html/body/div[3]/div[1]/div/div[1]/div/form/span[3]/span/ul/li[1]/a"})

@Frame(frame="")

@Description(description="imehw")

public Click imehw;

@Xpath(xpath={"http://a[@name='ime_py']", "http://a[contains(text(),'拼音')]", "/html/body/div[3]/div[1]/div/div[1]/div/form/span[3]/span/ul/li[2]/a"})

@Frame(frame="")

@Description(description="imepy")

public Click imepy;

@Xpath(xpath={"http://a[@name='ime_cl']", "http://a[contains(text(),'關(guān)閉')]", "/html/body/div[3]/div[1]/div/div[1]/div/form/span[3]/span/ul/li[4]/a"})

@Frame(frame="")

@Description(description="imecl")

public Click imecl;

@Xpath(xpath={"http://a[@name='tj_trnuomi']", "http://a[contains(text(),'糯米')]", "/html/body/div[3]/div[1]/div/div[3]/a[1]"})

@Frame(frame="")

@Description(description="tjtrnuomi")

public Click tjtrnuomi;

@Xpath(xpath={"http://a[@name='tj_trnews']", "/html/body/div[3]/div[1]/div/div[3]/a[2]"})

@Frame(frame="")

@Description(description="tjtrnews")

public Click tjtrnews;

@Xpath(xpath={"http://a[@name='tj_trhao123']", "http://a[contains(text(),'hao12')]", "/html/body/div[3]/div[1]/div/div[3]/a[3]"})

@Frame(frame="")

@Description(description="tjtrhao123")

public Click tjtrhao123;

@Xpath(xpath={"http://a[@name='tj_trmap']", "/html/body/div[3]/div[1]/div/div[3]/a[4]"})

@Frame(frame="")

@Description(description="tjtrmap")

public Click tjtrmap;

@Xpath(xpath={"http://a[@name='tj_trvideo']", "/html/body/div[3]/div[1]/div/div[3]/a[5]"})

@Frame(frame="")

@Description(description="tjtrvideo")

public Click tjtrvideo;

@Xpath(xpath={"http://a[@name='tj_trtieba']", "/html/body/div[3]/div[1]/div/div[3]/a[6]"})

@Frame(frame="")

@Description(description="tjtrtieba")

public Click tjtrtieba;

@Xpath(xpath={"http://div[@id='u1']//a[@name='tj_login']", "http://a[@name='tj_trnuomi']/parent::div/a[7]", "/html/body/div[3]/div[1]/div/div[3]/a[7]"})

@Frame(frame="")

@Description(description="tjlogin")

public Click tjlogin;

@Xpath(xpath={"http://div[@id='u1']//a[@name='tj_settingicon']", "http://a[@name='tj_trnuomi']/parent::div/a[8]", "/html/body/div[3]/div[1]/div/div[3]/a[8]"})

@Frame(frame="")

@Description(description="tjsettingicon")

public Click tjsettingicon;

@Xpath(xpath={"http://a[@name='tj_briicon']", "http://a[contains(text(),'更多產(chǎn)品')]", "http://a[contains(@class,'bri')]"})

@Frame(frame="")

@Description(description="tjbriicon")

public Click tjbriicon;

@Xpath(xpath={"http://a[@name='tj_mp3']", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[1]"})

@Frame(frame="")

@Description(description="tjmp3")

public Click tjmp3;

@Xpath(xpath={"http://a[@name='tj_img']", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[2]"})

@Frame(frame="")

@Description(description="tjimg")

public Click tjimg;

@Xpath(xpath={"http://a[@name='tj_zhidao']", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[3]"})

@Frame(frame="")

@Description(description="tjzhidao")

public Click tjzhidao;

@Xpath(xpath={"http://a[@name='tj_wenku']", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[4]"})

@Frame(frame="")

@Description(description="tjwenku")

public Click tjwenku;

@Xpath(xpath={"http://a[@name='tj_bang']", "http://a[contains(text(),'風(fēng)云榜')]", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[5]"})

@Frame(frame="")

@Description(description="tjbang")

public Click tjbang;

@Xpath(xpath={"http://a[@name='tj_tuiguang']", "http://a[contains(text(),'百度推廣')]", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/a[6]"})

@Frame(frame="")

@Description(description="tjtuiguang")

public Click tjtuiguang;

@Xpath(xpath={"http://a[@name='tj_more']", "http://a[contains(text(),'全部產(chǎn)品')]", "/html/body/div[3]/div[1]/div/div[4]/div/div[2]/div[1]/div/div/a"})

@Frame(frame="")

@Description(description="tjmore")

public Click tjmore;

@Xpath(xpath={"http://a[@id='setf']", "http://a[contains(@style,'display: inline;')]", "/html/body/div[3]/div[3]/div/div[2]/p[1]/a[2]"})

@Frame(frame="")

@Description(description="setf")

public Click setf;

public baidu(BrowserEmulator be) { super(be); }

}

求java程序批量生成靚號代碼

預(yù)先定義好 ,,,,,,,,,靚號的規(guī)則,,,,,,再生成

怎樣利用 eclipse mybatis generator 自動生成代碼

MyBatis中,可以使用Generator自動生成代碼,包括DAO層、 MODEL層 、MAPPING SQL映射文件。

第一步:下載MyBatis的Generator工具

htt p:/ /mybati s.gith ub.i o/generator/

第二步:配置自動生成代碼所需的XML配置文件,例如(generator.xml)

將這個文件保存至你下載的mybatis-generator-core-1.3.2文件夾下

第三步:進(jìn)入XML配置文件(generator.xml)所在的的目錄并執(zhí)行命令:

Dos代碼

java -jar E:\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.j ar -configfile generator.xml -overwrite

mybatis generator eclipse插件的安裝

打開eclipse,點(diǎn)擊HelpSoftware Update

選擇 "Available Software" 標(biāo)簽,點(diǎn)擊 "Add Site" 按鈕

輸入以下信息:

Location:htt p:/ /mybatis.googleco de.c om/svn/sub-projects/gen erator/trunk/eclipse/UpdateSite/

點(diǎn)擊ok,自動進(jìn)入"mybatis generator Feature"

點(diǎn)擊“install”按鈕進(jìn)行安裝。。。。mybatis generator 插件安裝完成

配置Mybatis Generator不要生成Example類

Mybatis Generator默認(rèn)設(shè)置會生成一大堆羅哩羅嗦的Example類,主要是用各種不同的條件來操作數(shù)據(jù)庫,大部分是用不到的,用到的時候手工修改mapper和接口文件就行了。

/codetable

schema="general"

tableName="tb_table_name"

domainObjectName="EntityName"

enableCountByExample="false"

enableUpdateByExample="false"

enableDeleteByExample="false"

enableSelectByExample="false"

selectByExampleQueryId="false"

name="useActualColumnNames"

value="true"/

//codetable

這樣生成的mapper和dao接口就清爽多了。

Java動態(tài)生成代碼

可以的,我說說大概思路,很簡單,你自己具體實(shí)現(xiàn)吧,把代碼寫給你沒意義的:

1.將你這段字符串輸出到一個文件里,用Java類文件的方式命名。

2.調(diào)用外部javac命令將該文件編譯。

3.用類加載器(ClassLoad)動態(tài)加載新的class文件并用Class.forName()注冊該類,然后就可以正常使用了。

上面的每一步都能在baidu中找到實(shí)現(xiàn)方法,自己發(fā)揮吧。

java代碼生成器怎么用

zip包,然后自動下載下來

1.預(yù)先定義好模板

2.界面輸入相關(guān)參數(shù)

3.解析模板生成代碼并下載

最后放出源代碼:

package com.et.controller.system.createcode;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.et.controller.base.BaseController;

import com.et.util.DelAllFile;

import com.et.util.FileDownload;

import com.et.util.FileZip;

import com.et.util.Freemarker;

import com.et.util.PageData;

import com.et.util.PathUtil;

/**

* 類名稱:FreemarkerController

* 創(chuàng)建人:Harries

* 創(chuàng)建時間:2015年1月12日

* @version

*/

@Controller

@RequestMapping(value=”/createCode”)

public class CreateCodeController extends BaseController {

/**

* 生成代碼

*/

@RequestMapping(value=”/proCode”)

public void proCode(HttpServletResponse response) throws Exception{

PageData pd = new PageData();

pd = this.getPageData();

/* ============================================================================================= */

String packageName = pd.getString(“packageName”); //包名 ========1

String objectName = pd.getString(“objectName”); //類名 ========2

String tabletop = pd.getString(“tabletop”); //表前綴 ========3

tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前綴轉(zhuǎn)大寫

String zindext = pd.getString(“zindex”); //屬性總數(shù)

int zindex = 0;

if(null != zindext !””.equals(zindext)){

zindex = Integer.parseInt(zindext);

}

ListString[] fieldList = new ArrayListString[](); //屬性集合 ========4

for(int i=0; i zindex; i++){

fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //屬性放到集合里面

}

MapString,Object root = new HashMapString,Object(); //創(chuàng)建數(shù)據(jù)模型

root.put(“fieldList”, fieldList);

root.put(“packageName”, packageName); //包名

root.put(“objectName”, objectName); //類名

root.put(“objectNameLower”, objectName.toLowerCase()); //類名(全小寫)

root.put(“objectNameUpper”, objectName.toUpperCase()); //類名(全大寫)

root.put(“tabletop”, tabletop); //表前綴

root.put(“nowDate”, new Date()); //當(dāng)前日期

DelAllFile.delFolder(PathUtil.getClasspath()+”admin/ftl”); //生成代碼前,先清空之前生成的代碼

/* ============================================================================================= */

String filePath = “admin/ftl/code/”; //存放路徑

String ftlPath = “createCode”; //ftl路徑

/*生成controller*/

Freemarker.printFile(“controllerTemplate.ftl”, root, “controller/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Controller.java”, filePath, ftlPath);

/*生成service*/

Freemarker.printFile(“serviceTemplate.ftl”, root, “service/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Service.java”, filePath, ftlPath);

/*生成mybatis xml*/

Freemarker.printFile(“mapperMysqlTemplate.ftl”, root, “mybatis_mysql/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

Freemarker.printFile(“mapperOracleTemplate.ftl”, root, “mybatis_oracle/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

/*生成SQL腳本*/

Freemarker.printFile(“mysql_SQL_Template.ftl”, root, “mysql數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

/*生成jsp頁面*/

Freemarker.printFile(“jsp_list_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_list.jsp”, filePath, ftlPath);

Freemarker.printFile(“jsp_edit_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_edit.jsp”, filePath, ftlPath);

/*生成說明文檔*/

Freemarker.printFile(“docTemplate.ftl”, root, “說明.doc”, filePath, ftlPath);

//this.print(“oracle_SQL_Template.ftl”, root); 控制臺打印

/*生成的全部代碼壓縮成zip文件*/

FileZip.zip(PathUtil.getClasspath()+”admin/ftl/code”, PathUtil.getClasspath()+”admin/ftl/code.zip”);

/*下載代碼*/

FileDownload.fileDownload(response, PathUtil.getClasspath()+”admin/ftl/code.zip”, “code.zip”);

}

}

網(wǎng)頁名稱:java批量生成代碼 快速生成代碼
文章來源:http://chinadenli.net/article12/hppodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版關(guān)鍵詞優(yōu)化標(biāo)簽優(yōu)化網(wǎng)頁設(shè)計公司網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司