传统的 Jdbc数据访问技术的一般的流程是:首先获取数据源,然后根据数据源
获取数据连接,接着设定事务开始,执行相应的操作,最后执行成功则提交,执行失败则回
滚。下面,通过示例来看 JDBC中是怎么使用事务处理的,示例代码如下:
[Java]
view plain
copy
- Public Class HelloWorld {
- Connection conn =null;
- Statement stmt = null;
- try {
- //获取数据连接
- Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);
- conn = DriverManager.getConnection(jdbc:microsoft:sqlserver://localhost:1433/stdb,
- admin, admin);
- //开始启动事务
- conn.setAutoCommit(false);
- stmt =conn.createStatement();
- //执行相应操作
- stmt.executeUpdate("insert into hello values(1,‘gf’, ‘HelloWorld’)'");
- //执行成功则提交事务
- conn.commit();
- } catch (SQLException e) {
- if (conn != null) {
- try {
- //执行不成功,则回滚
- conn.rollback();
- } catch (SQLException ex) {
- System.out.println(“数据连接有异常” + ex);
- }
- }
- } finally {
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException ex) {
- System.out.println(“执行操作有异常” + ex);
- }
- }
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException ex) {
- System.out.println(“数据连接有异常” + ex);
- }
- }
- ]
- }
- <pre></pre>
- <pre></pre>
- <p> </p>
- <p class="MsoNormal" align="left" style="margin:0cm 0cm 0pt 56.65pt; text-align:left; line-height:13.3pt">
- <span style="font-family:宋体; color:black; font-size:11pt">上面代码只是一个使用</span><span style="color:black; font-size:11pt"> Jdbc</span><span style="font-family:宋体; color:black; font-size:11pt">连接的示例,在实际的应用中,是不会这样用的,一方面编写</span><span style="color:black; font-size:11pt"></span></p>
- <p class="MsoNormal" align="left" style="margin:0cm 0cm 0pt 56.65pt; text-align:left; line-height:16pt">
- <span style="font-family:宋体; color:black; font-size:10pt">代码繁琐,一方面效率太低,而</span><span style="color:black; font-size:10pt"> Spring</span><span style="font-family:宋体; color:black; font-size:10pt">在持久层这方面提供了更好的支持,对</span><span style="color:black; font-size:10pt">
- Jdbc</span><span style="font-family:宋体; color:black; font-size:10pt">进行了</span><span style="color:black; font-size:10pt"></span></p>
- <p class="MsoNormal" align="left" style="margin:0cm 0cm 0pt 56.65pt; text-align:left; line-height:15.3pt">
- <span style="font-family:宋体; color:black; font-size:11pt">良好的封装。</span><span style="color:black; font-size:11pt"></span></p>
- <p class="MsoNormal" align="left" style="margin:0cm 0cm 0pt 77.3pt; text-align:left; line-height:16.65pt">
- <span style="font-family:宋体; color:black; font-size:10pt">注意:本章示例中使用的数据库表名为</span><span style="color:black; font-size:10pt"> hello</span><span style="font-family:宋体; color:black; font-size:10pt">,该表包含</span><span style="color:black; font-size:10pt"> 3</span><span style="font-family:宋体; color:black; font-size:10pt">个字段:</span><span style="color:black; font-size:10pt">id</span><span style="font-family:宋体; color:black; font-size:10pt">、</span><span style="color:black; font-size:10pt">name</span><span style="font-family:宋体; color:black; font-size:10pt">、</span><span style="color:black; font-size:10pt">msg</span><span style="font-family:宋体; color:black; font-size:10pt">。其</span><span style="color:black; font-size:10pt"></span></p>
- <p><span style="font-family:宋体; color:black; font-size:11pt">中</span><span style="font-family:'Times New Roman'; color:black; font-size:11pt"> id</span><span style="font-family:宋体; color:black; font-size:11pt">为整型,其余</span><span style="font-family:'Times New Roman'; color:black; font-size:11pt">
- 2</span><span style="font-family:宋体; color:black; font-size:11pt">个都是字符串类型。</span></p>
- <pre></pre>