JSP第六次課:數據庫訪問顯示商品信息

本次課任務實現商品管理

wKiom1UKUeqiMOmNAAFMshE8sUk292.jpg

一、建立數據庫、商品表

1、安裝SQLserver2005,建立數據庫ebuy、goods表

wKiom1ULeiOQgtn3AACMOT3U8LI785.jpg

gid 主鍵,標識規範 種子1000,自動增1

add_time 默認值 getdate()


2、設置管理員賬號shopping,密碼shopping

3、設置SQLServer身份和windows身份均可登錄數據庫

4、啓動Tcp/ip協議1433端口,實現應用程序對數據庫的訪問

5、測試SQL命令使用insert、select、update、delete

update  goods set num=100 where name='咖啡2'
select * from goods

二、數據庫訪問技術

1、  加載JDBC驅動程序

    (1)純JDBC驅動程序下載http://www.microsoft.com/china

    (2)SQL Server2005、2008驅動程序的代碼如下:

      Class.forName("com.microsoft.sqlserver. jdbc.SQLServerDriver");

    (3)Myeclipse中加載外部包

2、創建數據庫連接

Connection conn = DriverManager.getConnection(

"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=shopping, “sa”,“sa”);

3、獲取Statement對象

    

(1)Statement實例:該類型的實例只能用來執行靜態的SQL語句;

(2)PreparedStatement實例:該類型的實例增加了執行動態SQL語句的功能;

4、  執行SQL語句

(1)執行查詢語句rs=stmt.executeQuery(sql); 提交查詢,查詢結果保存在rs結果集。

(2)執行更新語句 intn=stmt.executeUpdate(sql);更新記錄的數目保存在n中,便於程序檢查語句執行情況。

5、  讀取查詢語句的結果集

    while(rs.next)

    {

             out.println(rs.getString(1));  //顯示記錄集第一列數據字符串數據

    }

6、 關閉連接

    在建立Connection,Statement和ResultSet實例時,均需佔用一定的數據庫和JDBC資源,所以每次訪問數據庫結束後,應該及時銷燬這些實例,釋放它們佔用的所有資源,方法是通過各個實例的close()方法,並且在關閉時建議按照以下的順序:ResultSet>Statement>Connection

代碼結構如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
Connection conn=null;
Statement  stmt=null;
ResultSet rs=null;
String url="jdbc:sqlserver://10.40.43.202:1433;Database=ebuy";
String user="shopping";
String password="shopping";
String sql="select * from goods";
String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//用戶使用對象創建


Class.forName(className);

//JDBC驅動程序

conn=DriverManager.getConnection(url, user, password);

//鏈接數據庫
stmt=conn.createStatement();

//創建通道
rs=stmt.executeQuery(sql);

//執行查詢SQL語句
while(rs.next()){
out.println(rs.getString("name")+"<br/>");
}

rs.close();
stmt.close();
conn.close();
 %>


三、網頁實現商品查看功能

1、創建商品Bean

package mybean;

public class Goods {
    private int gid;
    private String name;
    private float price;
    private int num;
    private String content;
    private String add_time;
    public int getGid() {
        return gid;
    }
    public void setGid(int gid) {
        this.gid = gid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getAdd_time() {
        return add_time;
    }
    public void setAdd_time(String add_time) {
        this.add_time = add_time;
    }
    

}


2、商品DAO實現商品查詢功能

package mybean;
import java.sql.*;
import java.util.LinkedList;
public class GoodsDAO {
  
public LinkedList<Goods> list()
{
    LinkedList<Goods> ls=new LinkedList<Goods>();
    Connection conn=null;
    Statement  stmt=null;
    ResultSet rs=null;
    String url="jdbc:sqlserver://10.40.43.202:1433;Database=ebuy";
    String user="shopping";
    String password="shopping";
    String sql="select * from goods";

    String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";



    try {
        Class.forName(className);
    
    conn=DriverManager.getConnection(url, user, password);
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    
    while(rs.next()){
    Goods g=new Goods();
    g.setGid(rs.getInt("gid"));
    g.setName(rs.getString("name"));
    g.setPrice(rs.getFloat("price"));
    g.setNum(rs.getInt("num"));
    ls.add(g);
    }
    
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        if(rs!=null)
            {rs.close();}
        if(stmt!=null)
            {stmt.close();}
        if(conn!=null)
            {conn.close();}
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    
    return ls;
}
}

3、JSP文件調用DAO,實現顯示商品信息

4、商品瀏覽頁面設計







 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章