tomcat javaweb 开发基础(4)
2013-05-12 19:03
363 查看
一:访问数据库
首先介绍一下基本的概念:
DBC的英文全称是 Java Database Connectivity 。
JDBC的主要作用是 连接Java程序和数据库的纽带 。
为什么需要JDBC :JDBC是Java数据库连接技术的简称,向Java应用程序提供连接各种常用数据库的能力
(1)JDBC API
提供者:sun公司
内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
1.DriverManager类 2. Connection接口
3.Statement接口 4.ResultSet接口
(2)DriverManager
提供者:sun公司
作用:载入各种不同的JDBC驱动
(3)JDBC 驱动
提供者:数据库厂商
作用:负责连接各种不同的数据库
JDBC API
JDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果
JDBC API中类和接口的作用:
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果
JDBC API: 主要位于java.sql包中
Driver接口和DriverManager类:驱动器,驱动管理器
Connection 接口:数据库连接
Statement 接口:负责执行sql语句
PreparedStatement接口:负责执行预准备的sql语句
ResultSet接口:表示sql查询语句返回的结果集
再进行上面类和各接口的详解:
1.Driver接口和DriverManager类
所有的JDBC驱动器都必须实现Driver接口,在编写访问数据库的java程序时,比较把驱动器包括进来。
DriverManager类用来建立和数据库的连接及管理JDBC驱动器
getConnection(String url,String user,String pwd):
建立和数据库的连接,并返回表示数据库连接的connection对象
2. Connection 接口
createStatement():创建并返回Statement对象
prepareStatement(String sql):创建并返回PreparedStatement对象
3. Statement接口
execute(String sql):执行各种SQL语句。
executeUpdate(String sql):执行SQL的insert,update,delete语句
executeQuery(String sql):执行SQL的select语句,返回一个表示查询结果的ResultSet对象,
4.PreparedStatement接口
继承了Statement接口 ,用来执行预准备的SQL语句,数据库只需对这种SQL语句编译一次,然后就可以多次执行。
con.prepareStatement()生成对象。
setXXX()方法,给参数负值
5.ResultSet接口
表示select查询语句得到的结果集。
next()方法:定位到结果集中的下一条记录。
JDBC驱动 5-1
JDBC驱动由数据库厂商提供
在个人开发与测试中,可以使用JDBC-ODBC桥连方式
在生产型开发中,推荐使用纯Java驱动方式
JDBC驱动 5-2
桥连
将对JDBC API的调用,转换为对另一组数据库连接API的调用
优点:可以访问所有ODBC可以访问的数据库
缺点:执行效率低、功能不够强大
JDBC驱动 5-4
纯Java驱动
由JDBC驱动直接访问数据库
优点:100% Java,快又可跨平台
缺点:访问不同的数据库需要下载专用的JDBC驱动
JDBC驱动 5-5
使用纯Java驱动方式进行直连
1、下载数据库厂商提供的驱动程序包
2、将驱动程序包引入工程中
3、编写代码,通过纯Java驱动方式与数据库建立连接
注意:
在使用纯Java驱动方式进行数据库连接时,如果程序在运行时抛出异常:
java.sql.SQLException: No suitable driverfound for
jdbc:sqlserver://localhost:1433;DatabaseName=news
那么出错的原因是
找不到合适的驱动类,原因:没有把数据库驱动包引入工程
最后:编写访问数据库程序的步骤
(1)获得要访问数据库的类库,把它放到classpath中。
(2)在程序中加载并注册JDBC驱动器
class.forName(“com.mysql.jdbc.Driver”);
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
实验一:
实验内容:
1)创建数据库及表格存放用户名和密码
2)开发静态网页文件login.htm,用于输入用户名和密码
3)开发check.jsp文件,用于连接数据库实现用户名密码验证
4)验证成功转入success.jsp显示登陆成熟,否则转入failure.jsp显示
check.jsp
login.html
success.jsp
failure.jsp
还是顺着老师的课件复习吧!!
首先介绍一下基本的概念:
DBC的英文全称是 Java Database Connectivity 。
JDBC的主要作用是 连接Java程序和数据库的纽带 。
为什么需要JDBC :JDBC是Java数据库连接技术的简称,向Java应用程序提供连接各种常用数据库的能力
(1)JDBC API
提供者:sun公司
内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
1.DriverManager类 2. Connection接口
3.Statement接口 4.ResultSet接口
(2)DriverManager
提供者:sun公司
作用:载入各种不同的JDBC驱动
(3)JDBC 驱动
提供者:数据库厂商
作用:负责连接各种不同的数据库
JDBC API
JDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果
JDBC API中类和接口的作用:
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果
JDBC API: 主要位于java.sql包中
Driver接口和DriverManager类:驱动器,驱动管理器
Connection 接口:数据库连接
Statement 接口:负责执行sql语句
PreparedStatement接口:负责执行预准备的sql语句
ResultSet接口:表示sql查询语句返回的结果集
再进行上面类和各接口的详解:
1.Driver接口和DriverManager类
所有的JDBC驱动器都必须实现Driver接口,在编写访问数据库的java程序时,比较把驱动器包括进来。
DriverManager类用来建立和数据库的连接及管理JDBC驱动器
getConnection(String url,String user,String pwd):
建立和数据库的连接,并返回表示数据库连接的connection对象
2. Connection 接口
createStatement():创建并返回Statement对象
prepareStatement(String sql):创建并返回PreparedStatement对象
3. Statement接口
execute(String sql):执行各种SQL语句。
executeUpdate(String sql):执行SQL的insert,update,delete语句
executeQuery(String sql):执行SQL的select语句,返回一个表示查询结果的ResultSet对象,
4.PreparedStatement接口
继承了Statement接口 ,用来执行预准备的SQL语句,数据库只需对这种SQL语句编译一次,然后就可以多次执行。
con.prepareStatement()生成对象。
setXXX()方法,给参数负值
try { Class.forName(JDBC驱动类); } catch (ClassNotFoundException e) { System.out.println("无法找到驱动类"); } try { Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); } con.close(); } catch (SQLException e) { e.printStackTrace(); }
try { Class.forName(JDBC驱动类); } catch (ClassNotFoundException e) { System.out.println("无法找到驱动类"); } try { Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码); String sql = "SELECT userid,name FROM tuser WHERE
userid=? AND password=?" ; PreparedStatement pstmt = conn.prepareStatement(sql) ; pstmt.setString(1, rid) ; pstmt.setString(2,pass) ; rs = pstmt.executeQuery() ; while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); } con.close();
5.ResultSet接口
表示select查询语句得到的结果集。
next()方法:定位到结果集中的下一条记录。
JDBC驱动 5-1
JDBC驱动由数据库厂商提供
在个人开发与测试中,可以使用JDBC-ODBC桥连方式
在生产型开发中,推荐使用纯Java驱动方式
JDBC驱动 5-2
桥连
将对JDBC API的调用,转换为对另一组数据库连接API的调用
优点:可以访问所有ODBC可以访问的数据库
缺点:执行效率低、功能不够强大
JDBC驱动 5-4
纯Java驱动
由JDBC驱动直接访问数据库
优点:100% Java,快又可跨平台
缺点:访问不同的数据库需要下载专用的JDBC驱动
JDBC驱动 5-5
使用纯Java驱动方式进行直连
1、下载数据库厂商提供的驱动程序包
2、将驱动程序包引入工程中
3、编写代码,通过纯Java驱动方式与数据库建立连接
------语法------ Class.forName(“com.mysql.jdbc.Driver”); //数据库名称 String url="jdbc:mysql://localhost:3306/usesql?user=root&password=admin"; Connection conn=DriverManager.getConnection(url);
注意:
在使用纯Java驱动方式进行数据库连接时,如果程序在运行时抛出异常:
java.sql.SQLException: No suitable driverfound for
jdbc:sqlserver://localhost:1433;DatabaseName=news
那么出错的原因是
找不到合适的驱动类,原因:没有把数据库驱动包引入工程
最后:编写访问数据库程序的步骤
(1)获得要访问数据库的类库,把它放到classpath中。
(2)在程序中加载并注册JDBC驱动器
class.forName(“com.mysql.jdbc.Driver”);
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
实验一:
实验内容:
1)创建数据库及表格存放用户名和密码
2)开发静态网页文件login.htm,用于输入用户名和密码
3)开发check.jsp文件,用于连接数据库实现用户名密码验证
4)验证成功转入success.jsp显示登陆成熟,否则转入failure.jsp显示
check.jsp
<%@ page import="java.sql.*"%> <%! public static final String DBDRIVER = "com.mysql.jdbc.Driver" ; public static final String DBURL = "jdbc:mysql://localhost:3306/logindemo1?user=root&password=123456" ; %> <% Connection conn = null ; PreparedStatement pstmt = null ; ResultSet rs = null ; boolean flag = false ; // 表示登陆成功或失败的标记 %> <% String userid = request.getParameter("userid") ; // 接收表单参数 String password = request.getParameter("password") ; // 接收表单参数 try{ Class.forName(DBDRIVER) ; conn = DriverManager.getConnection(DBURL) ; String sql = "SELECT userid,name FROM tuser WHERE userid=? AND password=?" ; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,userid) ; pstmt.setString(2,password) ; rs = pstmt.executeQuery() ; if(rs.next()){ // 如果有内容,则此处执行,表示查询出来,合法用户 flag = true ; } }catch(Exception e){ }finally{ try{ conn.close() ; // 连接一关闭,所有的操作都将关闭 }catch(Exception e){} } %> <% if(flag){ // 登陆成功,应该跳转到success.jsp %> <jsp:forward page="success.jsp"/> <% }else{ // 登陆失败,跳转到failure.jsp %> <jsp:forward page="failure.jsp"/> <% } %>
login.html
<script language="javaScript"> function validate(f){ if(!(/^\w{5,15}$/.test(f.userid.value))){ alert("用户ID必须是5~15位"); f.userid.focus(); return false; } if(!(/^\w{5,15}$/.test(f.password.value))){ alert("密码必须是5~15位"); f.password.focus(); return false; } return true; } </script> <form method="post" action="check.jsp" onSubmit="return validate(this)"> <table> <tr> <td colspan="2">用户登录程序</td> </tr> <tr> <td>用户名ID:</td> <td><input type="text" name="userid"></td> </tr> <td>密 码 </td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2"> <input type="submit" value="登录"> <input type="reset" value="重置"> </td> </tr> </table> </form>
success.jsp
<%@ page contentType="text/html;charset=GBK"%> <h1>登陆成功,欢迎光临!</h1>
failure.jsp
<%@ page contentType="text/html;charset=GBK"%> <h1>登陆失败,请重新<a href="login.htm">登陆</a>!</h1>
还是顺着老师的课件复习吧!!
相关文章推荐
- 10001---JavaWeb开发基础--初识Tomcat
- 1.JavaWEB 开发基础-JavaWEB_Tomcat 的安装和配置
- tomcat javaweb开发基础教程(二)
- JAVA web开发基础(五)、java sdk,eclipse,tomcat安装
- tomcat javaweb开发基础(8)servlet程序设计(1)
- tomcat javaweb开发基础(10servlet(3))
- tomcat javaweb开发基础(一)
- tomcat javaweb开发基础( 9 servlet(2))
- tomcat Javaweb开发基础(6承接五)
- tomcat javaweb开发基础(三)
- 使用tomcat+eclipse搭建javaweb基础开发环境
- javaweb开发基础及Tomcat服务器的简单使用、配置
- 开发模式配置,不用每次重启tomcat,java web基础
- tomcat javaweb 开发基础(七接着六)
- 跟阿根一起学Java Web开发一:开发环境搭建及JSPGen基础配置
- Java web基础学习之开发环境篇(详解)
- Java Web应用中如何实现任务有效调度-Java基础-Java-编程开发
- WEB开发技术比较报告-Java基础-Java-编程开发
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之12.Servlet基础(1)
- 基于TOMCAT的JAVA web开发的一些建议