<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>gaoxing_china</title>
    <description></description>
    <link>http://gaoxing-china.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>html doctype</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/187535" style="color:red;">http://gaoxing-china.javaeye.com/blog/187535</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: red">以前没有注意的细节DOCTYPE：</span><br />关于页面编码的doctype：使用正确的doctype声明<br /><br /> 虽然大多数Web文档的顶部都有doctype声明，但很多人都没有注意它。它是在你新建一个文档时，由Web创作软件草率处理的众多细节之一。<br /><br />虽然doctype被许多人忽视，但在遵循标准的任何Web文档中，它都是一项必需的元素。doctype会影响代码验证，并决定了浏览器最终如何显示你的Web文档。<br /><br /><br />doctype的作用<br />doctype声明指出阅读程序应该用什么规则集来解释文档中的标记。在Web文档的情况下，“阅读程序”通常是浏览器或者校验器这样的一个程序，“规则”则是W3C所发布的一个文档类型定义（DTD）中包含的规则。<br /><br />每个DTD都包括一系列标记、attributes和properties，它们用于标记Web文档的内容；此外还包括一些规则，它们规定了哪些标记能出现在其他哪些标记中。每个Web建议标准（比如HTML 4 Frameset和XHTML 1.0 Transitional）都有自己的DTD。<br /><br />假如文档中的标记不遵循doctype声明所指定的DTD，这个文档除了不能通过代码校验之外，还有可能无法在浏览器中正确显示。对于标记不一致的问题，浏览器相较于校验器来说更宽容。但是，不正确的doctype声明经常导致网页不正确显示，或者导致它们根本不能显示。<br /><br /><br />选择正确的doctype<br />为了获得正确的doctype声明，关键就是让DTD与文档所遵循的标准对应。例如，假定文档遵循的是XHTML 1.0 Strict标准，文档的doctype声明就应该引用相应的DTD。另一方面，如果doctype声明指定的是XHTML DTD，但文档包含的是旧式风格的HTML标记，就是不恰当的；类似地，如果doctype声明指定的是HTML DTD，但文档包含的是XHTML 1.0 Strict标记，同样是不恰当的。<br /><br />有的时候，也可以根本不使用一个doctype声明。如果没有指定有效的doctype声明，大多数浏览器都会使用一个内建的默认DTD。在这种情况下，浏览器会用内建的DTD来试着显示你所指定的标记。对于一些临时性的、匆忙拼凑的文档（这种文档有许多），你确实可以考虑省略doctype声明，并接受浏览器的默认显示。<br /><br />完全可以从头编写一个doctype声明，并让它指向自己选择的一个DTD。然而，由于大多数Web文档都需要遵循由W3C发布的某个国际公认的Web标准，所以那些文档通常都要包含以下标准doctype声明之一：<br /><br />HTML 2：<br /><br />&lt;!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"><br /><br />HTML 3.2：<br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><br /><br />HTML 4.01 Strict：<br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"<br />"http://www.w3.org/TR/html4/strict.dtd"><br /><br />HTML 4.01 Transitional：<br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />"http://www.w3.org/TR/html4/loose.dtd"><br /><br />HTML 4.01 Frameset：<br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"<br />"http://www.w3.org/TR/html4/frameset.dtd"><br /><br />XHTML 1.0 Strict：<br /><br />&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><br /><br />XHTML 1.0 Transitional：<br /><br />&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><br />XHTML 1.0 Frameset：<br /><br />&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"><br /><br />XHTML 1.1：<br /><br />&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"<br />"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><br /><br />XHTML 1.1 plus MathML plus SVG：<br /><br />&lt;!DOCTYPE html PUBLIC<br />"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"<br />"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"><br /><br />除了上面列出的doctype声明，具有特殊要求的一些文档还使用了其他几种声明。<br /><br />doctype声明通常是文档的第一行，要在&lt;html>标记以及其他文档内容之前。注意，在XHTML文档中，doctype的前面偶尔会出现一条XML处理指令（也称为XML prolog）：<br /><br />&lt;?xml version="1.0" encoding="utf-8"?><br /><br />为了确保网页正确显示和顺利通过验证，使用正确的doctype是关键。与内容相反的、不正确的或者形式错误的doctype是大量问题的罪魁祸首。在未来的专栏文章中，我还会具体解释如何诊断及纠正这些问题。<br /><br />用DW设计网页时，新建一个文件，看代码最前面总要出现一个下面的东东，<br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />"http://www.w3.org/TR/html4/loose.dtd"><br />这个是DW自动在网页文件页增加了DTD信息.可以删.<br />删除后，浏览器会使用的默认DTD.
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/187535#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 13:55:09 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/187535</link>
        <guid>http://gaoxing-china.javaeye.com/blog/187535</guid>
      </item>
      <item>
        <title>JavaFreeChar  tAPI</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/187407" style="color:red;">http://gaoxing-china.javaeye.com/blog/187407</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: green"><span style="font-size: large">JFreeChart类：<br />void setAntiAlias(boolean flag)    字体模糊边界<br />void setBackgroundImage(Image image)   背景图片[color=blue]</span><br />void setBackgroundImageAlignment(int alignment)  背景图片对齐方式（参数常量在org.jfree.ui.Align类中定义）<br />void setBackgroundImageAlpha(float alpha)  背景图片透明度（0.0～1.0）<br />void setBackgroundPaint(Paint paint)   背景色<br />void setBorderPaint(Paint paint)   边界线条颜色<br />void setBorderStroke(Stroke stroke)   边界线条笔触<br />void setBorderVisible(boolean visible)   边界线条是否可见<br /><br />jfreechart.addSubtitle(new TextTitle("Four datasets and four range axes."));添加子标题<br /><br />-----------------------------------------------------------------------------------------------------------<br /><br />TextTitle类：<br />void setFont(Font font)     标题字体<br />void setPaint(Paint paint)    标题字体颜色<br />void setText(String text)    标题内容<br /><br />-----------------------------------------------------------------------------------------------------------<br /><br />StandardLegend(Legend)类：<br />void setBackgroundPaint(Paint paint)   图示背景色<br />void setTitle(String title)    图示标题内容<br />void setTitleFont(Font font)    图示标题字体<br />void setBoundingBoxArcWidth(int arcWidth)  图示边界圆角宽<br />void setBoundingBoxArcHeight(int arcHeight)  图示边界圆角高<br />void setOutlinePaint(Paint paint)   图示边界线条颜色<br />void setOutlineStroke(Stroke stroke)   图示边界线条笔触<br />void setDisplaySeriesLines(boolean flag)  图示项是否显示横线（折线图有效）<br />void setDisplaySeriesShapes(boolean flag)  图示项是否显示形状（折线图有效）<br />void setItemFont(Font font)    图示项字体<br />void setItemPaint(Paint paint)    图示项字体颜色<br />void setAnchor(int anchor)    图示在图表中的显示位置（参数常量在Legend类中定义）<br /><br />-----------------------------------------------------------------------------------------------------------<br /><br />Axis类：<br />void setVisible(boolean flag)    坐标轴是否可见<br />void setAxisLinePaint(Paint paint)   坐标轴线条颜色（3D轴无效）<br />void setAxisLineStroke(Stroke stroke)   坐标轴线条笔触（3D轴无效）<br />void setAxisLineVisible(boolean visible)  坐标轴线条是否可见（3D轴无效）<br />void setFixedDimension(double dimension)  （用于复合表中对多坐标轴的设置）<br />void setLabel(String label)    坐标轴标题<br />void setLabelFont(Font font)    坐标轴标题字体<br />void setLabelPaint(Paint paint)    坐标轴标题颜色<br />void setLabelAngle(double angle)`   坐标轴标题旋转角度（纵坐标可以旋转）<br />void setTickLabelFont(Font font)   坐标轴标尺值字体<br />void setTickLabelPaint(Paint paint)   坐标轴标尺值颜色<br />void setTickLabelsVisible(boolean flag)   坐标轴标尺值是否显示<br />void setTickMarkPaint(Paint paint)   坐标轴标尺颜色<br />void setTickMarkStroke(Stroke stroke)   坐标轴标尺笔触<br />void setTickMarksVisible(boolean flag)   坐标轴标尺是否显示<br /><br />ValueAxis(Axis)类：<br />void setAutoRange(boolean auto)    自动设置数据轴数据范围<br />void setAutoRangeMinimumSize(double size)  自动设置数据轴数据范围时数据范围的最小跨度<br />void setAutoTickUnitSelection(boolean flag)  数据轴的数据标签是否自动确定（默认为true）<br />void setFixedAutoRange(double length)   数据轴固定数据范围（设置100的话就是显示MAXVALUE到MAXVALUE-100那段数据范围）<br />void setInverted(boolean flag)    数据轴是否反向（默认为false）<br />void setLowerMargin(double margin)   数据轴下（左）边距<br />void setUpperMargin(double margin)   数据轴上（右）边距<br />void setLowerBound(double min)    数据轴上的显示最小值<br />void setUpperBound(double max)    数据轴上的显示最大值<br />void setPositiveArrowVisible(boolean visible)  是否显示正向箭头（3D轴无效）<br />void setNegativeArrowVisible(boolean visible)  是否显示反向箭头（3D轴无效）<br />void setVerticalTickLabels(boolean flag)  数据轴数据标签是否旋转到垂直<br />void setStandardTickUnits(TickUnitSource source) 数据轴的数据标签（可以只显示整数标签，需要将AutoTickUnitSelection设false）<br /><br />NumberAxis(ValueAxis)类：<br />void setAutoRangeIncludesZero(boolean flag)  是否强制在自动选择的数据范围中包含0<br />void setAutoRangeStickyZero(boolean flag)  是否强制在整个数据轴中包含0，即使0不在数据范围中<br />void setNumberFormatOverride(NumberFormat formatter) 数据轴数据标签的显示格式<br />void setTickUnit(NumberTickUnit unit)   数据轴的数据标签（需要将AutoTickUnitSelection设false）<br /><br />DateAxis(ValueAxis)类：<br />void setMaximumDate(Date maximumDate)   日期轴上的最小日期<br />void setMinimumDate(Date minimumDate)   日期轴上的最大日期<br />void setRange(Date lower,Date upper)   日期轴范围<br />void setDateFormatOverride(DateFormat formatter) 日期轴日期标签的显示格式<br />void setTickUnit(DateTickUnit unit)   日期轴的日期标签（需要将AutoTickUnitSelection设false）<br />void setTickMarkPosition(DateTickMarkPosition position) 日期标签位置（参数常量在org.jfree.chart.axis.DateTickMarkPosition类中定义）<br /><br />CategoryAxis(Axis)类：<br />void setCategoryMargin(double margin)   分类轴边距<br />void setLowerMargin(double margin)   分类轴下（左）边距<br />void setUpperMargin(double margin)   分类轴上（右）边距<br />void setVerticalCategoryLabels(boolean flag)  分类轴标题是否旋转到垂直<br />void setMaxCategoryLabelWidthRatio(float ratio)  分类轴分类标签的最大宽度<br /><br />-----------------------------------------------------------------------------------------------------------<br /><br />Plot类：<br />void setBackgroundImage(Image image)   数据区的背景图片<br />void setBackgroundImageAlignment(int alignment)  数据区的背景图片对齐方式（参数常量在org.jfree.ui.Align类中定义）<br />void setBackgroundPaint(Paint paint)   数据区的背景图片背景色<br />void setBackgroundAlpha(float alpha)   数据区的背景透明度（0.0～1.0）<br />void setForegroundAlpha(float alpha)   数据区的前景透明度（0.0～1.0）<br />void setDataAreaRatio(double ratio)   数据区占整个图表区的百分比<br />void setOutLinePaint(Paint paint)   数据区的边界线条颜色<br />void setOutLineStroke(Stroke stroke)   数据区的边界线条笔触<br />void setNoDataMessage(String message)   没有数据时显示的消息<br />void setNoDataMessageFont(Font font)   没有数据时显示的消息字体<br />void setNoDataMessagePaint(Paint paint)   没有数据时显示的消息颜色<br /><br />XYPlot类：<br /><br />public ValueAxis getRangeAxis(int index)返回一个行轴<br /> <br /><br />CategoryPlot(Plot)类：<br />void setDataset(CategoryDataset dataset)  数据区的2维数据表<br />void setColumnRenderingOrder(SortOrder order)  数据分类的排序方式<br />void setAxisOffset(Spacer offset)   坐标轴到数据区的间距<br />void setOrientation(PlotOrientation orientation) 数据区的方向（PlotOrientation.HORIZONTAL或PlotOrientation.VERTICAL）<br />void setDomainAxis(CategoryAxis axis)   数据区的分类轴<br />void setDomainAxisLocation(AxisLocation location) 分类轴的位置（参数常量在org.jfree.chart.axis.AxisLocation类中定义）<br />void setDomainGridlinesVisible(boolean visible)  分类轴网格是否可见<br />void setDomainGridlinePaint(Paint paint)  分类轴网格线条颜色<br />void setDomainGridlineStroke(Stroke stroke)  分类轴网格线条笔触<br />void setRangeAxis(ValueAxis axis)   数据区的数据轴<br />void setRangeAxisLocation(AxisLocation location) 数据轴的位置（参数常量在org.jfree.chart.axis.AxisLocation类中定义）<br />void setRangeGridlinesVisible(boolean visible)  数据轴网格是否可见<br />void setRangeGridlinePaint(Paint paint)   数据轴网格线条颜色<br />void setRangeGridlineStroke(Stroke stroke)  数据轴网格线条笔触<br />void setRenderer(CategoryItemRenderer renderer)  数据区的表示者（详见Renderer组）<br />void addAnnotation(CategoryAnnotation annotation) 给数据区加一个注释<br />void addRangeMarker(Marker marker,Layer layer)  给数据区加一个数值范围区域<br /><br />PiePlot(Plot)类：<br />void setDataset(PieDataset dataset)   数据区的1维数据表<br />void setIgnoreNullValues(boolean flag)   忽略无值的分类<br />void setCircular(boolean flag)    饼图是否一定是正圆<br />void setStartAngle(double angle)   饼图的初始角度<br />void setDirection(Rotation direction)   饼图的旋转方向<br />void setExplodePercent(int section,double percent) 抽取的那块（1维数据表的分类下标）以及抽取出来的距离（0.0～1.0），3D饼图无效<br />void setLabelBackgroundPaint(Paint paint)  分类标签的底色<br />void setLabelFont(Font font)    分类标签的字体<br />void setLabelPaint(Paint paint)    分类标签的字体颜色<br />void setLabelLinkMargin(double margin)   分类标签与图的连接线边距<br />void setLabelLinkPaint(Paint paint)   分类标签与图的连接线颜色<br />void setLabelLinkStroke(Stroke stroke)   分类标签与图的连接线笔触<br />void setLabelOutlinePaint(Paint paint)   分类标签边框颜色<br />void setLabelOutlineStroke(Paint paint)   分类标签边框笔触<br />void setLabelShadowPaint(Paint paint)   分类标签阴影颜色<br />void setMaximumLabelWidth(double width)   分类标签的最大长度（0.0～1.0）<br />void setPieIndex(int index)    饼图的索引（复合饼图中用到）<br />void setSectionOutlinePaint(int section,Paint paint) 指定分类饼的边框颜色<br />void setSectionOutlineStroke(int section,Stroke stroke) 指定分类饼的边框笔触<br />void setSectionPaint(int section,Paint paint)  指定分类饼的颜色<br />void setShadowPaint(Paint paint)   饼图的阴影颜色<br />void setShadowXOffset(double offset)   饼图的阴影相对图的水平偏移<br />void setShadowYOffset(double offset)   饼图的阴影相对图的垂直偏移<br />void setLabelGenerator(PieSectionLabelGenerator generator) 分类标签的格式，设置成null则整个标签包括连接线都不显示<br />void setToolTipGenerator(PieToolTipGenerator generator)  MAP中鼠标移上的显示格式<br />void setURLGenerator(PieURLGenerator generator)   MAP中钻取链接格式<br /><br />PiePlot3D(PiePlot)类：<br />void setDepthFactor(double factor)   3D饼图的Z轴高度（0.0～1.0）<br /><br />MultiplePiePlot(Plot)类：<br />void setLimit(double limit)    每个饼图之间的数据关联（详细比较复杂）   <br />void setPieChart(JFreeChart pieChart)   每个饼图的显示方式（见JFreeChart类个PiePlot类）<br /><br />-----------------------------------------------------------------------------------------------------------<br /><br />AbstractRenderer类：<br />void setItemLabelAnchorOffset(double offset)     数据标签的与数据点的偏移<br />void setItemLabelsVisible(boolean visible)     数据标签是否可见<br />void setItemLabelFont(Font font)      数据标签的字体<br />void setItemLabelPaint(Paint paint)      数据标签的字体颜色<br />void setItemLabelPosition(ItemLabelPosition position)    数据标签位置<br />void setPositiveItemLabelPosition(ItemLabelPosition position)   正数标签位置<br />void setNegativeItemLabelPosition(ItemLabelPosition position)   负数标签位置<br />void setOutLinePaint(Paint paint)      图形边框的线条颜色<br />void setOutLineStroke(Stroke stroke)      图形边框的线条笔触<br />void setPaint(Paint paint)       所有分类图形的颜色<br />void setShape(Shape shape)       所有分类图形的形状（如折线图的点）<br />void setStroke(Stroke stroke)       所有分类图形的笔触（如折线图的线）<br />void setSeriesItemLabelsVisible(int series,boolean visible)   指定分类的数据标签是否可见<br />void setSeriesItemLabelFont(int series,Font font)    指定分类的数据标签的字体<br />void setSeriesItemLabelPaint(int series,Paint paint)    指定分类的数据标签的字体颜色<br />void setSeriesItemLabelPosition(int series,ItemLabelPosition position)  数据标签位置<br />void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position) 正数标签位置<br />void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position) 负数标签位置<br />void setSeriesOutLinePaint(int series,Paint paint)    指定分类的图形边框的线条颜色<br />void setSeriesOutLineStroke(int series,Stroke stroke)    指定分类的图形边框的线条笔触<br />void setSeriesPaint(int series,Paint paint)     指定分类图形的颜色<br />void setSeriesShape(int series,Shape shape)     指定分类图形的形状（如折线图的点）<br />void setSeriesStroke(int series,Stroke stroke)     指定分类图形的笔触（如折线图的线）<br /><br />AbstractCategoryItemRenderer(AbstractRenderer)类：<br />void setLabelGenerator(CategoryLabelGenerator generator)   数据标签的格式<br />void setToolTipGenerator(CategoryToolTipGenerator generator)   MAP中鼠标移上的显示格式<br />void setItemURLGenerator(CategoryURLGenerator generator)   MAP中钻取链接格式<br />void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator) 指定分类的数据标签的格式<br />void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator) 指定分类的MAP中鼠标移上的显示格式<br />void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator) 指定分类的MAP中钻取链接格式<br /><br />BarRenderer(AbstractCategoryItemRenderer)类：<br />void setDrawBarOutline(boolean draw)      是否画图形边框<br />void setItemMargin(double percent)      每个BAR之间的间隔<br />void setMaxBarWidth(double percent)      每个BAR的最大宽度<br />void setMinimumBarLength(double min)      最短的BAR长度，避免数值太小而显示不出<br />void setPositiveItemLabelPositionFallback(ItemLabelPosition position)  无法在BAR中显示的正数标签位置<br />void setNegativeItemLabelPositionFallback(ItemLabelPosition position)  无法在BAR中显示的负数标签位置<br /><br />BarRenderer3D(BarRenderer)类：<br />void setWallPaint(Paint paint)    3D坐标轴的墙体颜色<br /><br />StackedBarRenderer(BarRenderer)类：<br />没有特殊的设置<br /><br />StackedBarRenderer3D(BarRenderer3D)类：<br />没有特殊的设置<br /><br />GroupedStackedBarRenderer(StackedBarRenderer)类：<br />void setSeriesToGroupMap(KeyToGroupMap map)  将分类自由的映射成若干个组（KeyToGroupMap.mapKeyToGroup(series,group)）<br /><br />LayeredBarRenderer(BarRenderer)类：<br />void setSeriesBarWidth(int series,double width)  设定每个分类的宽度（注意设置不要使某分类被覆盖）<br /><br />WaterfallBarRenderer(BarRenderer)类：<br />void setFirstBarPaint(Paint paint)   第一个柱图的颜色<br />void setLastBarPaint(Paint paint)   最后一个柱图的颜色<br />void setPositiveBarPaint(Paint paint)   正值柱图的颜色<br />void setNegativeBarPaint(Paint paint)   负值柱图的颜色<br /><br />IntervalBarRenderer(BarRenderer)类：<br />需要传IntervalCategoryDataset作为数据源<br /><br />GanttBarRenderer(IntervalBarRenderer)类：<br />void setCompletePaint(Paint paint)   完成进度颜色<br />void setIncompletePaint(Paint paint)   未完成进度颜色<br />void setStartPercent(double percent)   设置进度条在整条中的起始位置（0.0～1.0）<br />void setEndPercent(double percent)   设置进度条在整条中的结束位置（0.0～1.0）<br /><br />StatisticBarRenderer(BarRenderer)类：<br />需要传StatisticCategoryDataset作为数据源<br /><br />LineAndShapeRenderer(AbstractCategoryItemRenderer)类：<br />void setDrawLines(boolean draw)    是否折线的数据点之间用线连<br />void setDrawShapes(boolean draw)   是否折线的数据点根据分类使用不同的形状<br />void setShapesFilled(boolean filled)   所有分类是否填充数据点图形<br />void setSeriesShapesFilled(int series,boolean filled) 指定分类是否填充数据点图形<br />void setUseFillPaintForShapeOutline(boolean use) 指定是否填充数据点的Paint也被用于画数据点形状的边框<br /><br />LevelRenderer(AbstractCategoryItemRenderer)类：<br />void setItemMargin(double percent)   每个分类之间的间隔<br />void setMaxItemWidth(double percent)   每个分类的最大宽度<br /><br />CategoryStepRenderer(AbstractCategoryItemRenderer)类：<br />void setStagger(boolean shouldStagger)   不同分类的图是否交错<br /><br />MinMaxCategoryRenderer(AbstractCategoryItemRenderer)类：<br />void setDrawLines(boolean drawLines)   是否在每个分类线间画连接线<br />void setGroupPaint(Paint groupPaint)   一组图形连接线的颜色<br />void setGroupStroke(Stroke groupStroke)   一组图形连接线的笔触<br />void setMaxIcon(Icon maxIcon)    最大值的ICON<br />void setMinIcon(Icon minIcon)    最小值的ICON<br />void setObjectIcon(Icon objectIcon)   所有值的ICON<br /><br />AreaRender(AbstractCategoryItemRenderer)类：<br />没有特殊的设置<br /><br />StackedAreaRender(AreaRender)类：<br />没有特殊的设置<br /><br /></span>[/color]
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/187407#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 09:09:24 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/187407</link>
        <guid>http://gaoxing-china.javaeye.com/blog/187407</guid>
      </item>
      <item>
        <title>mysql中文查询问题</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/184892" style="color:red;">http://gaoxing-china.javaeye.com/blog/184892</a>&nbsp;
          发表时间: 2008年04月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          当mysql数据库为latin1编码的时候，直接以中文为条件查不到结果，<br />是需要将查询的中文条件编码为ISO-8859-1，其原因可能是，数据库中的中文保存为了ASCII的编码形式,所以必须以同样的编码条件才可以符合条件。
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/184892#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 21 Apr 2008 13:33:00 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/184892</link>
        <guid>http://gaoxing-china.javaeye.com/blog/184892</guid>
      </item>
      <item>
        <title>我常用的几个linux命令</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/179343" style="color:red;">http://gaoxing-china.javaeye.com/blog/179343</a>&nbsp;
          发表时间: 2008年04月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、cd  /usr    进入根目录下的usr目录下   <br />2、进入tomcat下的bin目录下 <br />   ./shutdown.sh   停止tomcat<br />   ./startup.sh    启动tomcat<br />   进入tomcat下的logs目录下<br />   tail -f catalina.out  查看tomcat的日志输出<br />3、查看进程<br />   ps -ef<br />4、增加可执行权限<br />   chmod 755 *sh      <br />5、查看mysql进程<br />   ps -ef|grep mysql  <br /><br />   <br /><br /><br />3、<br />需要进入mysql的bin目录下<br />进入mysql命令  mysql -uroot -p123456; <br /><br />mysql>show databases;  显示全部数据库<br />mysql>use  databasename;  使用此数据库，databasename为库名<br />mysql>show tables;     显示数据库的全部表<br />mysql>describe tablename; 显示表结构 ，tablename为表名<br /><br /><br /><br />4]如何创建和删除一个数据库？<br /><br />比如我要创建一个名为linux的数据库，应该运行如下命令<br /><br />mysql> create database [数据库名];<br /><br />所以我们应该运行如下的命令，来创建名为linux的数据库<br /><br />mysql> create database linux;<br />Query OK, 1 row affected (0.00 sec)<br /><br />比如我们要把刚才创建的linux数据库删除，应该用下面的命令；<br />mysql> drop database linux;<br />Query OK, 0 rows affected (0.00 sec)<br /><br /><br /><br />Mysql导入导出命令2006-10-05 20:46  <br />     <br />   1.导出整个数据库 <br />　　mysqldump -u 用户名 -p 数据库名 > 导出的文件名<br /><br />　　mysqldump -u name -pwordpass databasename > d:\database.sql<br /><br />　　2.导出一个表<br /><br />　　mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名<br /><br />　　mysqldump -u name -p wordpass tablename> d:\table.sql<br /><br />　　3.导出一个数据库结构<br /><br />　　mysqldump -u name -p -d --add-drop-table database >d:\db_desc.sql<br /><br />　　-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table<br /><br />　　4.导入数据库<br /><br />　　常用source 命令<br /><br />　　进入mysql数据库控制台，<br /><br />　　如mysql -u root -p<br /><br />　　mysql>use 数据库<br /><br />　　然后使用source命令，后面参数为脚本文件(如这里用到的.sql)<br /><br />　　mysql>source d:\db_desc.sql
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/179343#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 03 Apr 2008 17:50:22 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/179343</link>
        <guid>http://gaoxing-china.javaeye.com/blog/179343</guid>
      </item>
      <item>
        <title>我最常用的Ajax请求代码</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/166108" style="color:red;">http://gaoxing-china.javaeye.com/blog/166108</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="javascript">
&lt;script>
//创建xmlhttp请求
    
    function createXMLHttp() {
			var xmlHttp = false;
			try{
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch (e){
				try{
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}catch(E){
					xmlHttp = false;
				}
			}
			if(!xmlHttp && typeof XMLHttpRequest!='undefined'){
				xmlHttp = new XMLHttpRequest();
			}
			return xmlHttp;
	 }
	 //发送xmlhttp请求,并返回时间串
	function callServer1() {
		var xmlHttp = createXMLHttp();
		var url = "../xml/age_pie.xml";//请求的地址，不可以是跨域的，域名不可以不相同
		//alert(url);
		xmlHttp.open("GET",url,true);
		xmlHttp.onreadystatechange = function(){
			if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
			    var xmlDoc = xmlHttp.responseXML.documentElement;//以XML对象的形式返回   
               //var str = xmHttp.responseText;//以文本的形式返回
                 var node = xmlDoc.getElementsByTagName('data');
                var str = node[0].firstChild.nodeValue;
				if(str.search(",")!=-1){
				    
				}
				//document.getElementById('playcount').innerHTML = palystarts[2];
			}	
		}
		xmlHttp.send(null);
	}
&lt;/script>

</pre><br /><br />注意ajax不能跨域请求，会有访问权限问题，解决跨域问题，可以使用中间层，如先在jsp中使用java的URLConnection实现请求，而ajax请求此同服务器的jsp。
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/166108#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 13:16:46 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/166108</link>
        <guid>http://gaoxing-china.javaeye.com/blog/166108</guid>
      </item>
      <item>
        <title>IE和Firefox下javascript的一点不同</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/166026" style="color:red;">http://gaoxing-china.javaeye.com/blog/166026</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、发现IE下input标签的id属性默认和name属性相同，而Firefox必须明确写出id属性的名称否则不能使用id属性。<br />  <br />  如：&lt;input type="text" name="username" value=""><br />  在IE下如下代码可以执行而在Firefox下却不可以：<br />  &lt;script><br />    alert(document.getElementById("username").value);<br />  &lt;/script><br />   必须改为如下代码才可以：<br />   &lt;input type="text" name="username" id="username" value=""><br /><br /><br />以下为转载：<br />1. document.formName.item("itemName") 问题<br />说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];<br />Firefox下,只能使用document.formName.elements["elementName"].<br />解决方法:统一使用document.formName.elements["elementName"].<br /><br />2.集合类对象问题<br />说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象.<br />解决方法:统一使用[]获取集合类对象.<br /><br />3.自定义属性问题<br />说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.<br />解决方法:统一通过getAttribute()获取自定义属性.<br /><br />4.eval("idName")问题<br />说明:IE下,,可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能使用getElementById("idName")来取得id为idName的HTML对象.<br />解决方法:统一用getElementById("idName")来取得id为idName的HTML对象.<br /><br />5.变量名与某HTML对象ID相同的问题<br />说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下则不能。<br />解决方法:使用document.getElementById("idName")代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义.<br /><br />6.const问题<br />说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量.<br />解决方法:统一使用var关键字来定义常量.<br /><br />7.input.type属性问题<br />说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写.<br /><br />8.window.event问题<br />说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用. Firefox必须从源处加入event作参数传递。Ie忽略该参数，用window.event来读取该event。<br />解决方法:<br />IE&Firefox:<br />Submitted(event)"/> …<br />&lt;script language="javascript"><br />function Submitted(evt) {<br />evt=evt?evt:(window.event?window.event:null);<br />}<br />&lt;/script><br /><br />9.event.x与event.y问题<br />说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.<br />解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.<br /><br />10.event.srcElement问题<br />说明:IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.<br />解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target. 请同时注意event的兼容性问题。<br /><br />11.window.location.href问题<br />说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location.<br />解决方法:使用window.location来代替window.location.href.<br /><br />12.模态和非模态窗口问题<br />说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能.<br />解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。<br />如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口. 例如：var parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";<br /><br />13.frame问题<br />以下面的frame为例：<br />&lt;frame src="xxx.html" id="frameId" name="frameName" /><br />(1)访问frame对象:<br />IE:使用window.frameId或者window.frameName来访问这个frame对象. frameId和frameName可以同名。<br />Firefox:只能使用window.frameName来访问这个frame对象.<br />另外，在IE和Firefox中都可以使用window.document.getElementById("frameId")来访问这个frame对象.<br />(2)切换frame内容:<br />在IE 和Firefox中都可以使用window.document.getElementById("testFrame").src = "xxx.html"或window.frameName.location = "xxx.html"来切换frame的内容.<br />如果需要将frame中的参数传回父窗口(注意不是opener,而是parent frame)，可以在frme中使用parent来访问父窗口。例如：parent.document.form1.filename.value="Aqing";<br /><br />14.body问题<br />Firefox的body在body标签没有被浏览器完全读入之前就存在；而IE的body则必须在body标签被浏览器完全读入之后才存在.<br /><br />15. 事件委托方法<br />IE：document.body.onload = inject; //Function inject()在这之前已被实现<br />Firefox：document.body.onload = inject();<br /><br />16. firefox与IE的父元素(parentElement)的区别<br />IE：obj.parentElement<br />firefox：obj.parentNode<br />解决方法: 因为firefox与IE都支持DOM,因此使用obj.parentNode是不错选择.<br /><br />17.cursor:hand VS cursor:pointer<br />firefox不支持hand，但ie支持pointer<br />解决方法: 统一使用pointer<br /><br />18.innerText在IE中能正常工作，但是innerText在FireFox中却不行. 需用textContent。<br />解决方法:<br />if(navigator.appName.indexOf("Explorer") > -1){<br />document.getElementById('element').innerText = "my text";<br />} else{<br />document.getElementById('element').textContent = "my text";<br />}<br /><br />19. FireFox中设置HTML标签的style时，所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的。<br /><br />20. ie,firefox以及其它浏览器对于 table 标签的操作都各不相同，在ie中不允许对table和tr的innerHTML赋值，使用js增加一个tr时，使用appendChild方法也不管用。<br />解决方法：<br />//向table追加一个空行：<br />var row = otable.insertRow(-1);<br />var cell = document.createElement("td");<br />cell.innerHTML = " ";<br />cell.className = "XXXX";<br />row.appendChild(cell);<br /><br />21. padding 问题<br />padding 5px 4px 3px 1px FireFox无法解释简写,<br />必须改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;<br /><br />22. 消除ul、ol等列表的缩进时<br />样式应写成:list-style:none;margin:0px;padding:0px;<br />其中margin属性对IE有效，padding属性对FireFox有效<br /><br />23. CSS透明<br />IE：filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。<br />FF：opacity:0.6。<br /><br />24. CSS圆角<br />IE：不支持圆角。<br />FF： -moz-border-radius:4px，或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。<br /><br />25. CSS双线凹凸边框<br />IE：border:2px outset;。<br />FF： -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;<br /><br />26. 对select的options集合操作<br />枚举元素除了[]外，selectName.options.item()也是可以的, 另外selectName.options.length, selectName.options.add/remove都可以在两种浏览器上使用。注意在add后赋值元素，否则会失败（本人试验如此）。<br /><br />27. XMLHTTP的区别<br />//mf<br />if (window.XMLHttpRequest) //mf<br />{<br />xmlhttp=new XMLHttpRequest()<br />xmlhttp.<br />xmlhttp.open("GET",url,true)<br />xmlhttp.send(null)<br />}<br />//ie<br />else if (window.ActiveXObject) // code for IE<br />{<br />xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")<br />if (xmlhttp)<br />{<br />xmlhttp.<br />xmlhttp.open("GET",url,true)<br />xmlhttp.send()<br />}<br />}<br />}<br /><br />28. innerHTML的区别<br />Firefox不支持innerHTML, 解决办法可以如下<br />rng = document.createRange();<br />el = document.getElementById(elementid);<br />rng.setStartBefore(el);<br />htmlFrag = rng.createContextualFragment(content);<br />while (el.hasChildNodes()) //清除原有内容，加入新内容<br />el.removeChild(el.lastChild);<br />el.appendChild(htmlFrag);<br /><br />29. img的src刷新问题<br />在IE 下可以用&lt;img id="pic" onclick= "this.src= &apos;aa.php&apos;" src="aa.php" style="cursor: pointer"/> 可以刷新图片，但在FireFox下不行。主要是缓存问题，在地址后面加个随机数就解决了。编辑onclick事件代码如下： "this.src=this.src+'?'+Math.random()"
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/166026#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 09:54:30 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/166026</link>
        <guid>http://gaoxing-china.javaeye.com/blog/166026</guid>
      </item>
      <item>
        <title>java程序员英文单词缩写的积累</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/135646" style="color:red;">http://gaoxing-china.javaeye.com/blog/135646</a>&nbsp;
          发表时间: 2007年10月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          API (Application Programming Interface) 应用编程接口<br />JRE (Java Runtime Enviroment) Java 运行时环境<br />JDK (Java Development Kit) Java开发工具包<br />JVM (Java Virtual Machine) Java虚拟机<br />JNI (Java Native Interface) Java本地接口<br />AWT (Abstract Windows Toolekit) 抽象窗口工具箱<br /><br /><br />JNDI (Java Naming &amp; Directory Interface) JAVA命名目录服务.主要提供的功能是：提供一个目录系统，让其它各地的应用程序在其上面留下自己的索引，从而满足快速查找和定位分布式应用程序的功能。<br />JMS (Java Message Service)JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.<br />JTA (Java Transcation API) JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.<br />JAF (Java Action FrameWork) JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.<br />RMI (Remote Method Interface) 远程方法调用<br /><br />CVS (Concurrent Versions System) 版本控制器<br />SVN (Subversion) 版本控制器<br /><br />TC (Test Case)&nbsp; 测试用例，是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果，以便测试某个程序路径或核实是否满足某个特定需求。指对一项特定的软件产品进行测试任务的描述，体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等，并形成文档。<br />TDD (Test-Driven Development) 测试驱动开发<br /><br /><br />HTTP&nbsp;&nbsp; Hypertext Transfer Protocol 超文本传输协议<br />FTP&nbsp;&nbsp; File Transfer Protocol&nbsp;&nbsp; 文件传输协议<br />TCP/IP&nbsp; Transmission Control Protocol/Internet Protocol&nbsp; 传输控制协议和互联网协议<br />SMTP&nbsp; Simple Mail Transfer Protocol&nbsp; 简单邮件传输协议<br />LAN&nbsp;&nbsp; Local area network 局域网<br />IPX Internetwork Packet Exchange&nbsp;&nbsp;&nbsp;&nbsp; Internet包交换<br />SNA&nbsp; Systems Network Architecture 系统网络体系结构<br />DNS&nbsp; domain name service&nbsp;&nbsp; 域名服务<br />ISP Internet Service Provider&nbsp;&nbsp;&nbsp; Internet服务提供商<br />DHCP&nbsp; Dynamic Host Configuration Protocol 动态主机配置协议<br />IETF&nbsp; Internet Engineering Task Force&nbsp;&nbsp; Internet工程任务组<br />URI（Uniform Resource Identifier）统一资源标识符<br />URL (Uniform Resource Locator)统一资源定位器，URI的一个子集<br />REST (Representational State Transfer)&nbsp; 表述性状态转移<br />HTML (Hypertext Markup Language)超文本标记语言<br />RFC (Request fo Comment,Internet标准(草案)) <br />HREF (Hypertext reference&nbsp; 超文本连接)<br /><br /><br />IMAP是Internet Message Access Protocol的缩写，是用于访问服务器上所存储的邮件的Internet协议。<br /><br /><br /><br />DBCP (Database connection Pools) 数据库连接池<br />CGLIB (Code Generation Library)cglib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。<br />SOAP (Simple Object Access Protocal)简单对象访问协议,它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下，软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性，这有助于大量异构程序和平台之间的互操作性，从而使存在的应用程序能够被广泛的用户访问。<br />SOA (Service Oriented Architecture) 面向服务的架构,其实质就是要将系统模型与系统实现分割开来。<br />WSDL (Web Service Description Lanaguage) 网络服务描述语言 ,是一门基于 XML 的语言，用于描述 Web Services 以及如何对它们进行访问。<br />UDDI (Universal Description , Discovery and Ingergration)是一种目录服务，企业可以使用它对 Web services 进行注册和搜索。可译为&ldquo;通用描述、发现与集成服务&rdquo;。<br /><br /><br />DWR (Direct Web Remoting) java的远程web调用框架<br /><br /><br /><br /><br /><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="color: #ff0000">注：这只是个开始！</span></strong></p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/135646#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 26 Oct 2007 10:33:01 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/135646</link>
        <guid>http://gaoxing-china.javaeye.com/blog/135646</guid>
      </item>
      <item>
        <title>实时曲线在Web下的实现</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/135641" style="color:red;">http://gaoxing-china.javaeye.com/blog/135641</a>&nbsp;
          发表时间: 2007年10月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 我使用JFreeChart在Applet中绘图,使用了Ajax取数，数据由接口负责提供，注意我没有在Applet中使用线程，而是在加载Applet的Html页面中启用了javascript线程定时由Ajax请求数据接口获得数据，再有javascript负责调用Applet里的绘图方法，此方法是对JFreeChart中实时曲线图中数据填充方法的简单封装。<br />
&nbsp;&nbsp; 此方法实现比较简单，主要难点实时图形的绘制由JFreeChart实现，其它只是辅助取数和做图形的载体。<br />
&nbsp;&nbsp; 本人对Applet不是很熟所以，初次尝试由Applet实现直接连接数据库取数，发现难度比较大，所以改由Ajax请求数据提供接口取数，避开了Applet的安全性问题。
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/135641#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 26 Oct 2007 10:27:45 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/135641</link>
        <guid>http://gaoxing-china.javaeye.com/blog/135641</guid>
      </item>
      <item>
        <title>ibatis连接Mysql数据库</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/88050" style="color:red;">http://gaoxing-china.javaeye.com/blog/88050</a>&nbsp;
          发表时间: 2007年06月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">我在使用ibatis连接mysql数据库时，出现如下错误，在长时间未操作系统后，首次（操作）登录出现的错误。</font></p>
<p>这种问题好像是使用陈旧的数据库连接池连接问题，mysql会在长时间为使用连接时关闭数据库连接，而我又使用了此已经关闭了的连接，所以出现如下错误，这只是我自己的认识，不知道如何解决。希望的到帮助，谢谢。</p>
<p>我的数据库连接配置文件如下</p>
<p><font face="Arial"><font face="Arial"><!--l version="1.0" encoding="utf-8"--></font></font></p>
<font face="Arial">
<div class="code_title">java 代码</div>
</font><font face="Arial">
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span><!--l version=</sp--><span class="string">&quot;1.0&quot;</span><span>&nbsp;encoding=</span><span class="string">&quot;utf-8&quot;</span><span>&nbsp;?&gt; &nbsp;&nbsp;</span></span> </span></li>
    <li class=""><span><!--CTYPE sqlMapConfig PUBLIC </sp--><span class="string">&quot;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;Config&nbsp;2.0//EN&quot;</span><span>&nbsp;</span><span class="string">&quot;http://www.ibatis.com/dtd/sql-map-config-2.dtd&quot;</span><span>&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span><sqlmapconfig></sqlmapconfig>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;<span class="string">&quot;false&quot;</span><span>&nbsp;enhancementEnabled=</span><span class="string">&quot;true&quot;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;lazyLoadingEnabled=</span><span class="string">&quot;true&quot;</span><span>&nbsp;maxRequests=</span><span class="string">&quot;32&quot;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;maxSessions=</span><span class="string">&quot;10&quot;</span><span>&nbsp;maxTransactions=</span><span class="string">&quot;5&quot;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;useStatementNamespaces=</span><span class="string">&quot;false&quot;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;/&gt; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;JDBC&quot;</span><span>&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;SIMPLE&quot;</span><span>&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;JDBC.Driver&quot;</span><span>&nbsp;value=</span><span class="string">&quot;com.mysql.jdbc.Driver&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;JDBC.ConnectionURL&quot;</span><span>&nbsp;value=</span><span class="string">&quot;jdbc:mysql://*************?characterEncoding=GBK&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;JDBC.Username&quot;</span><span>&nbsp;value=</span><span class="string">&quot;****&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;JDBC.Password&quot;</span><span>&nbsp;value=</span><span class="string">&quot;*****&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<!-- OPTIONAL PROPERTIES BELOW --> &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.MaximumActiveConnections&quot;</span><span>&nbsp;value=</span><span class="string">&quot;10&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.MaximumIdleConnections&quot;</span><span>&nbsp;value=</span><span class="string">&quot;5&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.MaximumCheckoutTime&quot;</span><span>&nbsp;value=</span><span class="string">&quot;120000&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.TimeToWait&quot;</span><span>&nbsp;value=</span><span class="string">&quot;10000&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.PingQuery&quot;</span><span>&nbsp;value=</span><span class="string">&quot;select&nbsp;*&nbsp;from&nbsp;*****&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.PingEnabled&quot;</span><span>&nbsp;value=</span><span class="string">&quot;true&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.PingConnectionsOlderThan&quot;</span><span>&nbsp;value=</span><span class="string">&quot;0&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;Pool.PingConnectionsNotUsedFor&quot;</span><span>&nbsp;value=</span><span class="string">&quot;0&quot;</span><span>/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;<!-- 如果有其他xml配置文件，可以包含进来 --> &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="string">&quot;**********************&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span> </span></li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>错误输出如下：</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>HTTP&nbsp;Status&nbsp;</span><span class="number">500</span><span>&nbsp;-&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>-------------------------------------------------------------------------------- &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>type&nbsp;Exception&nbsp;report &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>message&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>description&nbsp;The&nbsp;server&nbsp;encountered&nbsp;an&nbsp;internal&nbsp;error&nbsp;()&nbsp;that&nbsp;prevented&nbsp;it&nbsp;from&nbsp;fulfilling&nbsp;</span><span class="keyword">this</span><span>&nbsp;request. &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>exception&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>com.ibatis.dao.client.DaoException:&nbsp;Failed&nbsp;to&nbsp;queryForList&nbsp;-&nbsp;id&nbsp;[getAdminByName],&nbsp;parameterObject&nbsp;[admin].&nbsp;&nbsp;Cause:&nbsp;com.ibatis.common.jdbc.exception.NestedSQLException:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>---&nbsp;The&nbsp;error&nbsp;occurred&nbsp;in&nbsp;com/vodone/cpms/sql/Admin.xml.&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>---&nbsp;The&nbsp;error&nbsp;occurred&nbsp;</span><span class="keyword">while</span><span>&nbsp;executing&nbsp;query.&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>---&nbsp;Check&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;*&nbsp;from&nbsp;admin&nbsp;where&nbsp;user_name&nbsp;=&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>---&nbsp;Check&nbsp;the&nbsp;SQL&nbsp;Statement&nbsp;(preparation&nbsp;failed).&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>---&nbsp;Cause:&nbsp;java.sql.SQLException:&nbsp;No&nbsp;operations&nbsp;allowed&nbsp;after&nbsp;connection&nbsp;closed. &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>Connection&nbsp;was&nbsp;closed&nbsp;due&nbsp;to&nbsp;the&nbsp;following&nbsp;exception: &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>**&nbsp;BEGIN&nbsp;NESTED&nbsp;EXCEPTION&nbsp;**&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>java.sql.SQLException &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>MESSAGE:&nbsp;Communication&nbsp;link&nbsp;failure:&nbsp;java.io.EOFException,&nbsp;underlying&nbsp;cause:&nbsp;</span><span class="keyword">null</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>**&nbsp;BEGIN&nbsp;NESTED&nbsp;EXCEPTION&nbsp;**&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>java.io.EOFException &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>STACKTRACE: &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>java.io.EOFException &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:</span><span class="number">1319</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:</span><span class="number">1463</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:</span><span class="number">1854</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:</span><span class="number">1109</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:</span><span class="number">1203</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:</span><span class="number">1164</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.Connection.execSQL(Connection.java:</span><span class="number">2087</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.Connection.execSQL(Connection.java:</span><span class="number">2049</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.Connection.execSQL(Connection.java:</span><span class="number">2030</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.Connection.rollbackNoChecks(Connection.java:</span><span class="number">3004</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.mysql.jdbc.Connection.rollback(Connection.java:</span><span class="number">1458</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:</span><span class="number">621</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:</span><span class="number">215</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:</span><span class="number">48</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:</span><span class="number">89</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:</span><span class="number">123</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:</span><span class="number">610</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:</span><span class="number">584</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:</span><span class="number">101</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:</span><span class="number">78</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForList(SqlMapDaoTemplate.java:</span><span class="number">203</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.vodone.cpms.dao.impl.AdminDaoImpl.getAdminByUserName(AdminDaoImpl.java:</span><span class="number">16</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native&nbsp;Method) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:</span><span class="number">39</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:</span><span class="number">25</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.lang.reflect.Method.invoke(Method.java:</span><span class="number">589</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:</span><span class="number">72</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;$Proxy8.getAdminByUserName(Unknown&nbsp;Source) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.vodone.cpms.service.AdminService.getAdmin(AdminService.java:</span><span class="number">27</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.vodone.cpms.servlet.ControlCenterServlet.login(ControlCenterServlet.java:</span><span class="number">559</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.vodone.cpms.servlet.ControlCenterServlet.doGet(ControlCenterServlet.java:</span><span class="number">47</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.vodone.cpms.servlet.ControlCenterServlet.doPost(ControlCenterServlet.java:</span><span class="number">612</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:</span><span class="number">709</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:</span><span class="number">802</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:</span><span class="number">237</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:</span><span class="number">157</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:</span><span class="number">214</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:</span><span class="number">104</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:</span><span class="number">520</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:</span><span class="number">198</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:</span><span class="number">152</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:</span><span class="number">104</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:</span><span class="number">520</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:</span><span class="number">137</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:</span><span class="number">104</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:</span><span class="number">118</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:</span><span class="number">102</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:</span><span class="number">520</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:</span><span class="number">109</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:</span><span class="number">104</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:</span><span class="number">520</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:</span><span class="number">929</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:</span><span class="number">160</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:</span><span class="number">799</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:</span><span class="number">705</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:</span><span class="number">577</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:</span><span class="number">683</span><span>) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.lang.Thread.run(Thread.java:</span><span class="number">626</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>**&nbsp;END&nbsp;NESTED&nbsp;EXCEPTION&nbsp;**&nbsp;&nbsp;</span> </li>
</ol>
</div>
<div class="code_title">java 代码</div>
<p>&nbsp;</p>
</font>
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/88050#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 08 Jun 2007 09:36:27 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/88050</link>
        <guid>http://gaoxing-china.javaeye.com/blog/88050</guid>
      </item>
      <item>
        <title>DWR在MVC模式下的使用</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/87612" style="color:red;">http://gaoxing-china.javaeye.com/blog/87612</a>&nbsp;
          发表时间: 2007年06月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: 18pt">我在使用DWR时直接用JS调用了业务类方法，系统从实现上不符合一般WEB系统开发的MVC模式，这种使用是否存在问题，以及使用方式的介绍.</span>
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/87612#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 07 Jun 2007 10:48:25 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/87612</link>
        <guid>http://gaoxing-china.javaeye.com/blog/87612</guid>
      </item>
      <item>
        <title>关于ibatis批量操作的代码</title>
        <author>gaoxing_china</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gaoxing-china.javaeye.com">gaoxing_china</a>&nbsp;
          链接：<a href="http://gaoxing-china.javaeye.com/blog/80945" style="color:red;">http://gaoxing-china.javaeye.com/blog/80945</a>&nbsp;
          发表时间: 2007年05月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Mysql数据库，批量入库操作<br /><strong>使用ibatis批处理</strong><br />代码如下：<br />public int addMessages(List list) {<br />    int result = 0;<br />    try {<br />        //this.getSqlMapTransactionManager().startTransaction();<br />        this.startBatch();<br />        for(int i=0;i&lt;list.size();i++) {<br />	  this.insert("addMessage",(Message)list.get(i));<br />        }<br />        this.executeBatch();<br />	//this.getSqlMapTransactionManager().commitTransaction();<br />	result = 1;<br />	} catch (Exception e) {<br />	   result = 0;<br />	   e.printStackTrace();<br />	} finally {<br />	   try {<br />		//this.getSqlMapTransactionManager().endTransaction();<br />	    } catch (Exception e) {<br />		e.printStackTrace();<br />	    }<br />	return result;	<br />   }		<br />}<br /><br /><br />我将事务管理的代码注掉了是没有错误的，但是不能实现事务管理。<br />我加的事务代码是会报错的，希望各位大侠指点谜经。我在这里先谢谢了！<br /><br />加上我的事务管理代码报如下错误：<br /><br /><br /><br />com.ibatis.common.jdbc.exception.NestedSQLException: Could not start transaction.  Cause: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not start a new transaction.  A transaction is already started.<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not start a new transaction.  A transaction is already started.<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.startTransaction(SqlMapExecutorDelegate.java:728)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.startTransaction(SqlMapSessionImpl.java:125)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.startTransaction(SqlMapClientImpl.java:102)<br />	at com.vodone.cpms.dao.impl.MessageDaoImpl.addMessages(MessageDaoImpl.java:26)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />	at java.lang.reflect.Method.invoke(Unknown Source)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not start a new transaction.  A transaction is already started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:46)<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:39)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.startTransaction(SqlMapExecutorDelegate.java:726)<br />	... 11 more<br /><br />Caused by: <br />com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not start a new transaction.  A transaction is already started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:46)<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:39)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.startTransaction(SqlMapExecutorDelegate.java:726)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.startTransaction(SqlMapSessionImpl.java:125)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.startTransaction(SqlMapClientImpl.java:102)<br />	at com.vodone.cpms.dao.impl.MessageDaoImpl.addMessages(MessageDaoImpl.java:26)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />	at java.lang.reflect.Method.invoke(Unknown Source)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br /><br />Caused by: <br />com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not start a new transaction.  A transaction is already started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:46)<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.begin(TransactionManager.java:39)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.startTransaction(SqlMapExecutorDelegate.java:726)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.startTransaction(SqlMapSessionImpl.java:125)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.startTransaction(SqlMapClientImpl.java:102)<br />	at com.vodone.cpms.dao.impl.MessageDaoImpl.addMessages(MessageDaoImpl.java:26)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br />	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br />	at java.lang.reflect.Method.invoke(Unknown Source)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br />Exception in thread "main" com.ibatis.dao.client.DaoException: Error committing SQL Map transaction.  Cause: com.ibatis.common.jdbc.exception.NestedSQLException: Could not commit transaction.  Cause: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: Could not commit transaction.  Cause: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransaction.commit(SqlMapDaoTransaction.java:43)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransactionManager.commitTransaction(SqlMapDaoTransactionManager.java:75)<br />	at com.ibatis.dao.engine.impl.DaoContext.commitTransaction(DaoContext.java:101)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:73)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br />Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: Could not commit transaction.  Cause: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:761)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.commitTransaction(SqlMapSessionImpl.java:133)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.commitTransaction(SqlMapClientImpl.java:110)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransaction.commit(SqlMapDaoTransaction.java:40)<br />	... 6 more<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.commit(TransactionManager.java:80)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:759)<br />	... 9 more<br /><br />Caused by: <br />com.ibatis.common.jdbc.exception.NestedSQLException: Could not commit transaction.  Cause: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:761)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.commitTransaction(SqlMapSessionImpl.java:133)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.commitTransaction(SqlMapClientImpl.java:110)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransaction.commit(SqlMapDaoTransaction.java:40)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransactionManager.commitTransaction(SqlMapDaoTransactionManager.java:75)<br />	at com.ibatis.dao.engine.impl.DaoContext.commitTransaction(DaoContext.java:101)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:73)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br />Caused by: com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.commit(TransactionManager.java:80)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:759)<br />	... 9 more<br /><br />Caused by: <br />com.ibatis.sqlmap.engine.transaction.TransactionException: TransactionManager could not commit.  No transaction is started.<br />	at com.ibatis.sqlmap.engine.transaction.TransactionManager.commit(TransactionManager.java:80)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.commitTransaction(SqlMapExecutorDelegate.java:759)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.commitTransaction(SqlMapSessionImpl.java:133)<br />	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.commitTransaction(SqlMapClientImpl.java:110)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransaction.commit(SqlMapDaoTransaction.java:40)<br />	at com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransactionManager.commitTransaction(SqlMapDaoTransactionManager.java:75)<br />	at com.ibatis.dao.engine.impl.DaoContext.commitTransaction(DaoContext.java:101)<br />	at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:73)<br />	at $Proxy1.addMessages(Unknown Source)<br />	at com.vodone.cpms.service.MessageService.addMessages(MessageService.java:26)<br />	at com.vodone.cpms.service.MessageService.main(MessageService.java:70)<br /><br /><br /><br /><br />晕，可我没找到那里开始事务了啊。<br />我发现ibatis的batch自动提交了每次的数据库操作，所以当操作发生异常时，怎么样能实现事务的回滚，我自己加的事务又不能执行，郁闷。帖子还被评为新手贴，更打击人了。是啊自己刚用ibatis，不够强啊。<br />那为大侠对ibatis的batch比较熟，同事又能进行事务管理，请多指点。<br />小弟不盛感激！！！！<br /><img src="/images/smiles/icon_cry.gif"/><img src="/images/smiles/icon_cry.gif"/><img src="/images/smiles/icon_cry.gif"/><br /><br />最后补充一句，我是用的mysql数据库。
          <br/>
          <span style="color:red;">
            <a href="http://gaoxing-china.javaeye.com/blog/80945#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 18 May 2007 17:50:20 +0800</pubDate>
        <link>http://gaoxing-china.javaeye.com/blog/80945</link>
        <guid>http://gaoxing-china.javaeye.com/blog/80945</guid>
      </item>
  </channel>
</rss>