隨筆-72  評(píng)論-63  文章-0  trackbacks-0

          import?java.sql.CallableStatement;
          import?java.sql.PreparedStatement;
          import?java.sql.ResultSet;
          import?java.sql.SQLException;
          import?java.sql.Types;
          import?java.util.List;

          import?org.springframework.jdbc.core.BatchPreparedStatementSetter;
          import?org.springframework.jdbc.core.CallableStatementCallback;
          import?org.springframework.jdbc.core.JdbcTemplate;
          import?org.springframework.jdbc.core.RowCallbackHandler;
          import?org.springframework.jdbc.core.RowMapper;
          import?org.springframework.jdbc.core.RowMapperResultReader;

          public ? class ?SpringJDBCDAO? {

          ????
          private ? class ?PersonRowMapper?implements?RowMapper? {
          ????????
          public ?Object?mapRow(ResultSet?rs,? int ?index)?throws?SQLException? {
          ????????????Person?person?
          = ? new ?Person();
          ????????????person.setId(
          new ?Integer(rs.getInt( " id " )));
          ????????????person.setFirstName(rs.getString(
          " first_name " ));
          ????????????person.setLastName(rs.getString(
          " last_name " ));
          ????????????
          return ?person;
          ????????}

          ????}


          ????
          private ?JdbcTemplate?jdbcTemplate;

          ????
          public ? void ?processStoredProcedure()? {
          ????????CallableStatementCallback?cb?
          = ? new ?CallableStatementCallback()? {
          ????????????
          public ?Object?doInCallableStatement(CallableStatement?cs)
          ????????????????????throws?SQLException?
          {
          ????????????????cs.execute();
          ????????????????
          return ? null ;
          ????????????}

          ????????}
          ;
          ????????jdbcTemplate.execute(
          " {?ARCHIVE_STUDENTS?} " ,?cb);
          ????}


          ????
          public ?List?getAllPersons()? {
          ????????String?sql?
          = ? " select?id,?first_name,?last_name?from?person " ;
          ????????
          return ?jdbcTemplate.query(sql,? new ?RowMapperResultReader(
          ????????????????
          new ?PersonRowMapper()));
          ????}


          ????
          public ?String?getLastNameForId(Integer?id)? {
          ????????String?sql?
          = ? " select?last_name?from?person?where?id?=?? " ;
          ????????
          return ?(String)?jdbcTemplate.queryForObject(sql,? new ?Object[]? {?id?} ,
          ????????????????String.
          class );
          ????}


          ????
          public ? int ?getNumberOfPersons()? {
          ????????
          return ?jdbcTemplate.queryForInt( " select?count(*)?from?person " );
          ????}


          ????
          public ?Person?getPerson1(final?Integer?id)? {
          ????????String?sql?
          = ? " select?id,?first_name,?last_name?from?person??where?id?=?? " ;
          ????????final?Person?person?
          = ? new ?Person();
          ????????final?Object[]?
          params ? = ? new ?Object[]? {?id?} ;
          ????????jdbcTemplate.query(sql,?
          params ,? new ?RowCallbackHandler()? {
          ????????????
          public ? void ?processRow(ResultSet?rs)?throws?SQLException? {
          ????????????????person.setId(
          new ?Integer(rs.getInt( " id " )));
          ????????????????person.setFirstName(rs.getString(
          " first_name " ));
          ????????????????person.setFirstName(rs.getString(
          " last_name " ));
          ????????????}

          ????????}
          );
          ????????
          return ?person;
          ????}


          ????
          public ?Person?getPerson2(final?Integer?id)? {
          ????????String?sql?
          = ? " select?id,?first_name,?last_name?from?person??where?id?=?? " ;
          ????????final?Person?person?
          = ? new ?Person();
          ????????final?Object[]?
          params ? = ? new ?Object[]? {?id?} ;
          ????????List?list?
          = ?jdbcTemplate.query(sql,? params ,? new ?RowMapperResultReader(
          ????????????????
          new ?PersonRowMapper()));
          ????????
          return ?(Person)?list. get ( 0 );
          ????}


          ????
          public ? int ?insertPerson(Person?person)? {
          ????????String?sql?
          = ? " insert?into?person?(id,?firstName,?lastName)??values?(?,??,??) " ;
          ????????Object[]?
          params ? = ? new ?Object[]? {?person.getId(),?person.getFirstName(),
          ????????????????person.getFirstName()?}
          ;
          ????????
          int []?types? = ? new ? int []? {?Types.INTEGER,?Types.VARCHAR,?Types.VARCHAR?} ;
          ????????JdbcTemplate?jdbcTemplate?
          = ? null ;
          ????????
          return ?jdbcTemplate.update(sql,? params ,?types);
          ????}


          ????
          public ? int []?updatePersons(final?List?persons)? {
          ????????String?sql?
          = ? " insert?into?person?(id,?firstName,?lastName)?values?(?,??,??) " ;
          ????????BatchPreparedStatementSetter?setter?
          = ? null ;
          ????????setter?
          = ? new ?BatchPreparedStatementSetter()? {
          ????????????
          public ? int ?getBatchSize()? {
          ????????????????
          return ?persons.size();
          ????????????}


          ????????????
          public ? void ?setValues(PreparedStatement?ps,? int ?index)
          ????????????????????throws?SQLException?
          {
          ????????????????Person?person?
          = ?(Person)?persons. get (index);
          ????????????????ps.setInt(
          0 ,?person.getId().intValue());
          ????????????????ps.setString(
          1 ,?person.getFirstName());
          ????????????????ps.setString(
          2 ,?person.getLastName());
          ????????????}

          ????????}
          ;
          ????????
          return ?jdbcTemplate.batchUpdate(sql,?setter);
          ????}

          }

          ============

          import?java.sql.ResultSet;
          import?java.sql.SQLException;
          import?java.sql.Types;

          import?javax.sql.DataSource;

          import?org.springframework.jdbc.core.SqlParameter;
          import?org.springframework.jdbc.
          object .MappingSqlQuery;
          import?org.springframework.jdbc.
          object .SqlUpdate;

          public ? class ?SpringJDBCDAOWithObject? {
          ????
          class ?InsertPerson?extends?SqlUpdate? {
          ????????
          public ?InsertPerson(DataSource?ds)? {
          ????????????setDataSource(ds);
          ????????????setSql(
          " insert?into?person?(id,?firstName,?lastName)?values?(?,??,??) " );
          ????????????declareParameter(
          new ?SqlParameter(Types.NUMERIC));
          ????????????declareParameter(
          new ?SqlParameter(Types.VARCHAR));
          ????????????declareParameter(
          new ?SqlParameter(Types.VARCHAR));
          ????????????compile();
          ????????}


          ????????
          public ? int ?insert(Person?person)? {
          ????????????Object[]?
          params ? = ? new ?Object[]? {?person.getId(),
          ????????????????????person.getFirstName(),?person.getLastName()?}
          ;
          ????????????
          return ?update( params );
          ????????}

          ????}


          ????
          private ? class ?PersonByIdQuery?extends?MappingSqlQuery? {
          ????????
          public ?PersonByIdQuery(DataSource?ds)? {
          ????????????super(ds,?
          " select?id,?first_name,?last_name?from?person? "
          ????????????????????
          + ? " where?id?=?? " );
          ????????????declareParameter(
          new ?SqlParameter( " id " ,?Types.INTEGER));
          ????????????compile();
          ????????}


          ????????
          public ?Object?mapRow(ResultSet?rs,? int ?rowNumber)?throws?SQLException? {
          ????????????Person?person?
          = ? new ?Person();
          ????????????person.setId((Integer)?rs.getObject(
          " id " ));
          ????????????person.setFirstName(rs.getString(
          " first_name " ));
          ????????????person.setLastName(rs.getString(
          " last_name " ));
          ????????????
          return ?person;
          ????????}

          ????}


          ????
          private ?InsertPerson?insertPerson;
          ????
          ????
          private ?PersonByIdQuery?personByIdQuery;
          ??
          ????
          public ?Person?getPerson(Integer?id)? {
          ????Object[]?
          params ? = ? new ?Object[]? {?id?} ;
          ????
          return ?(Person)?personByIdQuery.execute( params ). get ( 0 );
          ????}


          ????
          public ? int ?insertPerson(Person?person)? {
          ????????
          return ?insertPerson.insert(person);
          ????}

          }

          posted on 2006-05-01 23:59 船長(zhǎng) 閱讀(728) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 乌苏市| 肥西县| 肇庆市| 会昌县| 宜宾市| 颍上县| 顺昌县| 太原市| 平遥县| 项城市| 文水县| 田林县| 婺源县| 河北省| 康马县| 泸定县| 南岸区| 澜沧| 囊谦县| 汉寿县| 清水河县| 达拉特旗| 泽州县| 织金县| 兴国县| 湟源县| 灌云县| 丘北县| 武宁县| 潜山县| 谢通门县| 乌鲁木齐县| 慈溪市| 孙吴县| 江都市| 福安市| 东辽县| 大洼县| 栾城县| 邻水| 龙江县|