jdbc学习笔记

1.判断数据集是否为空 results.wasNull()
2.BigDecimal 它
3。返回/设定的行数;
  Statement statement = connection.createStatement();
  int maxrow = statement.getMaxRows();
  statement.setMaxRows(3);
4返回/设定最大字段
  Statement statement = connection.createStatement();
  int maxFieldSize=statement .getMaxFieldSize();
  statement .setMaxFieldSize(2342);
5,查询超时
  Statement statement = connection.createStatement();
  int i = statement.getQueryTimeout();
  statement.setQueryTimeout();
6,RESULTSET提供导航(在创建Statement时提供参数来设置conn.createStatement(ResultSet.TYPE_
FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY  其中参数还有ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.TYPE_SCROLL_SENSITIVE);
  PREVIOUS
  FIRST
  ISFIRST
  LAST
  ISLAST
  ABSOLUTE(INT N)移动到指定行
  RELATIVE(INT N)从当前行开始移动N行
  ISAFTERLAST()
  ISBEFOREFIRST
7 ,提供了在修改结果被提交后仍使RESULTSET对象保持打开的能力
   ResultSet.HOLD_CURSORS_OVER_COMMIT 该参数指定ResultSet对象在修改被提交时不应该被关闭
   ResultSet.CLOSE_CURSORS_AT_COMMIT 该参数指定ResultSet对象在修改被提交时可以关闭
8。获取数据库的表(使用DatabaseMetaData )
   Connection conn=null;ResultSet rset=null;
   conn=ConnectionFactory.getConnection();
   DatabaseMetaData dbmd = conn.getMetaData();
   String[] types={"TABLE"};
   rset = dbmd.getTable(null,"App",null,types);//第一个从给定编目中获得表,第二个给定框架中
   获得表;第三个表名,第四个返回何种表的数组
   Vector vtables = new Vector();
   String aTable;
   while(rset.next()){aTable=table.getString("TABLE_NAME");
   vtables.add(aTable);
   }
   Iterator ite = vtables.iterator();
   String se;
   while(ite.hasNext()){
    aTable = (String)ite.next();
    ResultSet columns = dbmd.getColumns(null,null,aTable,null);
   while(columns.next()){}
   }
9.结果集元数据(ResultSetMetaData)
   ResultSet rs = statement.executeQuery(sql);
  (ResultSetMetaData)dbmd =rs.getMetaData;
10.使用行集
   1,CachedRowSet一种把数据保存在内存中的断开连接的对象(优点:发送给弱小客户)
   {cacheRs = new  CachedRowSet();
   String sql = "select * from stu";
   cacheRs.setCommand(sql);
   cacheRs.execute(connection); }

   2,JDBCRowSet 在工作期间始终与数据源保持连接,但不行串行化

   3,WebRowSet
   允许写入,读出XML中的数据;
   void write() throws SQLException IOException{
 FileWriter fw = null;
 try{ File file = new File("recording"+recordingid+"Tracks.xml");
             fw = new FileWriter(file);
             webrs.writeXML(fw);
        }finally{fw.flush;fw.close;}
   }
11,准备语句(PreparedStatement)
 String sql = "insert into stu(id,name) values(?,?)";
 PreparedStatement  ps = conn.prepareStatement(sql);
 ps.setInt(1,23);
 ps.setString(2,"asfd");
 ps.executeUpdate();
 ps.clearParameters();
 for example
    public class Track{
 boolean create;
 boolean delete;
 boolean retrieve;
 boolean update;
 PreparedStatement  ps;
 Result rs;
 Vector results;
 static String sqlSelect = "select "+"stu.name, "+"stu.sex,"+"score.aa";
 static String sqlfrom = " from stu,score ";
 static String sqlwhere = " where ";
 static String whereCont="like ? and stu.id=score.id";
 public Track(){}
 public static String getFindSexSql()
   {return sqlSelect +sqlfrom +sqlwhere+"sex "+whereCont; }
 public static String getFindAgeSql()
   {return sqlSelect +sqlfrom +sqlwhere+"age "+whereCont; }
 public void setQueryStatement(PreparedStatement  pres){
   ps =pres;
   create=false;
   delete=false;
   retrieve = (pres!=null?true:false);
   update=false;
 }
 private boolean executeSql()throws SQLException{
   if (create||delete||insert){
  int result = ps.executeUpdate();
  return(result==1);
   }else if(retrieve){
  resultSet = ps.executeQuery();
  results = new Vector();
  if(resultSet.next()){
    Track track=new Track();
    track.populate(resultSet);
   results.add(track);
  return(true);
  }
   }else{throw new SQLException("nsdfjsldfj")}
 } 
 public Vector findByAge(String age)throw SQLException{
  ps.setString(1,"%"+age+"%");
  if (executeSql()){ parseResultSet();
  }
  return( results);
 }
 private void parseResultSet() throws SQLException{
  try{ while(resultSet.next(){
   Track track = new Track();
   track.populate(resultSet);
   results.add(track);  
  }
  }finally{connfactory.close(resultSet);}
 }
 public void populate(ResultSet rset)throw SQLException{
  setname(rset.getInt("name");
  set......
 }
        setname....
 getname 
    }
   使用此类
  try{  Connction con = Co.getconnction();
 String sql= Track.getFindSexSql();
 ps = con.prepareStatement(sql);
 Track track = new Track();
 track.setQueryStatement(ps);
 String subs = "ee";
 Vector v = track.findByAge(sub);
 Iterator iterator = v.iterator();//Iterator 是一个循环器
 while(iterator .hasNext()){
  Track t = (Track)iterator.next();
  checkForSubString(t.getname(),subs);
 }
 statci void checkForSubString(String fullString,String subString){
 if (fullString.indexOf(subString)!=-1){
 doSomething
 }else{ doSomething}
}
  }

9.native2ascii.exe来生成国际化

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值