转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
JSP中SQL数据库编程技术         

JSP中SQL数据库编程技术

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2860 更新时间:2007/11/14 13:08:29

JSP中SQL数据库编程技术
一,SQL复习
 1,SQL语句分为两类:DDL(Data Definition Language)和DML(Dat Manipulation Languge,数据操作语言)。前者主要是定义数据逻辑结构,包括定义表、视图和索引;DML主要是对数据库进行查询和更新操作。
 2,Create Table(DDL):
  Create Table tabName(
   colName1 colType1 [else],
   colName2 colType2 [else],
   ...,
   colNamen colTypen [else]
  );
  例如:Cteate Table pJoiner(
   pno char(6) not null,
   eno char(6) nut null
   );
  char int varchar等等都是用来定义列数据类型的保留字,其中varchar表示可变字符类型。
 3,Select <col1>,<col2>,...,<coln>
  From <tab1>,<tab2>,...,<tabm>
  [Where<条件>]
  
  条件中的子查询:
   Where Not Exists(
    Select * From tab2 Where col1=col2
   )//当查询结果为空时,条件为真。
   
 4,INSERT INTO <tab1> VALUES(<col1>, ...<coln>)
 5,DELETE FROM <tab1> [WHERE<条件>]
 6,UPDATE <tab1>
  SET <tab1>=<vlu1>
  ...
  <tabn>=<vlun>
  [WHERE<条件>]
  例如:
   Update exployee
   Set age=27
   Where name=''''赵一''''
二,JDBC 主要接口:
 java.sql.DriverManager类用于处理驱动程序的调入并且对新的数据库连接提供支持。
 java.sql.Connection,指应用程序与特定数据库的连接。
 java.sql.Statement,用于一般sql语句的执行(可以是查询、更新甚至可以创建数据库的执行过程)
 java.sql.ResultSet,查询所返回的结果保存在此对象中,用它可以浏览和存取数据库内的记录。
 
 1,通过jdbc-odbc桥使用odbc数据库(并不需要jdbc Drivers)
 
  先在odbc DSN(Data Source Name)设置处设置pubs sysDSN,sa为username,密码为空
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
  con=DriverManager.getConnection("jdbc:odbc:pubs","sa","");//jdbc:odbc:pubs   
  con.close();
  //应当catch ClassNotFoundException和SQLException
 
  Connection的getWarning方法返回一个SQLWarning对象,在连接之前应当先检查。
    使用jdbc-odbc的最大好处是:免费的。但是性能受odbc的限制,而且一般odbc驱动比较昂贵。
 2,使用专门的jdbc驱动程序。//此处是mm jdbc Driver
  先将jar文件放在ClassPath里面。
  Class.forName("org.gjt.mm.mysql.Driver");
  con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","root","");
  con.close();
  
  可见使用何种方式连接何种数据库与数据库的操作和连接数据库是无关的。
三,查询数据库
 Statement stmt=con.createStatement();
 stmt.setMaxRows()可以控制输出记录最大数量;
 ResultSet rs=stmt.executeQuery("select .....");
 
 ResultSet指向当前记录:
  int userId=rs.getInt("userid");
  String userName=rs.getString("username");
  ...或者用序号(从1开始的)
  int userId=rs.getInt(1);
  Stirng userName=rs.getString(2);
 
 ClassNotFoundException是由于Class.forName()无法载入jdbc驱动程序触发的
 SQLException是jdbc在执行过程中发生问题时产生。有一个额外的方法getNextException()
  catch(SQLException e){
   out.println(e.getMessage());
   while(e=e.getNextException()){
    out.println(e.getMessage());
   }
  }
   
 一般来说并不建议在jsp中编写数据库的访问程序,可以将数据库的访问封装在一个javabean中。
四,ResultSet深入
 1,ResultSetMetaData
  ResultSet rs=stmt.executeQuery("select....");
  ResultSetMetaData rsmd=rs.getMetaData(); //获取ResultSetMateData对象
  int numberOfColumns=rsmd.getColumnCount();//返回列数
  boolean b=rsmd.isSearchable(int i);//返回第i列是否可以用于where子句
  String c=rsmd.getColumnLabel(int i);//获取第i列的列标
  Objcet obj=rs.getObject();
  if(obj!=null)out.println(obj.toString());
  else println("");
 2,SQL类型与ResultSet的getObject返回类型及对应的XXX getXXX()方法
  SQL类型  JSP类型   对应的getXXX()方法
  ————————————————————————————————————————————
  CHAR                         String                                            String getString()
  VARCHAR                 String                                            String getString()
  LONGVARCHAR      String                                            InputStream getAsciiStream()/getUnicodeStream()
  NUMERIC                  java.math.BigDecimal              java.math.BigDecimal getBigDecimal()
  DECIMAL                   同上
  BIT                              Boolean                                       boolean getBoolean()
  TINYINT                     Integer                                          byte getByte()
  SMALLINT                 Integer                                          short getShort()
  INTEGER                  Integer                       &n

[1] [2] [3]  下一页


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台