- JdbcTemplate將咱們使用的JDBC的流程封裝起來,包括了異常的捕捉、SQL的執行、查詢結果的轉換等等。spring大量使用Template Method模式來封裝固定流程的動做,XXXTemplate等類別都是基於這種方式的實現。
- JdbcTemplate 用來 抽象咱們經常使用的一些方法。
- 配合JDK1.5中的可變參數列表,用起來很爽!
- <beans>
- <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
- <property name="URL">
- <value>jdbc:oracle:thin:root/123@localhost:1521/XE</value>
- </property>
- </bean>
- <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- </bean>
- <bean id="userDAO" class="DAO.Imp.UserDAOImp">
- <property name="jdbcTemplate">
- <ref bean="jdbcTemplate" />
- </property>
- </bean>
- <bean id="user" class="Model.User">
- <property name="dao">
- <ref bean="userDAO" />
- </property>
- </bean>
- </beans>?
- ?
- public void execute(String sql, Object... args) {
- this.simpleJdbcTemplate.update(sql, args);
- }
- jdbcTemplate.queryForInt("SELECT last_insert_id() as id");
- public List queryForList(String sql, Object... args) {
- return this.jdbcTemplate.queryForList(sql, args);
- }?
- ?
- public String buildPageSql(String _sql, int page, int pageSize) {
- String sql_str = null;
- String db_type = EopSetting.DBTYPE;
- if (db_type.equals("1")) {
- db_type = "mysql";
- } else {
- db_type = "oracle";
- }
- if (db_type.equals("mysql")) {
- sql_str = _sql + " LIMIT " + (page - 1) * pageSize + "," + pageSize;
- } else {
- StringBuffer sql = new StringBuffer(
- "SELECT * FROM (SELECT t1.*,rownum sn1 FROM (");
- sql.append(_sql);
- sql.append(") t1) t2 WHERE t2.sn1 BETWEEN ");
- sql.append((page - 1) * pageSize + 1);
- sql.append(" AND ");
- sql.append(page * pageSize);
- sqlsql_str = sql.toString();
- }
- return sql_str.toString();
- }
java
本文摘自:http://uule.javaeye.com/blog/841105mysql