这篇文字写的很好,推荐给自己和大家!
事务策略: 了解事务陷阱
在 Java 平台中实现事务时要注意的常见错误
级别: 中级
Mark Richards, 主管和高级技术架构师, Collaborative Consulting, LLC
2009 年 3 月 06 日
事务处理的目标应该是实现数据的高度完整性和一致性。本文是为 Java 平台开发有效事务策略 系列文章 的第一篇,介绍了一些妨碍您实现此目标的常见事务陷阱。本系列作者 Mark Richards 通过使用 Spring Framework 和企业 JavaBeans(Enterprise JavaBeans,EJB)3.0 规范中的代码示例解释了这些极其常见的错误。
在应用程序中使用事务常常是为了维护高度的数据完整性和一致性。如果不关心数据的质量,就不必使用事务。毕竟,Java 平台中的事务支持会降低性能,引发锁定问题和数据库并发性问题,而且会增加应用程序的复杂性。
关于本系列
事务提高了数据的质量、完整性和一致性,使应用程序更健壮。在 Java 应用程序中实现成功的事务处理不是一件容易的事,设计和编码几乎一样重要。在这份新的 系列文章 中,Mark Richards 将带领您设计一个有效的事务策略,适合从简单应用程序到高性能事务处理等各种用例。
但是不关心事务的开 ......
/**
* 有关日期工具类(extends TimeUtil)
*
* TimeUtil主要功能有:
* 1.各种日期类型(字符,util.Date,sql.Date,Calendar等)转换
* 2.获取指定日期的年份,月份,日份,小时,分,秒,毫秒
* 3.获取当前/系统日期(指定日期格式)
* 4.获取字符日期一个月的天数
* 5.获取指定月份的第一天,最后一天
*
* DateUtil主要功能有:
* 1.日期比较
* 2.获取2个字符日期的天数差,周数差,月数差,年数差
* 3.日期添加
* 4.判断给定日期是不是润年
*/package com.aimtime.financing.service.util;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;public abstract class TimeUtil {
//---当前日期的年,月,日,时,分,秒
public static Calendar now = Calendar.getInstance();
int year = now.get( Calendar.YEAR );
int date = now.get( Calendar.DAY_OF_MONTH );
int month = now.get( Calendar.MONTH ) + 1;
int hour = now.get( Calendar.HOUR );
int min = n ......
问题:在存储过程中,有时会遇到比较变态的东西,如一个存储过程中有output返回值,有return返回值,还有查询的返回值TABLE,遇到这样的存储过程真是郁闷,一次性把所有的返回值取出来还真的有点麻烦。
1、 首先来看这个存储过程吧
CREATE PROCEDURE ParaTest
@paraout varchar(20) output
AS
BEGIN
SET NOCOUNT ON
SELECT * from USERS
SELECT @paraout = 'outputvalue'
RETURN 10
END
为了方便大家看得更加清清楚楚,我已经将数据赋值写得很直观的了。USERS是一个表
在sql中要取得这个存储过程的返回值可以用以下方式
DECLARE @paraoutput varchar(20)
DECLARE @parareturn varchar(20)
EXEC @parareturn= ParaTest @paraout = @paraoutput output
SELECT @paraoutput AS 'output',@parareturn AS 'return'
结果如下
2、 用C#取得返回值的方法如下(不做解释了,很简单的)
string stroutput = "";
&nbs ......
问题:在存储过程中,有时会遇到比较变态的东西,如一个存储过程中有output返回值,有return返回值,还有查询的返回值TABLE,遇到这样的存储过程真是郁闷,一次性把所有的返回值取出来还真的有点麻烦。
1、 首先来看这个存储过程吧
CREATE PROCEDURE ParaTest
@paraout varchar(20) output
AS
BEGIN
SET NOCOUNT ON
SELECT * from USERS
SELECT @paraout = 'outputvalue'
RETURN 10
END
为了方便大家看得更加清清楚楚,我已经将数据赋值写得很直观的了。USERS是一个表
在sql中要取得这个存储过程的返回值可以用以下方式
DECLARE @paraoutput varchar(20)
DECLARE @parareturn varchar(20)
EXEC @parareturn= ParaTest @paraout = @paraoutput output
SELECT @paraoutput AS 'output',@parareturn AS 'return'
结果如下
2、 用C#取得返回值的方法如下(不做解释了,很简单的)
string stroutput = "";
&nbs ......
java入门
一、java是什么
java是一种计算机编程语言,软件开发平台,软件运行平台,还是一种软件部署环境。
二、java有什么
java技术有三个分支:Java SE、Java EE和Java ME。
三、java能干什么
主要有三个方面:桌面应用程序的开发、企业级的应用和嵌入式设备。
四、java的特点
java是一种简单的、面向对象的、分布式的、解释型的、健壮的、安全的、结构中立的、可移植的、性能优异的、多线程的、动态的语言。
五、构建java的环境
第一步:下载jdk。
第二步:安装jdk。
第三步:配置环境变量。
环境变量的配置主要有三个方面:path、classpath和JAVA_HOME。
path:配置到jdk的安装目录\bin。
JAVA_HOME:配置到jdk的安装目录下。
classpath:一般我们在配置时,都要配置“.;”,“.”在这里表示的是当前目录下。
第四步:检测。通过在cmd中输入java和javac。
六、HelloWorld
我们学习任何编程语言都是从HelloWorld开始的,它是最简单的、基本的程序。
HelloWorld的代码如下:
public class HelloWorld {
public static void main(String [] args) {
System.out.println("Hello World!");
System.out.pr ......
Java集合的Stack、
Queue、Map的遍历
在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack、Queue、Map类型的遍
历,还是有一些讲究的。
最近看了一些代码,在便利Map时候,惨不忍睹,还有一些是遍历错误,忽略了队列、栈与普通Collection的差别导致的,这些代码就不作
为反面教材了。
下面是常用的写法:
一、Map的遍历
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.Map;
/**
* Map的遍历,这个遍历比较特殊,有技巧
*
* @author
leizhimin 2009-7-22 15:15:34
*/
public
class
TestMap {
public
static
void
main(String[] args) {
Map<String,
String> map = new
HashMap<String,
String>();
map.put("1"
,
&q ......
最近项目中有需要用到股价,于是在网上找了一番,没有一个直接就能用的。自己摸索了一下,终于搞定一个顾大家参考。
package test;
import java.util.Arrays;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
*
* 功能概述:<br>
*
* @author applerockhool
* @version 2010-4-29
*/
public class Test {
public static void main(String[] args) {
try {
// WebService URL,详细说明直接进入网址
String service_url = "http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(service_url));
// 设置要调用的方法
call.setOperationName(new QName("http://WebXml.com.cn/",
"getStockInfoByCode"));
// 加入参数
call.addParameter(
new QName("http://WebXml.com.cn/", "theStockCode"),
org.apache.axis.encod ......