1.4.4 创建数据库及数据表
本节介绍如何在SQL Server 2005的企业管理器中创建数据库及数据表,在创建数据表时以创建tb_info数据表为例进行介绍。
1.创建数据库
(1)确认是否安装了SQL Server 2005数据库,若没有则需进行安装。
(2)安装后,选择“开始”/“程序”/Microsoft SQL Server 2005/SQL Server Management Studio命令,启动SQL Server企业管理器,并展开控制台根目录,如图1.25所示。
(3)右击“数据库”节点,选择“新建数据库”命令,将弹出“数据库属性”对话框,在“名称”文本框中输入数据库名称“db_CityInfo”,其他选项保留默认设置。
(4)单击“确定”按钮完成数据库db_CityInfo的创建。
2.创建数据表
数据库创建成功后,展开如图1.25所示的“数据库”选项,则创建的数据库会在这里显示,如 图1.26所示。下面以创建tb_info数据表为例介绍创建数据表的步骤。
(1)展开db_CityInfo数据库,右击“表”节点,在弹出的快捷菜单中选择“新建表”命令,将弹出用来创建表的对话框。
(2)根据表1.6所示的数据表tb_info的结构设计数据表,如图1.27所示。
其中id字段被设置为主键,其创建方法如下:在id行中单击鼠标右键,在弹出的快捷菜单中选择“设为主键”命令,即可完成主键的创建。若“设为主键”命令已被选中,则再次单击可取消主键的设置。
(3)表结构设置完成后,单击左上角的“保存”按钮,在弹出的对话框中输入数据表的名称“tb_info”,然后单击“确定”按钮保存数据表。
(4)数据表创建成功后,将在SQL Server企业管理器窗口的右侧区域中显示,如图1.28所示。
(5)按照以上步骤创建其他数据表。
1.5 公共类设计
在开发程序时,经常会遇到在不同的方法中进行相同处理的情况,例如数据库连接和字符串处理等,为了避免重复编码,可将这些处理封装到单独的类中,通常称这些类为公共类或工具类。在开发本网站时,用到数据库连接及操作类、业务处理类、分页类和字符串处理类4个公共类,下面分别介绍。
1.5.1 数据库连接及操作类
DB类主要是对数据库的操作,如连接、关闭数据库及执行SQL语句操作数据库。每一种操作均对应一个方法,如getCon()方法用来获取数据库连接,closed()方法用来关闭数据库连接,而对数据库的增、删、改、查等操作都在doPstm()方法中实现,该方法是通过PreparedStatement对象来执行SQL语句的。下面介绍DB类的创建过程。
(1)导入所需的类包。代码如下:
例程01 代码位置:光盘\TM\01\src\com\yxq\dao\DB.java
import java.sql.Connection; //表示连接到某个数据库的连接
import java.sql.DriverManager; //用来获取数据库连接
import java.sql.PreparedStatement; //用来执行SQL语句
import java.sql.ResultSet; //封装查询结果集
import java.sql.SQLException; //异常处理类
(2)声明类的属性并赋值。代码如下:
例程02 代码位置:光盘\TM\01\src\com\yxq\dao\DB.java
private Connection con; //声明一个Connection对象
private PreparedStatement pstm; //声明一个PreparedStatement对象
private String user="sa"; //登录数据库的默认用户名
private String password=""; //登录数据库的密码
private String className="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //数据库驱动类路径
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_CityInfo"; //数据库URL
(3)覆盖默认构造方法,在该方法中实现数据库驱动的加载。这样,当通过new操作符实例化一个DB类的同时,就会加载数据库驱动。代码如下:
例程03 代码位置:光盘\TM\01\src\com\yxq\dao\DB.java
public DB(){ //DB类的构造方法
try{ //必须使用try-catch语句捕获加载数据库驱动时可能发生的异常
Class.forName(className); //加载数据库驱动
}catch(ClassNotFoundException e){ //捕获ClassNotFoundException异常
System.out.println("加载数据库驱动失败!");
e.printStackTrace(); //输出异常信息
}
}
(4)创建获取数据库连接的方法getCon(),方法中使用DriverManager类的getConnection()静态方法获取一个Connection类实例。代码如下:
例程04 代码位置:光盘\TM\01\src\com\yxq\dao\DB.java
/*创建数据库连接*/
public Connection getCon(){
try {
con=DriverManager.getConnection(url,user,password); //建立连接,连接到由属性url指定的数据库URL,
//并指定登录数据库的用户名和密码
} catch (SQLException e) {
System.out.println("创建数据库连接失败!");
con=null;
e.printStackTrace();
}
return con;
}
(5)创建对数据库进行增、删、改、查等操作的doPstm()方法,方法中使用了PreparedStatement类对象来执行SQL语句。之所以可以将这些操作在一个方法中实现,是因为doPstm()方法中设置了两个参数——sql和params。sql为String型变量,存储了要执行的SQL语句;params为Object类型数组,存储了为sql表示的SQL语句中“?”占位符赋值的数据。为SQL语句中的“?”占位符赋值,可通过PreparedStatement类对象的setXXX()方法实现,然后调用execute()方法执行SQL语句。
例如,为select * from table where name=?语句中的“?”赋值,假若name字段类型为char或varchar,则应使用如下代码:
pstm.setString(1,"yxq")