咸鱼入门到放弃1--JDBC
JDBC参考微博https://www.cnblogs.com/surfcater/p/10224502.html
主要内容
1.JDBC相关概念
2.JDBC常用接口
driver
connection
resultset
statement
3.使用方法
1.注册驱动
2.建立连接
3.创建statement执行sql(注意sql注入)
4.处理结果
5.注销连接释放资源
4.事务--------即一组sql操作语句 提交commit、回滚rollback
DDL:数据库模式定义语言,关键字:create 事务结束于此
DML:数据操纵语言,关键字:Insert、delete、update 事务开始于此
DCL:数据库控制语言 ,关键字:grant、remove 事务结束于此
DQL:数据库查询语言,关键字:select
二、MySQL数据库中操作事务命令
1、编写测试SQL脚本,如下:
1 /*创建账户表*/
2 create table account(
3 id int primary key auto_increment,
4 name varchar(40),
5 money float
6 );
7
8 /*插入测试数据*/
9 insert into account(name,money) values('A',1000);
10 insert into account(name,money) values('B',1000);
11 insert into account(name,money) values('C',1000);
下面我们在MySQL数据库中模拟A——B转帐这个业务场景
2.1、开启事务(start transaction)
使用"start transaction"开启MySQL数据库的事务,如下所示:
aaarticlea/png;base64,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" alt="" />
我们首先在数据库中模拟转账失败的场景,首先执行update语句让A用户的money减少100块钱,如下图所示:
aaarticlea/png;base64,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" alt="" />
然后我们关闭当前操作的dos命令行窗口,这样就导致了刚才执行的update语句的数据库的事务没有被提交,那么我们对A用户的修改就不算是是真正的修改了,下次在查询A用户的money时,依然还是之前的1000,如下图所示:
aaarticlea/png;base64,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" alt="" />
2.2、提交事务(commit)
下面我们在数据库模拟A——B转账成功的场景
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAywAAAF5CAIAAADyMDmnAAAgAElEQVR4nO3dWZAcx33n8Xq1LIskrrkwJwYDYDAACAIQCJAiwAPUSZGieEgiRVqkRMuSLcduOCyFX2Tvw0bs0/pBBDAABhhgQBzEJfDUAYPtK7RhhUSvZEuWJZISD5EgboKgxpbW2IcR2jVVmf/6Z1ZVV1f19xMdjJ7qrMx/Zg8rf+ie6QkO/+0/vfjaqQ994qEAAAAAmZqcnHzllVdef/3106dPnw05d+5ccLj2/AuvnfzgPb9fdJGAZF0QHC+6BgAAXMkh7HsvvHbyA3c/WHSRgNlU/LoUBJeKrgQAAFdSCDtS+/4Lr578wF0PFF2k2SVuVbwprQvFL6cTAQBoElIIO/o3z7/4WlOHMFSM5jmNx68mDGGu9ejbN9tMAQDepBD21D/84KVfnvpgs74dyW5UPfJzaotf9dtzQXA4CL4aBA8Ewbog6E1RRvoX7Zy+PwlhANCCpBD2zf/zo5+/cebD936m6CLN2I2qx/acJsYv4fZ8EDwXBF8Ngq8GwbogWJauHuG7Thna0rw5m/I9XABAU5FC2PHv/+zlE2dv+9TDRRdpxt5TPfHnNE38Em4vBsFzQbA9CL4aBLcHwTp1PXIIc5qa/tF6G6d6AABNTgphf/uDn7968vwd9z/SgDpqIfHjxlPYfhpGeBayZQxhz+UQwpSvJ+UXwjxeA4vf4X8BACg1KYR958ev/fL0hTsf/MOGVWPc7G0JwHUHyipGuPbTmPiSnlBngSFsSlZR7KUgqAVBLQj+Kgj+Igj+IgjWB8F6+3uUuYYw/ZfxrohfAFABUgj7x5+eeP3Mxbs+88WGVWPb7I3HnfahrGKEaz8Niy8pNaBO4yudEfJzmhjFXDNWItcQpn9xy+NluWD6Q0QxACg7KYR974WTb5y7ePdDf1SLqZ8f/jJ+3/b24tRBpzcf4w8ZdyChyMSHEosU+hFqjrcXFkFTf+J8XY8L80rTj201bMsV6FKFLYplxfsdzDQ1JJ4biV/G4wCAcpFC2PdfOn3i3Dv3PPzH4cQQJAUvTYPAkrfkTTryaHzvEfpP3P5t7SPRIbEfudvE/hPn4rSe+vZOK5+mHpk+T8SjWB4yfDsy3lgZ7zRpL9dFAADkRAphz//izInz79z72S+FE0OQUcZKbJD4kPBKmOvxuvhxTdmCxHGN/UfqEQpwmpfT8gqPampzXagprjEiHMXykF8Ik881duX63iUAoMklhrBf+YUw45HETVqOFJGDwt6TWEliPU6VCJz68Q43ynUWipfn5dG/7SmQV88vT0xFsTx4hLDEqOT9dqetBkIYAJSUFML+7y/OvJkUwoLQ5uq0MWvChHAw8H07UlmPbVBjPwJb+8SZNvJ+4ryE4pX914/Ii9ZseUIfwow/sKU50fio0+ttzbZoAAAlMYS9fDYSwqbo92lhJxbay3t5nf4H8yMP2Q5G7tiG1oQJub2yyPidwH2djad7rE/kUWM/Qp3CwbCmyhO29wTlxvqXrzxeAzP231SLBgDQk18J+20IS+wlcXPN5JQI9p5y0TzjTfWc6kPYpaQGwnHNo/rRAQAlIr8SdkYOYcLLKjLvE8PYe6qneZ5TfZbSv8QldKiZuPEty+ZZMQCAK9XbkUUXaeb0A87cynJrBkIZiRXaGqTp09amSZYLAOBHCmE/aO4QBgAAUF5iCHvl7Mm3CGEAAADZk0LYD185d/KtSUIYAABA5hJDGK+EAQAAZE8KYf/86rRXwtL/PmO2bJ9TJX9UlWvnTTVlJ7biC5yUx9C2p1jZj619Uc9veb+dAACZk0LYv7x67tTlEFbfPJpkF7HVk0kIE/osi8T1ST+pTNbWqbHr86KcOzkMAFAIKYT96LVzp96avPdh1SfmN5ImeKUpMt5h6XZNW81ZzcW7H/2J8Zauz4utfeHPbxm/owAAmRND2KtnT731q3se/mNb6DGmn/CXtoO29sau4jTnptnnIp0o6xHmJRRsrF9fvK29rQf5uK0fYVKa+cZPUc7LdlDZla29az/KeWmOyxMEALQUOYSdOfXWr+5+6I+MG21gST/C/fi5mlPibH0G7iFG7j8+Tc0pTusTP9fYRl9zMH0R4gPZjuvv28rz6EcznfjB+HLJnUTae/eT8n7iBAEALUUMYS+fPnX+nbs+84X4phLfvYxtwo1dTxeKNvYZuZ9mk4tUrunK2D5xgnIz11JtaxJvL3eiKca7H+UEE/vXdGVr79qPph7XOSrXAQBQYeIP5v/i5MnzF+984POa3Uu5CdkectrDIg2M56bZ5LLaUxPXx1aqsnihSM06+zVO2Y/+ebEti74rW3uP59fY0mPdXEcEAFSY+In5L75x8tzbd9z/ucDyiovr/fiXYfH+BZEN1di/8SGnzhNrltto1kG5bomDKmt2qjOr+l3nZatW86WmvXKtjA3Sz9dpBQAAFSb+Ae+fvfbm2Qsf/eRD4ROEnS++99gaC5uQfosS+k8sVd+55hShpe0h46LJXclDx/u0DepRp3yKUz/xKWsmaOxfGCKxvdCPUIbHfI3HE4cDALQCKYQ9/5OXT5w5/+F7Hqi3dtq3PJSxZwAAAA9SCPv+v/78xOnzH/z4fXkXkXe2AwAAaDZSCPvej19849S593/sk0UXCQAAUDViCPvRC2+cOrvh9nuLLhIAAKBqkkPYLR+9p+giAQAAqkb8mbAfv3Di1Nlbbru76CIBAACqRvztyH998cTpczcTwgAAALImhbB/+slLb545x9uRAAAAmZNC2A9/+vLJM+c33P6JoosEAACoGvEPeL/42qlzF95/Z+6fEwYAANBqpBD2k1+cOHP+4ofufrDoIgEAAKpGCmEv/PLs2Qu/+uinPld0kQAAAFUjhbCfn3jr/MXJOx/4QtFFAgAAVI0Uwl45/c5b7/zH3Q//SdFFAgAAVI0Uwn557t8vTP76E4/8adFFAgAAVI0Uwt44/+u3J3/zqc9/uegiAQAAqkYKYW9e+M3Ff/9/933hK0UXaXCJGzdu3KpyA9CaShzCAKACuJoBLUsRwv6QEAYAeeFqBrQsKYSdeOvXFyd/84k/+LOiizTgsgWgGriaAS1LCmGvn/uPtyd/c/dnm/G3I7lsAagGrmZAy5JC2KtnJt/61a/v+P3/VnSRBly2AFQDVzOgZUkh7OVT75y/+B8f/NQfFV2kAZctANXA1QxoWVII++kvL5y58O83fvzzDaijFhI/Hm+f7WXLODTQ5OLfsbXpEo+7DteC/5vYpux6XEAIA1qWFMK+99PTb5x5Z81HPtuwaozXL+PBzC9b+ktnVTehvOdV1XUrSuK/WOpf2o5nMmjlCRcl/fVKRggDWpYUwv7n3n/+x389ufzWzzSsGv0/LosKYVXdhPKeV1XXrRC2BBA+Em5gO+49tN+5JaVZZ7l9+LjxIUIY0LKkEPaBP//rI//w8vD6B2ox9fNt1yN5n4jvDfEeIiIPGS9bcjGB6Tooz0tunNhekLg+aY7L6+A0r0zqd+1faK/pX1+n7X7krALrSVwl4xFj/cLocs/G2pzWQdlerke/nrWYxHFtpxgrFBoIMxLmSwgDWpYUwtZ86Zn9z700dP194StpoM46QoNAcXWLCz/qFMJc6xRKcr0oJ3Jdqzzuu5bdsP4jT1NO802srah6aibGU5R1xsuW52urTbkOxrnI7RPrsbW3LaCyTidZ9VNHCANalhTCVnzhqT1//eK8tc4hLLBcm5wayA/lHcJq08kV1mKMUxBOETpXHk9zXxhCrl+elHf/9ca16U+T3xwT60k8pcB6NKsUOWIs23g8sWflNBPnJdSjmaywOMZ+bPVr6tSU5Fp/IkIY0LLEEPZ5/xBmPCI3th00Hs81hCn7SSzbRr+A+uNp7ntMwbUTp/7DT1CQ4vlS1pNYW7PVY2tWuyxedibztd1Xzks+qKnH9X7N/nyl4fFkBbFnIYwQBrQsKYSt+uIze4+/JIewIHRx8btQhukPFh7CnOalrLOo+7Z5ZVW/d/+RUzKcb/1IGeuRezCWbTyu6Vw4N3EdbGPJ6yAU43q/pnu+XPn1U7ss/hAhDGhZUghb+yff3P/cS0PX3+96YQ3sO0ptOtvxxGuc7bIVPj3ejzCurb0wNdu8LKU516npP/F4oN6E/OrXr4O+/0izxPUR5iXUY2xfonqEofXH5SFsk7VNUz9Zv2IC+3raatbU6UqoR39iGCEMaFlSCFv/p8cO/O0vFt7wQGIvHhe1lNdB18tWyuFQSc32XdFs9SBDwpNLCANalhTCNnzl+KG/e3l4/YO2k73/WZn+36NOl61M/vmLymi274dmqwcNRggDWpYUwt7/57XDf//y4hutIaxAXLYAVANXM6BlySHsuWYOYdy4ceNWjRuA1iSFsJv/LOHtSABAQJAC4EUKYev++7cP/M0vFq5L/sF8AGhlhDAAHsSPqPjSN/Y/99LQ+z5ddJEA0NQIYQA8SCHsvV94au/xF+dfd99U02b7Ba54PZEj6attnskKbM9Lgc+Xx9C2p1LZT2L7Bi9FU/2fggYghAHwIIWwlX/w9T3Hfja49pOB/YMQi2KrJ8MQ1iQzlSWuQ1FJ1Glc4UnUdJXYXh/mMlSK7x9khRAGwIMYwj73+J5jPxlcc6/rppg3TfBKU2QtJFWh+bMVmVXx3v3oT7RlpvB9fQiLty/w2SzFtxAyQQgD4EF8O/KzE3u//aP5a+6yhR5j+gl/aTtoa2/sKk5zbvr9zzVGCPMSClYOZEsStnPl47Z+hOI184qfIk/KVmdkMRO7EtpHHlLWo1wfTYXKcVF2hLApTuuQ66Ll0bn37PSfS3IpdifzwhrDtSR9e7/JepyleS7Sr7wUwq79zOZ93/rB0OrbjRtwYE9OtvvxczWnxNn6DNTbtoZTJ8Z5ua6Ja1W16SJtbMf19221efSjmU78YHwZ5U4i7V3rcZ2Xpn/lOqDsmnAXzJtxyq7ble1g+o9Ykx/y7l8/4iX7Q0I/+YWwBn9eXelCmPAcaZ507/UUQ9j9/2v/N747tOqD8c1G3uRqMfXx9KcLRRv7jNxPv/k59WCcV+IE9aXK66ks3va8CAV496NcvcT+NV3Z2sfrTCwpq3WTO0T16DeGdUFwPMdCGsopo3i0j7dRrvMll8aanm1brDKu5RrCnNYkfT/6sYQ5pgnBfnHHo03ic5HJiolvR378y3uf+rv5y2807mqBImTE2R5y2tsiDYznpt/8nHoQNm+5SM1AwuJo1tOvccp+9KsXb1m7TNmVpn2aZ9Nj3TwGRalpLsdT8SvzlxwK5BfCXF+JcQ1hHqHNqaXyrEgZmskmnpK4gMIoDQth+a1/YthN3394IPkpy2q5pBC2/P0PPXbkW/NGrg0sr8S43o9/GRbvX1BvJvRvfMh7J/ZorFkHzSge6+lUj2udHv3oJ6j8Ut9eX0+aOcb7d1oBlJ18RQ7HryqFsLjMo0yQOkl4vx6jKcOWpfye60i3Wb3AE+lTyHbpNWD9I1FJqMSpf2EummK8SSFs0drbdu0/2rdgWfgEYUeM70m2xsLmpN+6hP4TS1X2rDxFaGl7yLhomiHi59o696hHPsWpH/3Uwica+xeG0LSXZ6ds6XdcHgtVYrsWx+MXISzezLjJOb3MI49ui0pOJdUPKkOh8WWV+JfB9Ga2gRJH0dfj3SBR3usfftR1Ok79R9qkWdVEUgjrX3Ld9on9c/sX1FvrNzM/ZewZAOLXYlv8Ct/OBMFz029fnX57IAjWTb81AzkGxR81tpd3OFvQEQKQ66arby9EQCEXxid4yXI8PIrQIE4fQ/16c+Kx/vLNNsol0/009Qix2FZ8vIHTLMKkENYxMLJ1x0RHd7+in1TyznYAkKvw1VYTv7K6PT89wx2Oxbjbp2e43txmbTsiPHrJdDDeMvG+cbez7fqRLz1CgPFLWwGXYm2MpxiXQq5HOWtjqcaeNZHCeK7f+usrj58efx4TO5S/DB9Uflcox00khbCZnQObt+6Y09Ht2CcAtJapK++6BsavrG7PTb9tn57hvhR7Ke7K2Kzj6yCvkqb9Jcf7mrHkBppNWmgmZA5jZDFGCmUNQairSIe2xKAZxTU9yDTrL98iLeXOjWcJpxjLc3pylZ0kkkLYe2Z3bRzdNqut07FPAGgt/1nC+CXczgZB7fLtLy7f7giC9UGwPvRymm1zsjFucvJOdsnyX9exlMUIXxpTgrEYYwbSVKUJCrZBE/u3naVcT1euvSlDku3m2mGaECavWJYh7Hevant005aZs9sd+wSA1vKfQfBc0clJeatdvv3V5XT1YCxdKaUJYbb7kSNC/EofwuSbptvEPOQ0ijKECQ1KEcKcvl01ndvCkGvP+u9PeVwnUgh71xWzv7ZxdMasNsc+AaC1TF15e4NgR3Hp6p8up6sdsXS1zFp4BrPWbFeRRxPTg9xzJiFM6F9oHBnaY0aanFT/Us4N3iHM2G3DQpimvX6VbI3lDssRwn7nilmEMABIFL7yZh7FXoqlqz+5nK7WN36qIfFkoAlGeWyZro9qSjL2FrmjDGG2s4RTnKrSnGIrtagQlvhtr+/ZNXAntlE+EY0LYbUYx1GalPd0slqHTFYy/rwU/jQ1yfpEamiFD0Cp5P+npRC/8l4ZBF8NgrO6dHUk9KNX6y/froz12Ww8QoBTNkrTRr8Xylt+pCv9iyXGHV1OPI0JYd4NnKR8JcypWSYhzOn7M2UxYdpXwuJ7vONAjeNUm/dc0i9CVjHF+LwU/hw1w/q0Wghr2HwRZ7vyClGsGpSvZ1xSnxJvbxxU2UZTfKQq/aDyfWOH8XWwPRr/0liS/vWkrPKxklMIVrY3rk8msd71+zN9PXXyz4SVL4S51pZhCNO//JDVaxXCplv4c9Tk61MiruvmehYykXjlfTAIXqpiCMtJ+pdt5MwhPAXKTdcvPzkFx2xfu0qfWZ1kWJvQxjXqZSvep8coYgi7cvbXNiWEMON+mRgOPDZjY5/CQU37cG1O7eWHEucVGdqb0IPTvJSTCj9axvVJrF8zWWG+xoMp1zNwWbdIz+kXEHrKi284igGAFMLePaO9/hEVxn1Fcz+wBALNDhE+0XaKbSxbG2P7SP8ec/SQaw/GednOzfu+nwx7UK5DEPsekL8fEjtJed+VZr7IiVOoWhcEz+VVCIAy0XxYa0fgG1CUe5hNYj/hnVLoXxjUVrax/6w2ywb0IJetnJeyk+Zfn5rj90+kfeK8jJ3o79u6dRWZUSZ9QolXtgB4kELYjI6+zVu3z2nvCsSwEjkYiJtfvLHA1o/rZiYMlzivxMaRR/XbXvo9Upi73/Plcd9WTzOsT+A4d9ugiXN3fSKU/YQPapYi0jKTBYQSIQyABymEtfct2DK2s72rN3Dc1DVtNDtEuJOcxnWal1x/ZAtMlMke6VSqx7xq03kMGu/KY2renOZuG1Sel9xJmvWMnKKfrFAqckIIA+BBCmE9C64e2/lYV89A4p5h2zkCcRNKLC5xb5OHiHclt9TPyziuXi3GoxNjb/EiA8W62RrHRxEGFfpPM6OU62MrRlgH26Ti922lZrierrJaN7gihAHwIIWwwaXXju/e1zMwVHSRKIYmTECP9awwQhgAD1IIG161ftfeg33zh4suEoXhZZVssZ5VRQgD4EEKYUvW3LJ7/+GBBYuLLhIAmhohDIAHTQgbKbpIAGhqhDAAHqQQtvi9N07sO9g/xCthACAhhAHwIIWwoavXjj+2v3fewqKLBICmRggD4EEKYb0Lr9m+a8/cvsGiiwSApkYIA+BBCmEdA8Nbd+zq6O4rukgAaGqEMAAepBA2e+7g6Lbxts7uoosEgKZGCAPgQf7bkb2bt26f0zG36CIBoKkRwgB4kELYVW09m7aMzW7vKrpIAGhqhDAAHsRXwtp7N28Zm0MIAwARIQyABymEzewa2Lxtxxx+JgwARIQwAB7EH8zvHhwd4wfzASABIQyABymEtfUObRkbb+/qKbpIAACAqiGEAQAAFEAKYXO65zft25GXuHHjxq1aNwCtRvzB/M7+pv2cMC5YAKqEaxrQgqQQdmUTf04YFywAVcI1DWhBUgh7z6yujaPbZrV1Fl2kARcsAFXCNQ1oQVII+72ZHRs3b501p6PoIg24YAGoEq5pQAsSQ9iszo2jhDAAyB3XNKAFSSHsijlzeTsSABqAaxrQgprltyNrIfHj8fbZXrCMQwNNLv4dW5su8bjrcC34v4ntouR6yUpECANakBTCOvoXbdm+s72rt2HVGK9fxoOZX7D0l86qbkJ5z6uq61aUxO2//qXteCaDVl7iRSmr5SWEAS1ICmG9C5eP7Xysq3egYdXYrl/x40WFsKpuQnnPq6rr1hjGbV4OYeEGtuPpK2kFWYWwxJUnhAEtSAphQ1evHd+9v3tgqBZTP992MZL3ifjeEO8hIvKQ8YIlFxOYroPyvOTGie0FieuT5ri8Dk7zyqR+1/6F9pr+9XXa7kfOKrAe2xG5mbF+YXS5Z2NtTuugbC/XI6yb0LlyXNsptgptbYQZJc6XEAa0ICmELV590669B/sGF4WvpIE66wgNAvW+YnvUKYS51imUlFi2PAV9zY2871p2w/qPPE05zTextgLrqcUYT1HWGS9bnq9Qj2Yd4m0S2yfWY2tvbKOv01VtOu9+wghhQAuSQtiytbfu3n+4f2ixcBHX3K9zaiA/lHcIs11khbKdLsrG9rZzNcfT3BeGkOuXJ+Xdf71xbfrT5DfHxHoSTymwHtsRoZmxbONxG9t8bfcT5yXUk1iMUEC8K7l+TZ3pS/JGCANakBjCrvMPYcYjiVcu2+UsfjzXEKbsJ7FsG/0C6o+nue8xBddOnPoPP0FBiudLWU9ibYXXYzzR1izej+2463xt95Xzkg9q6nG9X7M/Xyk5rWe4mdCSEAa0ICmEjay+eWLfwb75w8JFOQhdXPwulGH6g4WHMKd5Kess6r5tXlnV791/5JQM51s/UsZ65B6MZRuPazoXzk1cB9tY8joIxbjer+meLw8eXdUuszUghAEtSAphC5Zfv/Oxx3vnLXC9sAb2HaU2ne144gXOdsEKnx7vRxjX1l6Ymm1eltKc69T0n3g8UG9CfvXr10Hff6RZ4voI8xLqMbYvUT3C0Prj8hC2ydqmqZ+sXzGBfT1tNWvqdFWLcTrR9ighDGhBUgjrH165fdeeuX2Dib14XNRSXgddL1gph0MlNdt3RbPVgwwlPrmEMKAFSSGsa3Bk2/hEZ3e/7WTvf1am//eo0wUrk3/+ojKa7fuh2epBIQhhQAuSQticnqEtY+ON/MR8PS5YAKqEaxrQghL+duToth1tnd1FF2nABQtAlXBNA1qQFMJmdPQ17A94u7rEjRs3btW6AWg1Ca+ENW0IAwAAKDUphM3qGmjatyMBAABKTQphs7sHR8fG6yGs2X6BK15P5Ej6aptnsgLb81Lg8+UxtO2pVPZja+/aT1aa6v8UAEBzEn87snv+6Nh4W2dPYP8gxKLY6skwhDXJTGWJ65B+Fn6nO40rPImarpRzJ4cBAJqK6pWwYjezOE3wSlNkLSRVofmzFZlV8d796E+Mt4w/ofoQFm7v2k/mSvEtBAAoiupnwmyhx5h+wl/aDtraG7uK05ybfv9zjRHCvISClQMZ+xHOlY/b+hGK18wrfoo8KVudkcVM7MrW3rUf5bw0x+UJAgAQKD+iwrgBB/bkZLsfP1dzSpytz8Blu03k1IlxXq5r4lpVbbpIG9tx/X1bbR79aKYTPxhfRrmTSHvvflLeT5wgAACBHMKuau/dtGVsdntXfLOJ72rGNuHGrqcLRRv7jNxPv/k59WCcV+IE9aXK66ks3va8CAV496NcvcT+NV3Z2rv2o6nHdY7KdQAAtCC3V8KEXU25OdkectrbIg2M56bf/Jx6EDZvuUjNQMLiaNbTr3HKfvSrF29Zu0zZla29az+2kjzWzXVEAEALcvvtSGFX09yPfxkW718Q2WiN/Rsf0m+K6Rtr1kEzisd6OtXjWqdHP/oJKr/UtFeulbFB+vk6rQAAoAVJIWzu4JJt4xOdPf3hE4QdMb4n2RoLm5N+6xL6TyxV2bPyFKGl7SHjommGiJ9r69yjHvkUp370UwufaOxfGCKxvdCPUIbHfI3HE4cDALQyKYQNLl09vntfz8BQvbXTfuahjD0DAAB4kELY0jUbdu8/PLBgJO8i8s52AAAAzUYKYdduuHP/4aeGRq4pukgAAICqkULY+ts/ffDJbw4vX110kQAAAFUjhbANd3/28NPHlqxYW3SRAAAAVSOFsFvveeTIM8eWrLyu6CIBAACqRgphN3/8ocNPfXtkxZqiiwQAAKgaKYS978OfPHD02UXL3luLKbrsbHhPJ6t1yGQl489L4U9Tk6xPpIZW+ACUSv5/CgBVJYWwVTd9dO+hJ4cWLw9SfBh64znV5j2X9IuQVUwxPi+FP0fNsD6tFsIaNl8AQCakELbk2pvrnxPWVBu8wLW2DEOY/uWHrF6rEDbdwp+jJl+fEnFdN9ezAABFkULY0NXX7Xzs8d55C4OkV1zk3S6xvU0txviQd/twbU7t5YcS5xUZ2pvQg9O8lJMKP1rG9UmsXzNZYb7GgynXM3BZt0jP6RcQAJArKYTNW/Jff7bIuK9o7geWQKDZIcIn2k6xjWVrY2wf6d9jjh5y7cE4L9u5ed/3k2EPynUIYt8D8vdDYicp77vSzBcA0Dzkvx157fju/T3zFgS+AUW5h9kk9hPeKYX+hUFtZRv7z2qzbEAPctnKeSk7af71qTl+/0TaJ87L2In+vq1bV5EZZdInACA/UghbtPKGXXsP9g8NB2JYiRwMxM0v3lhg68d1MxOGS5xXYuPIo/ptL/0eKczd7/nyuG+rpxnWJ3Ccu23QxLm7PhHKfsIHNUsRaZnJAgIA8iOFsKuv/8CeA18fXLQscNzUNW00O0S4k5zGdZqXXH9kC0yUyR7pVKrHvGrTeQwa78pjarclrWQAABkPSURBVN6c5m4bVJ6X3Ema9Yycop+sUCoAoHlIIWzNrR/ff+TphUtXJu4Ztp0jEDehxOIS9zZ5iHhXckv9vIzj6tViPDox9hYvMlCsm61xfBRhUKH/NDNKuT62YoR1sE0qft9Waobr6SqrdQMANIAUwtZ99P6DT35z8fJriy4SxdCECeixngCAMCmE3fLxhw4/fWzJSv6Ad+viZZVssZ4AgDophG246+EjT/MHvAEAALInhbAb73jw0JPfWnwNf8AbAAAgY1IIu+6D9z7+9WcWLl1VdJEAAABVI4WwFes/sufgE/MXX110kQAAAFUjhbCR1TdN7DvUP7S46CIBAACqRvwD3sv/6w94AwAAIENSCJu/bM347v1Tf8AbAAAAGZJC2IJrrt+5h1fCAAAAsieFsKVrNuzef3iAnwkDAADImhTC3nvzHXsPPclvRwIAAGQu4W9HHnjiG4uW8TlhAAAAGZNC2K33PHL46WMjK/jEfAAAgIxJIezD933x688eX7ry+qKLBAAAqBophH3otyGMP+ANAACQMfHtyLs/d/jpY/wBbwAAgMxJIeyGj3zqwNFnFy5dWXSRAAAAVSOFsJXrb9tz8OjgoqVFFwkAAFA1UghbtOKGnXsO9A7yifkAAAAZk0JY76Jrxnbu6eqdV3SRAAAAVSOFsPa+hVu272yf21t0kQAAAFUjhbBZXQOj23a0dXYXXSQAAEDVSCFsRkff5q3b53TMbUAdtZD48caP24TKUicAANBolhA2xRgyGpA8MhmiAWExaMhqNLkWnz4AoDKa6+1IW8JozOthjewh3F5zLtlrirAOvFIIACgXKYTN6R4cHRtv6+yuxdTPt4UJ29t84YO2R42FKvfXxHGVIc+pH2F9PEoVGtt6iDfIqk7X9fRYN9t91/r1kwIAoBmIIaxnaHRsvK2rp7631WL7vfF+YoNATBW2WhO32KzG9ejHafuPhwnNxI3NImteUz9BfjUXe9+1ZgAAmpn8Stj80bHxtk7nEBYosk5iA/1Dic1qMfJZtvbpy7NVpWwsdBJuk/ikxJtpikxcB83xNPeVNQMAUAriz4TNnTf1M2HC5i3vzcIOatxNXXd3G9edW9le6CdNhZpznUpKfILiz6NTka7ro+lHOVbiU+D0LAAAUCAphM28/NuR8uZdCwkf0d+PdKU5aJTVuGnCQU45wNZt4nSM95WlpnlO87gfiOtcu0yYEQAAzUMKYVe1927aMjanvcu2EYYZ2wg7pdBe2IMTacYV6omMq+8nyDMEpCkmvsi2L+WhA1M28lvnxP7jA9lOMVYrzwgAgCYhf05Yr/Jzwjw2P/ZLZIvvKABAuah+Jsx2su3ljUTeJwIAAFTD5OTkd7/73YMHD45Ot2XLlqBjYHjrjonO7v6iiwQAAKiaycnJgwcPvvrqq+9cdvHixYsXL54+fTroG16xY2Jvd/9Q0UUCAABUzeTk5KZNm+rx6623Lpw7f/7s2XOvvPJaMLxq/cS+gwNDi4suEgAAoGqmQtjUq18XLlw4d+78mTNnT506/cILPw9WrP/I3oNPDC1eXnSRAAAAVVMPYW+//fb5829NJbATJ07+5N9+Flz3wXsPHH12+OrVRRcJAABQNVIIu/GOBw899e2RFWuLLhIAAKBqpBB2852fOfz0sSUrryu6SAAAgKpxeyWsqE/2KssnipWlTpuy1w8AQIlIIez6D33iwNFnh69+b701IUxWljptyl4/AAAlIoWwletvq/92ZC3GeDDb40WN63q8LHXajtvqBwAA+ZFC2NTnhPWHPiesqO25LLGgLHXalL1+AABKRAph/cMrd0zs7e6fX29NCJOVpU6bstcPAECJSCGso3/R1u27Orr7ii4SAACgaqQQNqOjb/PW7XM65hZdJAAAQNVIIew9s7o2jm6b1dZZdJEAAABVI4Ww372q7dFNW2bObi+6SAAAgKqRQti7rpz9tU2jM2a3FV0kAABA1Ugh7HeumPW1jaMzZhHCAAAAMkYIAwAAKAAhDAAAoACEMAAAgAK4hTDXT1S3tXf9A4Vl+ST3stRpU/b6AQAokWJCmGtXZQkHZanTpuz1AwBQIvmGMAEhrAmVvX4AAEokrxBWC7EdzzyECZ0bj9diEuvPo87EcV3nFalEPwvX+QIAAG/5/mC+MUwYH8qEpn9jm/p/I3fyrlM5ruv9BkwBAACk1NCfCfNOBsrGiaGkLtLGGIbi7TOv0ziuPJf4fWOdfkvtNFkAAJBGS4SwxPtCGHLiWqcwrut9oRJCGAAATYgQVguyezuywBAWH7oWkm39AAAgvUb8YH48K8Qzh6Y3p2aRU4zjGtvE69dU6F2nZlzNvGzjOk3Bdb4AAMAbn5hfZYQqAACaFiGsgvxexgMAAI1ECAMAACgAIQwAAKAAhDAAAIACSCHsXVfMJoQBAADkQQxhV87+2qbRmbMJYQAAABmTQtjvXtX26OYtM+e0F10kAABA1Ugh7PdmdW4c3TarrbPoIgEAAKpGCmFXtfVs3rp9TsfceuuiPnqqLB95VZY6bcpePwAAJSKFsNndg1vGxjvm9tVbE8JkZanTpuz1AwBQIlII65q3eGx8d1fvvMDytyDjB7M9XtS4rsfLUqftuK1+AACQHymE9Q+vHJ/Y1zNvQb11UdtzWWJBWeq0KXv9AACUiBTCFiy/ftfeA/1Di+utCWGystRpU/b6AQAoESmEjay+aff+w/MWLi26SAAAgKqRQtjStRsee/zI4CJCGAAAQMbEELZmw2OPH5lHCAMAAMiaFMIWv/fGiX2HBhaMFF0kAABA1UghbOjqtTsfe7x3cGHRRQIAAFSNFMJ6Fy7fvmvP3L7BoosEAACoGimEdfQv2rpjV0d3X9FFAgAAVI0UwmZ29o9u29HW2V10kQAAAFUjhbArZs/dOLptVltn0UUCAABUjRTC3j2j/dHNW2bOaa+3zuoT1V07cRq3wI99z29o2191tP3BR78/BMkn5gMA0DBSCHvXlXMe3TQ6c3ZbvXUmm7RHJ/pTPJJHhnIaN9yt7X74S9txp4EAAECuxBB2xeyvbRydMSuzEOadkJSnCAGlMQoMYeGFtR13GggAAORKCmG/c8WsbEOYdyeEMDmERdKt7bjTQAAAIFduISwT+e30hYew/NSmCx8MLv+MnTGEBZVbCgAAqqGCr4S5vvyTobwHjfSvfAFMXxVxDQCAhqlgCPMeJb2iQljkUdtx1/4BAEB+CGFZynXQeOfGTCYc9xgCAADkJBzC3n774ttvX7xw4cL582+9/vqJ7ENYLcbpRKdmFQththWzrWeu6wwAANILh7B33vnVdWvXPvzQQ1/58pe/8uUvB++6cvbXNmX/g/kAAACIhLBHPve5nePjR48ePXr0aPDuq9oe3bRl5uz25G4AAADgQno78j2zujaObp3V1lF0kQAAAFUjvR05o6Nv85ax2e1dRRcJAABQNdLbkW29C7aMjbd39RRdJAAAQNVIb0d2Dy0bG9/d2TNQdJEAAABVI70dObj02vHd+7oHhoouEgAAoGoiIex//OVffv3IkePHjx8/fjwYXrVu196DffMX1Vun/xwpjw+v0o/r/TlkWclqUFsnfE4YAACVIb0duWTNLbv3Hx5YMFJvnXKTDp+eUzjwHiITmYxo6yR+3Bi8hOPeQwMAgMxJf7Zo6doNhDAnmayPLWzJISzcwHY87/oBAICeFMJGVt80se9Q/9DieusMN2lCmGsnQgiLpDTbce+hAQBA5qQQtmD5dTv3PN47b2Hmo+a32demy2OIvPmFsCCWveLHAQBA85BCWN/wiu279sztG6y3zvWVnkxOCbdsfPjIdX1sISzxBTC/1QMAALmSQljnwOKtOyY6u/vrrdNv0n49EMKMx8NJKzCFMNeqCGEAADSMFMJmdw+Ojo23df7XJ+an3KS9ExIhzHg8ciQSwjyqIoQBANAwUgib0dG3eev2OR1z660zCWFhTifm139WclofYV6ux3OtHwAA6Ekh7Kq2nk38AW8AAIAciCGsvZcQBgAAkAcphM3s7I+8HQkAAIBMiD+YP3fe6LYdbZ3dRRcJAABQNVIIm9MzNDo23tbVk9wNAAAAXEghrK1naMvYeDshDAAAIGuazwnj7UgAAICMuf1gfvrPkfL7EC+PD7sq4+eEhfsx9sznhAEAUBlunxOWcpMOn55TOPAeIhOZjBjvxBiwPI57DA0AAHIihbD3zO7aOLptVltnvXWGm3QeIcw7fGQlk5Aqh7BwA9fjedcPAAD0pBD2ezM7Nm7eOmtOR711uUJY42VSgBDCIinN9Xhj6gcAABpuISwTTrHAo+fMu20wOYQFsYylPw4AAJqHFMKuKPnbkY2XSQG2EJb4Qlfi8cbUDwAANKQQNqOjb/PWLH8wP6wBIazxkSLvEBZp4Hq8MfUDAAAN8cNaexdsmf6J+Sk3ab9k4NTYe4hM5BrC4l+6HvcYGgAA5EQKYT0Lrh4b393ZM1BvnX6TroW4npXrEJnIJKQa68/qeK71AwAAPSmEzV967fjEvu7++UUXCQAAUDVSCBtetX7XngO9gwuLLhIAAKBqpBC2dM2GiX2H+oeGiy4SAACgaqQQtmztrbv3H+4fWlx0kQAAAFUjhbCRa2+e2Hewbz6vhAEAAGRMCmELr3nfzj2P987jZ8IAAAAyJoWwgcWrdkzs7e7jtyMBAAAyJoWwuYNLto1PhD8nDAAAAJmQPzF/aMvYzva5vUUXCQAAUDVSCJvVNTC6bUdbZ3e9dVGfqF6WT3IvS502Za8fAIASSfwD3tvndMyttyaEycpSp03Z6wcAoESkEDazs78ewox/1jB+MNvjRY3rerwsddqO2+oHAAD5kd+OnMfbkU7KUqdN2esHAKBEpBA2p3v+6Nh4W2dPvTUhTFaWOm3KXj8AACUihrCeodGx8baunuRuAAAA4MLtlTAAAABkQvyZsLnRnwkDAABAJrS/HQkAAIAMSSHsqvbeTVvG5rR3FV0kAABA1bh9WCsAAAAyIYWw2XMHR7eN8zNhAAAAmZNCWNe8xdt2THR29xddJAAAQNVIIWxgZNWOib3d/UNFFwkAAFA1UggbWX3zxL5D/UOLg+l/W7DompOVpc4gVqrrH3C0tS/qD0GWaOUBACiWFMLee/Md+w49ObR4eXhnLcUuW0iRHiMak5PtS/3prv1kqxTfIQAAFE4KYetuu//gE98Yvnp1+AS2WCOPZYmfEg+7+hAWbu/aT+b4JgEAIJEUwjbc9dnDTx8bWbE2fIJmf7UFgsDytqbwpbG9ZmjboGn6UfavGcLYLLJoiV3Z2rv24zpfTc/KdQAAoGVJIez99z5y5Jm/Xrryuqmm+oQRmHJAYEpX8fvxc41tlKMnjpV4umvNfhVGDsanL3dSM2Uvj35S3k+cIAAAqJNfCXvY75WwejNbOLDdl5vpRc7y6NDYrBYjt0/Tv6ZPW3vXfjT1uK6h3xMHAEDryOtnwoRNXbhvCw0pI45rgND0I7f06DwIhR5ln7b2HpnJ2NJ2orIwzYgAALQsKYStvuVj+w4/NTRyjceObmwm9BMJEIntnUZ37UdTg6b+NHXavtS0l5vJZaS5rxwOAAAEcghbtvbWx/YfmbdwSeDyI95yY9tDcoDQ7+u1mMA9hCXWKU9NU2fkLFv9if3b2gv9CGXo5ysfTxwOAABIIWzhNe/buedA3+CioosEAACoGimEDS69dnz3/p55C4ouEgAAoGrqIezChQvnzp0/der0m2+efOONEz/+8b8RwgAAAPIyFcLefvvtqQR24sSbr79+4rXXXv/hD/8lWLjihl17DvTNHy66SAAAgKqZnJzct2/fq6++ev78+TNnzp46derkyVNvvnnyhRdeDK6+7v2PPX5kcNHSoosEAAComsnJye985zv79u17dOOjkVtw7YY79x95asGSFUUXCQAAUDWTk5OvvPLK66+/fvr06bMh586dC9bddt/BJ7+5ePnq5G4AAADgQgpht3z8ocNPH1uycm1yNwAAAHAhhbANd332yDPHllz+A94AAADIihTCbvrY7x966lsj16wpukgAAICqkULY9R/6xIGjzy5atqroIgEAAKpGCmErb/zo3oNPDC1eXnSRAAAAVSOFsCXX3jyx/9DAgpGiiwQAAKgaKYQtWH79zj2P9w4uLLpIAACAqpFC2Pxla8Z37+8Z4G9HAgAAZCzplbDHHu+dxythAAAAGZN/JuyWiX2H+ocWF10kAABA1UghbNVNt+89+MT84auLLhIAAKBqpBB2w233HTj67MKlK4su0upSJW4AAKAFSSHs1rs/d/jpY4ub+BPzK5BgKjAFAADgQQphH7rvi19/9vjSJv7bkRVIMBWYAgAA8CCFsA//NoRdX3SRVhVIMBWYAgAA8CCFsPff88jhp4+NrODtyBzlOgXvzj1O1J9SgWcNAID0pBC27rb7Dxx9dmFD/oB3LSR+3HZWUdu5XJUTzRTWBcHx1J27/k6A69oSwgAAcCJ+RMWNH9178InB4WUNq8YYboTE01QhzC+WyVOYil/ev0R5yXJfM7TwaJrf/eRXRAEAmCKFsOFV63ftOdA3uKhh1djylu1482zeQlI0vsJXZ5tCOH7lHcIy+UANTYW2WAYAQAuSQljf8Irtu/bM7RusxdTPD38Zv297e3HqoNObj8aH4vt34rjx4uMPJc5X2U98ynHxKcTj19TtxSD430GgeVnSmJwyf/3J4zWw+B0SGACgZUkhrKN/0dbtuzrm9oVjU5AUvDQNAvd3Ho2PXrI3cLofKVuYr60SuXJBeAq2+BW5nQmC7UFwu2PnmpegbJHIePySy5fxc4lfAIAWJ4WwWV3zRrftaOvsdg1hgSJjuYYw40NCCNOM24Qh7AXHNwcPB8EDQXClovM0IczW2OONy/BDRDEAQCuTQtiMjr7NW7fP6ZjrEcKMR7xDmO14KUJY7TLjo/EU8ukgOO0YxS4FwfNB8KUg6DV1rnw7MvFlsMQXt2SXLF0RxQAArSltCAtCISMxmfmFMH2C8a4hwxBme0gfwoIguDIIvhoEZ1P/8Jb+XCFp2R7SvxKmCXwpZwoAQOnIb0cORN6OnKKJSvFkFj9ua2/LTHHxPVszrlyzcFyoMxDDljALIXb0BsFYEPynbzSJv/GnfNNQfhNTGE740qMMAACqTQphs7sHR8fG2zq7E3uRo1JWp8SVYvN2zZERy4LgOccR67EmMWMJPQgtnd4nFfp3KgkAgIqRQlhbz9CWsfH2rh7bybaXnRJ5nxhRgc071ykYX9NyfYPSYyz5dOEdTwAAWocUwub0DI2OjbfZQ1jhKrB5FxLCEt8ElF8Ji/fj9A4jIQwAgCDh7ci5v/2IiqKLtKrA5t1sr4TFf6beYyzXZhV4HgEAcCWFsJmd/VO/HVl0kVYV2LxzmkLkpaxLpoPxU4SfptePldjS40QAAKpHCmFXtfdu3jI2p6Or6CKtnH5CvGlv+S1O5I5xxQJdGXK1HglMfyIAAJUkfk5Ye+/mrWPN/EoYAABASak+J2yqaSa/z5ihxE/qSlOt7cPASsRWfIGT8hja9hQr+zG2r5k4TCOF8n47AQAyJ4Ww9r6FW7fv6ujuC8RPhC+ErZ5MQpjQZ1kkrk/6SWWytk6NXZ8X5dwb/PyW8dsJAJAHKYT1Lly+fdee7r75zRZKNMErTZHxDku3a9pqzmou3v3oT4y3dH1ebO0L/34u43cUACBzUghbuOJ9u/Ye7B8atm1axvQT/tJ20Nbe2FWc5tw0+1ykE2U9wrzkXT9ev754W3tbD/JxWz/CpDTzjZ+inJftoLIrZXtNSU7ro6lQuQ4AgAqTQtjyGz605+DR+YuvNm60gSX9CPfj52pOibP1GbiHGLn/+DQ1pzitT/xcYxt9zcH0RYgPZDuuv28rz6MfzXTiB+PLJXcitNfU4zovzXyV6wAAqDAphK39wN2Pf/2ZRctWxTeV+K5mbBNu7Hq6ULSxz8j9NJtcpHJNV8b2iROUm7mWaluTeHu5E00x3v0oJ5jYv6arxPb61c5q3TyGBgBUlRTC1t/+6UNPfmtkxZrINmbc1ZSbkO0hpz0s0sB4bppNLqs9NXF9bKUqixeK1KyzX+OU/eifF9uy6LuS2+srsZ3isW7eQwMAqkcKYTff+ZnDTx9bsvK6wPKKi+v9+Jdh8f4F9WZC/8aHnDpPrFluo1kH5bolDqqs2anOrOp3nZetWs2Xru1dy0g/X6cVAABUmBTCbvrYg4ef+vbIirXhE4SdL7732BoLm5Dr1ihsw4mbtKZzzSlCS9tDxkWTu5KHjvdpG9SjTvkUp37iU9ZM0Ni/MIS+vVMZHvNNMygAoNqkEPa+D3/ywBPfGF6+ut5a2JIzUcaeAQAAPEghbNVNt+879OTQyDV5F5F3tgMAAGg2UggbWX3TxP5DAwtGii4SAACgaqQQNjCyasfEvu6BoaKLBAAAqBophHUODG/dMdHZ3V90kQAAAFUjhbCZnf2j23a0dXYXXSQAAEDVSCHsitldG0e3zWrrLLpIAACAqpFC2LtntD+6ecvMOe1FFwkAAFA1Qgj7/0Uhxlh3AP2iAAAAAElFTkSuQmCC" alt="" />
我们手动提交(commit)数据库事务之后,A——B转账100块钱的这个业务操作算是真正成功了,A账户中少了100,B账户中多了100。
2.3、回滚事务(rollback)
通过手动回滚事务,让所有的操作都失效,这样数据就会回到最初的初始状态!
三、JDBC中使用事务
当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,可使用下列的JDBC控制事务语句
- Connection.setAutoCommit(false);//开启事务(start transaction)
- Connection.rollback();//回滚事务(rollback)
- Connection.commit();//提交事务(commit)
3.1、JDBC使用事务范例
在JDBC代码中演示银行转帐案例,使如下转帐操作在同一事务中执行
"update account set money=money-100 where name='A'"
update account set money=money+100 where name='B'
代码如下:
1 package me.gacl.demo;
2
3 import java.sql.Connection;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import me.gacl.utils.JdbcUtils;
8 import org.junit.Test;
9
10 /**
11 * @ClassName: TransactionDemo1
12 * @Description:
13 * JDBC中使用事务来模似转帐
14 create table account(
15 id int primary key auto_increment,
16 name varchar(40),
17 money float
18 );
19 insert into account(name,money) values('A',1000);
20 insert into account(name,money) values('B',1000);
21 insert into account(name,money) values('C',1000);
22 * @author: 孤傲苍狼
23 * @date: 2014-9-22 下午11:16:17
24 *
25 */
26 public class TransactionDemo1 {
27
28 /**
29 * @Method: testTransaction1
30 * @Description: 模拟转账成功时的业务场景
31 * @Anthor:孤傲苍狼
32 *
33 */
34 @Test
35 public void testTransaction1(){
36 Connection conn = null;
37 PreparedStatement st = null;
38 ResultSet rs = null;
39
40 try{
41 conn = JdbcUtils.getConnection();
42 conn.setAutoCommit(false);//通知数据库开启事务(start transaction)
43 String sql1 = "update account set money=money-100 where name='A'";
44 st = conn.prepareStatement(sql1);
45 st.executeUpdate();
46 String sql2 = "update account set money=money+100 where name='B'";
47 st = conn.prepareStatement(sql2);
48 st.executeUpdate();
49 conn.commit();//上面的两条SQL执行Update语句成功之后就通知数据库提交事务(commit)
50 System.out.println("成功!!!"); //log4j
51 }catch (Exception e) {
52 e.printStackTrace();
53 }finally{
54 JdbcUtils.release(conn, st, rs);
55 }
56 }
57
58 /**
59 * @Method: testTransaction1
60 * @Description: 模拟转账过程中出现异常导致有一部分SQL执行失败后让数据库自动回滚事务
61 * @Anthor:孤傲苍狼
62 *
63 */
64 @Test
65 public void testTransaction2(){
66 Connection conn = null;
67 PreparedStatement st = null;
68 ResultSet rs = null;
69
70 try{
71 conn = JdbcUtils.getConnection();
72 conn.setAutoCommit(false);//通知数据库开启事务(start transaction)
73 String sql1 = "update account set money=money-100 where name='A'";
74 st = conn.prepareStatement(sql1);
75 st.executeUpdate();
76 //用这句代码模拟执行完SQL1之后程序出现了异常而导致后面的SQL无法正常执行,事务也无法正常提交,此时数据库会自动执行回滚操作
77 int x = 1/0;
78 String sql2 = "update account set money=money+100 where name='B'";
79 st = conn.prepareStatement(sql2);
80 st.executeUpdate();
81 conn.commit();//上面的两条SQL执行Update语句成功之后就通知数据库提交事务(commit)
82 System.out.println("成功!!!");
83 }catch (Exception e) {
84 e.printStackTrace();
85 }finally{
86 JdbcUtils.release(conn, st, rs);
87 }
88 }
89
90 /**
91 * @Method: testTransaction1
92 * @Description: 模拟转账过程中出现异常导致有一部分SQL执行失败时手动通知数据库回滚事务
93 * @Anthor:孤傲苍狼
94 *
95 */
96 @Test
97 public void testTransaction3(){
98 Connection conn = null;
99 PreparedStatement st = null;
100 ResultSet rs = null;
101
102 try{
103 conn = JdbcUtils.getConnection();
104 conn.setAutoCommit(false);//通知数据库开启事务(start transaction)
105 String sql1 = "update account set money=money-100 where name='A'";
106 st = conn.prepareStatement(sql1);
107 st.executeUpdate();
108 //用这句代码模拟执行完SQL1之后程序出现了异常而导致后面的SQL无法正常执行,事务也无法正常提交
109 int x = 1/0;
110 String sql2 = "update account set money=money+100 where name='B'";
111 st = conn.prepareStatement(sql2);
112 st.executeUpdate();
113 conn.commit();//上面的两条SQL执行Update语句成功之后就通知数据库提交事务(commit)
114 System.out.println("成功!!!");
115 }catch (Exception e) {
116 try {
117 //捕获到异常之后手动通知数据库执行回滚事务的操作
118 conn.rollback();
119 } catch (SQLException e1) {
120 e1.printStackTrace();
121 }
122 e.printStackTrace();
123 }finally{
124 JdbcUtils.release(conn, st, rs);
125 }
126 }
127 }
3.2、设置事务回滚点
在开发中,有时候可能需要手动设置事务的回滚点,在JDBC中使用如下的语句设置事务回滚点
Savepoint sp = conn.setSavepoint();
Conn.rollback(sp);
Conn.commit();//回滚后必须通知数据库提交事务
设置事务回滚点范例:
1 package me.gacl.demo;
2
3 import java.sql.Connection;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Savepoint;
8
9 import me.gacl.utils.JdbcUtils;
10 import org.junit.Test;
11
12 /**
13 * @ClassName: TransactionDemo1
14 * @Description:
15 * JDBC中使用事务来模似转帐
16 create table account(
17 id int primary key auto_increment,
18 name varchar(40),
19 money float
20 );
21 insert into account(name,money) values('A',1000);
22 insert into account(name,money) values('B',1000);
23 insert into account(name,money) values('C',1000);
24 * @author: 孤傲苍狼
25 * @date: 2014-9-22 下午11:16:17
26 *
27 */
28 public class TransactionDemo2 {
29
30 /**
31 * @Method: testTransaction1
32 * @Description: 模拟转账成功时的业务场景
33 * @Anthor:孤傲苍狼
34 *
35 */
36 @Test
37 public void testTransaction1(){
38 Connection conn = null;
39 PreparedStatement st = null;
40 ResultSet rs = null;
41 Savepoint sp = null;
42
43 try{
44 conn = JdbcUtils.getConnection();
45 conn.setAutoCommit(false);//通知数据库开启事务(start transaction)
46
47 String sql1 = "update account set money=money-100 where name='A'";
48 st = conn.prepareStatement(sql1);
49 st.executeUpdate();
50
51 //设置事务回滚点
52 sp = conn.setSavepoint();
53
54 String sql2 = "update account set money=money+100 where name='B'";
55 st = conn.prepareStatement(sql2);
56 st.executeUpdate();
57
58 //程序执行到这里出现异常,后面的sql3语句执行将会中断
59 int x = 1/0;
60
61 String sql3 = "update account set money=money+100 where name='C'";
62 st = conn.prepareStatement(sql3);
63 st.executeUpdate();
64
65 conn.commit();
66
67 }catch (Exception e) {
68 try {
69 /**
70 * 我们在上面向数据库发送了3条update语句,
71 * sql3语句由于程序出现异常导致无法正常执行,数据库事务而已无法正常提交,
72 * 由于设置的事务回滚点是在sql1语句正常执行完成之后,sql2语句正常执行之前,
73 * 那么通知数据库回滚事务时,不会回滚sql1执行的update操作
74 * 只会回滚到sql2执行的update操作,也就是说,上面的三条update语句中,sql1这条语句的修改操作起作用了
75 * sql2的修改操作由于事务回滚没有起作用,sql3由于程序异常没有机会执行
76 */
77 conn.rollback(sp);//回滚到设置的事务回滚点
78 //回滚了要记得通知数据库提交事务
79 conn.commit();
80 } catch (SQLException e1) {
81 e1.printStackTrace();
82 }
83 e.printStackTrace();
84 }finally{
85 JdbcUtils.release(conn, st, rs);
86 }
87 }
88 }
(大对象啥的没听过先不看了!!)
(时间)
咸鱼入门到放弃1--JDBC的更多相关文章
- 咸鱼入门到放弃13--监听器(Listener)
一.监听器介绍 1.1.监听器的概念
- 咸鱼入门到放弃12--Filter(过滤器)*
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- 咸鱼入门到放弃11--Servlet+JSP+JavaBean开发模式
本篇搬运了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servle ...
- 咸鱼入门到放弃10--javaweb的两种开发模式
(本篇是之前方法的综合使用,新东西不多,其中也涉及三层架构的问题.此处直接引用了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3908610.html) SUN公 ...
- 咸鱼入门到放弃9--jsp中使用的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- 咸鱼入门到放弃8--jsp<三>jsp内置对象
NO. 内置对象 类型 1 pageContext javax.servlet.jsp.PageContext 2 request javax.servlet.http.HttpServletRequ ...
- 咸鱼入门到放弃7--jsp<二>jsp常用标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- 咸鱼入门到放弃6--jsp<一>三指令
JSP全称是Java Server Pages 它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...
- 咸鱼入门到放弃5--Session和Cookie
保存会话数据的两种技术 1.Cookie Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去. ...
随机推荐
- 5分钟搞定Nginx安装
1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcr ...
- 关于socket.io获取客户端真实IP地址
1 前言 由于使用了CDN加速,导致了socket.handshake.address拿到值都是服务器的,而没有使用CDN加速时,可以拿到客户端真实IP. 2 代码 if(socket.handsha ...
- Js操作Array数组
之前写过一篇文章,但是很模糊,不过却给我提供了一个思路,所以没有删除,这次写的是一个完善版本! 因为在很多的时候我们在选中了几行数据,然后存放在Array中,如下图: 看下控制台的数据 我双击了这两个 ...
- Python-Mongodb vs mysql
mongodb https://www.cnblogs.com/kermitjam/articles/10147254.html#_label5 centos安装mongodb: https://bl ...
- 哎呀,搬运blog好累啊,96篇呢QwQ
累死了,哼 哎呀,算了,不搬了不搬了
- Url解码和编码 escape()、encodeURI()、encodeURIComponent()区别详解
Server.UrlDecode;解码 Server.UrlEncode;编码 url编码是一种浏览器用来打包表单输入的格式.浏览器从表单中获取所有的name和其中的值 ,将它们以name/value ...
- iOS -- Effective Objective-C 阅读笔记 (1)
1: 在类的头文件中尽量 少 的引用其他头文件,尽量用 @class xxxxxx; 理解: 当你创建了一个 A 类,这个类又 需要具有 B 类的实例, 你可以直接为 A 类添加 B 类类型的 属性, ...
- Confluence 6 从你的 JDBC 连接中直接启用校验查询
确定 Confluence 在数据库连接池中校验数据库连接: 停止 Confluence. 编辑 <home-directory>confluence.cfg.xml 文件. 针对你特定的 ...
- 调皮的HR
如图:笔试题 # -*- coding: utf- -*- """ Created on Thu Apr :: @author: weilong "" ...
- 如何在PDF中添加水印,PDF添加水印技巧
PDF文件现在的使用很是普遍,不管是工作中还是学习中都会使用到PDF文件,制作一个PDF文件就很辛苦的,我们要是想把PDF文件中添加水印防止抄袭的时候应该要怎么做呢,其实吧PDF文件添加水印还挺简单的 ...