JavaÊÂÎñAPI
JavaÊÂÎñAPI£¨JTA£»Java Transaction API£©ºÍËüµÄͬ°ûJavaÊÂÎñ·þÎñ(JTS£»Java TransactionService)£¬ÎªJ2EEƽ̨ÌṩÁË·Ö²¼Ê½ÊÂÎñ·þÎñ¡£Ò»¸ö·Ö²¼Ê½ÊÂÎñ£¨distributedtransaction£©°üÀ¨Ò»¸öÊÂÎñ¹ÜÀíÆ÷£¨transaction manager£©ºÍÒ»¸ö»ò¶à¸ö×ÊÔ´¹ÜÀíÆ÷(resource manager)¡£Ò»¸ö×ÊÔ´¹ÜÀíÆ÷£¨resource manager£©ÊÇÈÎÒâÀàÐ͵ij־û¯Êý¾Ý´æ´¢¡£ÊÂÎñ¹ÜÀíÆ÷£¨transaction manager£©³Ðµ£×ÅËùÓÐÊÂÎñ²ÎÓëµ¥ÔªÕßµÄÏ໥ͨѶµÄÔðÈΡ£Ï³µÕ¾ÏÔʾÁËÊÂÎñ¹ÜÀíÆ÷ºÍ×ÊÔ´¹ÜÀíµÄ¼äµÄ¹ØÏµ¡£
¡¡¡¡JTAÊÂÎñ±ÈJDBCÊÂÎñ¸üÇ¿´ó¡£Ò»¸öJTAÊÂÎñ¿ÉÒÔÓжà¸ö²ÎÓëÕߣ¬¶øÒ»¸öJDBCÊÂÎñÔò±»ÏÞ¶¨ÔÚÒ»¸öµ¥Ò»µÄÊý¾Ý¿âÁ¬½Ó¡£ÏÂÁÐÈÎÒ»¸öJavaƽ̨µÄ×é¼þ¶¼¿ÉÒÔ²ÎÓëµ½Ò»¸öJTAÊÂÎñÖУº
¡¡¡¡.JDBCÁ¬½Ó
¡¡¡¡.JDO PersistenceManager ¶ÔÏó
¡¡¡¡.JMS ¶ÓÁÐ
¡¡¡¡.JMS Ö÷Ìâ
¡¡¡¡.ÆóÒµJavaBeans£¨EJB£©
¡¡¡¡.Ò»¸öÓÃJ2EE Connector Architecture ¹æ·¶±àÒëµÄ×ÊÔ´·ÖÅäÆ÷¡£
¡¡¡¡Ê¹ÓÃJTAµÄÊÂÎñ»®·Ö
¡¡¡¡ÒªÓÃJTAÀ´»®·ÖÒ»¸öÊÂÎñ£¬Ó¦ÓóÌÐòµ÷ÓÃjavax.transaction.UserTransaction½Ó¿ÚÖеķ½·¨¡£Ê¾Àý4ÏÔʾÁËÒ»¸öµäÐ͵ÄJNDIËÑË÷µÄUseTransaction¶ÔÏó¡£
import javax.transaction.*£»
import javax.naming.*£»
// ...
InitialContext ctx = new InitialContext()£»
Object txObj = ctx.lookup("java:comp/UserTransaction"£»)£»
UserTransaction utx = (UserTransaction) txObj£»
Ó¦ÓóÌÐòÓÐÁËUserTransaction¶ÔÏóµÄÒýÓÃÖ®ºó£¬¾Í¿ÉÒÔÏóʾÀý5ÄÇÑùÀ´Æð¶¯ÊÂÎñ¡£
utx.begin()£»
// ...
DataSource ds = obtainXADataSource()£»
Connection conn = ds.getConnection()£»
pstmt = conn.prepareStatement("£»UPDATE MOVIES ..."£»)£»
pstmt.setString(1£¬ "£»Spinal Tap"£»)£»
pstmt.executeUpdate()£»
// ...
utx.commit()£»
// ...
µ±Ó¦ÓóÌÐòµ÷ÓÃcommit()ʱ£¬ÊÂÎñ¹ÜÀíÆ÷ʹÓÃÁ½¶ÎÌá½»ÐÒéÀ´½áÊøÊÂÎñ¡£JTAÊÂÎñ¿ØÖƵķ½·¨£º
javax.transaction.UserTransaction½Ó¿ÚÌṩÁËÏÂÁÐÊÂÎñ¿ØÖÆ·½·¨£º
public void begin()
public void commit()
public void rollback()
public void getStatus()
public void setRollbackOnly()
public void setTransactionTimeout(int)
Ó¦ÓóÌÐòµ÷ÓÃbegin()À´Æð¶¯ÊÂÎñ£¬¼´¿Éµ÷ÓÃcommit()Ò²¿ÉÒÔµ÷ÓÃrollback()À´½áÊøÊÂÎñ¡£
¡¡¡¡Ê¹ÓÃJTAºÍJDBC
¡¡¡¡¡¡¿ª·¢ÈËÔ±¾³£Ê¹ÓÃJDBCÀ´×÷ΪDAOÀàÖеĵײãÊý¾Ý²Ù×÷¡£Èç¹û¼Æ»®Ê¹ÓÃJTAÀ´»®·ÖÊÂÎñ£¬Ä㽫ÐèÒ
Ïà¹ØÎĵµ£º
repaint ¶Ô×é¼þ½øÐÐÖØ»æ£¬±ÈÈçÒ»¸öpanel£¬µ±ÄãremoveµôpanelÀïÃæµÄÒ»¸ö×é¼þʱ£¬Äã±ØÐëµ÷ÓÃrepaint·½·¨²ÅÄܶÔpanel½øÐÐÖØ»æ£¬½øÐÐˢУ¬ÄãÏëҪɾ³ýµÄ×é¼þ²ÅÄÜÔÚ½çÃæÉÏÏûʧ¡£
revalidate ¶Ô×é¼þ½øÐÐÑéÖ¤£¬±ÈÈçÒ»¸öpanel£¬µ±ÄãremoveµôpanelÀïÃæµÄÒ»¸ö×é¼þʱ£¬µ±Äãµ÷ÓÃrevalidate·½·¨ºó£¬panelµÄ²¼ ......
synchronizedµÄÒ»¸ö¼òµ¥Àý×Ó
public class TextThread
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO ×Ô¶¯Éú³É·½·¨´æ¸ù
TxtThread tt = new TxtThread();
  ......
ʼþÔ´¸ºÔð²úÉúʼþ
ʼþÀࣺ¶¨ÒåʼþµÄÌØÕ÷£»
¼àÌýÆ÷½Ó¿Ú£º¶¨Òå¼àÌýÆ÷Ó¦¸ÃʵÏֵŦÄÜ£»
¼àÌýÆ÷£ºÊµÏÖ¼àÌýÆ÷½Ó¿Ú£¬¼àÌýʼþµÄ·¢Éú²¢×÷³öÏìÓ¦£»
ËùÓеÄʼþÀà±ØÐë¼Ì³ÐJavaʼþ»ùÀ࣬¼´java.util.EventObject£»EventObject(Object source)ÊÇEventObjectΨһµÄ¹¹Ôì·½·¨£¬ÕâÒâζ×ÅËùÓÐʼþ±ØÐëÔÚʵÀý»¯Ê±¾ÍÖ¸¶¨Ê¼þÔ´ ......
×ªÔØ×Ôhttp://blog.csdn.net/yuekun1172006/archive/2007/06/02/1634878.aspx
Àà×°ÈëÆ÷ÊÇ JVM ÓÃÀ´×°ÈëÀàµÄÀ࣬Ëü¶ÔÓÚ Java ±à³ÌÊǷdz£ÖØÒªµÄÒ»¸ö¸ÅÄî¡£Ò»°ãÇé¿öÏ£¬³ÌÐòÔ±ÔÚ±àд³ÌÐòµÄʱºò¶¼¿ÉÒÔºöÂÔÀà×°ÈëÆ÷µÄ´æÔÚÐÔ¡£µ«ÊǶÔÓÚ·þÎñÆ÷¶Ë±à³Ì»òÕßÊÇÒ»Ð©ÌØÊâÇé¿öÏÂʱºò£¬ÉîÈëÁ˽âÀà×°ÈëÆ÷µÄ»úÖÆÒÔ¼°ÆäÔÚ²»Í¬Çé¿öϵ ......
×òÌì²Å¿´µ½£¬µ«ÊÇÓöµ½Ò»Ð©ÎÊÌ⣬½ñÌì½â¾öÁË£¬¼ÇÏ¡¡£¨²Î¿¼£ºhttp://netbeans.org/kb/55/beginning-jni-part1.html£©
ÎÒÓõÄÊÇNetbeans 6.7£¬µ«ÊÇºÍÆäËûµÄÒ²Ó¦¸Ã´óͬСÒì°É¡£ »ù±¾Á÷³Ì£º JavaÕâ±ßµÄ£º
´´½¨javaÎļþ£¨´ønativeµÄ£©£¬»¹Òª¼ÇµÃÔÚÀàÖмÓÈ룺System.loadLibrary(xxx) ¡£
È»ºóÓÃjavahÀ´Éú³ÉC/ ......