日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

wkspring教程

Spring JDBC 框架

閱讀 (2109)

JDBC 框架概述

在使用普通的 JDBC 數據庫時,就會很麻煩的寫不必要的代碼來處理異常,打開和關閉數據庫連接等。但 Spring JDBC 框架負責所有的低層細節,從開始打開連接,準備和執行 SQL 語句,處理異常,處理事務,到最后關閉連接。

所以當從數據庫中獲取數據時,你所做的是定義連接參數,指定要執行的 SQL 語句,每次迭代完成所需的工作。

Spring JDBC 提供幾種方法和數據庫中相應的不同的類與接口。我將給出使用 JdbcTemplate 類框架的經典和最受歡迎的方法。這是管理所有數據庫通信和異常處理的中央框架類。

JdbcTemplate 類

JdbcTemplate 類執行 SQL 查詢、更新語句和存儲過程調用,執行迭代結果集和提取返回參數值。它也捕獲 JDBC 異常并轉換它們到 org.springframework.dao 包中定義的通用類、更多的信息、異常層次結構。

JdbcTemplate 類的實例是線程安全配置的。所以你可以配置 JdbcTemplate 的單個實例,然后將這個共享的引用安全地注入到多個 DAOs 中。

使用 JdbcTemplate 類時常見的做法是在你的 Spring 配置文件中配置數據源,然后共享數據源 bean 依賴注入到 DAO 類中,并在數據源的設值函數中創建了 JdbcTemplate。

配置數據源

我們在數據庫 TEST 中創建一個數據庫表 Student。假設你正在使用 MySQL 數據庫,如果你使用其他數據庫,那么你可以改變你的 DDL 和相應的 SQL 查詢。

CREATE TABLE Student(
   ID   INT NOT NULL AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE  INT NOT NULL,
   PRIMARY KEY (ID)
);

現在,我們需要提供一個數據源到 JdbcTemplate 中,所以它可以配置本身來獲得數據庫訪問。你可以在 XML 文件中配置數據源,其中一段代碼如下所示:

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
   <property name="username" value="root"/>
   <property name="password" value="password"/>
</bean>

數據訪問對象(DAO)

DAO 代表常用的數據庫交互的數據訪問對象。DAOs 提供一種方法來讀取數據并將數據寫入到數據庫中,它們應該通過一個接口顯示此功能,應用程序的其余部分將訪問它們。

在 Spring 中,數據訪問對象(DAO)支持很容易用統一的方法使用數據訪問技術,如 JDBC、Hibernate、JPA 或者 JDO。

執行 SQL 語句

我們看看如何使用 SQL 和 jdbcTemplate 對象在數據庫表中執行 CRUD(創建、讀取、更新和刪除)操作。

查詢一個整數類型:

String SQL = "select count(*) from Student";
int rowCount = jdbcTemplateObject.queryForInt( SQL );

查詢一個 long 類型:

String SQL = "select count(*) from Student";
long rowCount = jdbcTemplateObject.queryForLong( SQL );

一個使用綁定變量的簡單查詢:

String SQL = "select age from Student where id = ?";
int age = jdbcTemplateObject.queryForInt(SQL, new Object[]{10});

查詢字符串:

String SQL = "select name from Student where id = ?";
String name = jdbcTemplateObject.queryForObject(SQL, new Object[]{10}, String.class);

查詢并返回一個對象:

String SQL = "select * from Student where id = ?";
Student student = jdbcTemplateObject.queryForObject(SQL, 
                  new Object[]{10}, new StudentMapper());
public class StudentMapper implements RowMapper<Student> {
   public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
      Student student = new Student();
      student.setID(rs.getInt("id"));
      student.setName(rs.getString("name"));
      student.setAge(rs.getInt("age"));
      return student;
   }
}

查詢并返回多個對象:

String SQL = "select * from Student";
List<Student> students = jdbcTemplateObject.query(SQL,
                         new StudentMapper());
public class StudentMapper implements RowMapper<Student> {
   public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
      Student student = new Student();
      student.setID(rs.getInt("id"));
      student.setName(rs.getString("name"));
      student.setAge(rs.getInt("age"));
      return student;
   }
}

在表中插入一行:

String SQL = "insert into Student (name, age) values (?, ?)";
jdbcTemplateObject.update( SQL, new Object[]{"Zara", 11} );

更新表中的一行:

String SQL = "update Student set name = ? where id = ?";
jdbcTemplateObject.update( SQL, new Object[]{"Zara", 10} );

從表中刪除一行:

String SQL = "delete Student where id = ?";
jdbcTemplateObject.update( SQL, new Object[]{20} );

執行 DDL 語句

你可以使用 jdbcTemplate 中的 execute(..) 方法來執行任何 SQL 語句或 DDL 語句。下面是一個使用 CREATE 語句創建一個表的示例:

String SQL = "CREATE TABLE Student( " +
   "ID   INT NOT NULL AUTO_INCREMENT, " +
   "NAME VARCHAR(20) NOT NULL, " +
   "AGE  INT NOT NULL, " +
   "PRIMARY KEY (ID));"
jdbcTemplateObject.execute( SQL );

Spring JDBC 框架例子

基于上述概念,讓我們看看一些重要的例子來幫助你理解在 Spring 中使用 JDBC 框架:

序號例子 & 描述
1Spring JDBC Example

這個例子將解釋如何編寫一個簡單的基于 Spring 應用程序的 JDBC。

2SQL Stored Procedure in Spring

學習在使用 Spring 中的 JDBC 時如何調用 SQL 存儲過程。

關閉
程序員人生
主站蜘蛛池模板: 国产最新精品视频 | 日本福利一区二区三区 | 亚洲狼人| 福利视频在线播放 | 欧美一区免费 | 夜夜99| tv电影天堂 | 九九热视频在线观看 | a级一级毛片 | 亚洲欧美久久 | 国产欧美精品区一区二区三区 | 国产精品成人一区二区网站软件 | 福利在线观看 | 亚洲三级视频 | 亚洲国产午夜 | 久久久一二三 | 一区二区三区四区国产 | 日韩精品区 | 黑人中文字幕一区二区三区 | 欧美日韩免费看片 | 欧美激情综合五月色丁香小说 | 在线观看的av | 午夜精品999 | 久久性生活免费视频 | 精品一区二区三区免费毛片爱 | 日本xxxxwwwww| 日韩欧美色综合 | 又黄又爽一线毛片免费观看 | 精品国产乱码久久久久久久软件 | 在线日韩欧美 | 天堂在线中文资源 | 亚洲欧美日韩电影 | 成人在线视频一区 | 久久99久久精品 | 国产福利二区 | 中国av免费在线观看 | 久久久久久久久网站 | 欧洲精品久久久 | 国产精品久久久久久久久久新婚 | 国产91在线视频 | 爱爱视频一区 |