本次课任务实现商品管理
一、建立数据库、商品表
1、安装SQLserver2005,建立数据库ebuy、goods表
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、商品浏览页面设计