posts - 3, comments - 15, trackbacks - 0, articles - 26
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

spring-framework-1.2.6-chapter11

Posted on 2005-12-30 19:52 morcble的blog 阅读(230) 评论(0)  编辑  收藏 所属分类: Spring

11.2. Using the JDBC Core classes to control basic JDBC
processing and error handling

11.2.1.
创建数据源(数据源里隐藏了数据连接池)
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName( "org.hsqldb.jdbcDriver");
dataSource.setUrl( "jdbc:hsqldb:hsql://localhost:");
dataSource.setUsername( "sa");
dataSource.setPassword( "");


11.2.3. SQLExceptionTranslator
      配置JdbcTemplate及异常处理
 // create a JdbcTemplate and set data source
 JdbcTemplate jt = new JdbcTemplate();
 jt.setDataSource(dataSource);
 // create a custom translator and set the datasource for the default translation lookup
 MySQLErrorCodesTransalator tr = new MySQLErrorCodesTransalator();
 tr.setDataSource(dataSource);
 jt.setExceptionTranslator(tr);
 // use the JdbcTemplate for this SqlUpdate
 SqlUpdate su = new SqlUpdate();
 su.setJdbcTemplate(jt);
 su.setSql("update orders set shipping_charge = shipping_charge * 1.05");
 su.compile();
 su.update();

11.2.4 简单的调用配置好了的JdbcTemplate就可以执行SQL语句 如下

 import javax.sql.DataSource;
 import org.springframework.jdbc.core.JdbcTemplate;
 public class ExecuteAStatement {
  private JdbcTemplate jt;
  private DataSource dataSource;
  public void doExecute() {
   jt = new JdbcTemplate(dataSource);
   jt.execute("create table mytable (id integer, name varchar(100))");
  }
  public void setDataSource(DataSource dataSource) {
   this.dataSource = dataSource;
  }
 }

11.2.5. 执行查询语句
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
 public class RunAQuery {
   private JdbcTemplate jt;
   private DataSource dataSource;
   public int getCount() {
  jt = new JdbcTemplate(dataSource);
  int count = jt.queryForInt("select count(*) from mytable");
  return count;
  }
 
 public String getName() {
   jt = new JdbcTemplate(dataSource);
   String name = (String) jt.queryForObject("select name from mytable", String.class);
   (注:如果更新语句就书写jt.update("update mytable set name = ? where id = ?", new Object[] {name, new Integer(id)});)
   return name;
  }①

        public List getList() {
   jt = new JdbcTemplate(dataSource);
   List rows = jt.queryForList("select * from mytable");
   return rows;
 }②   (①②取其一)
 
 public void setDataSource(DataSource dataSource) {
  this.dataSource = dataSource;
  }
}


只有注册用户登录后才能发表评论。


网站导航: