胡鹏 王慧锋 TEL: 18780273367 E-mail: 653703162@qq.com 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL: 18780273367 E-mail: 653703162@qq.com
课程安排 PostgreSQL的使用, JDBC连接数据库 Servlet技术,MVC框架,单表、多表查询 实现对单表和多表的增、删、改 在增、删、改、查中实现信息同步 Session、application的应用 课程设计实现 期末检查
实验环节1 PostgreSQL的使用 JDBC连接数据库 Psql常用命令 SQL命令练习 JDBC原理 JDBC连接PostgreSQL数据库
实验环节1 PostgreSQL的使用 JDBC连接数据库 Psql常用命令 SQL命令练习 JDBC原理 JDBC连接PostgreSQL数据库
Psql常用命令 \c [数据库名]连接到另外一个数库 \l 列出所有数据库 \d 查看模式 \q *断开终端 \h SQL命令帮助
Psql常用命令 \c [数据库名]连接到另外一个数库 \l [数据库名]列出所有数据库 \d [数据库名]查看模式 \q 断开终端 \h SQL命令帮助 \? Psql客户端命令帮助
Sql命令练习-创建表 create table student( sno char(10), sname char(8), sgender char(2), sage int, sdept char(2), constraint student_pkey primary key (sno) );
Sql命令练习-创建表 create table student( sno char(10), sname char(8), sgender char(2), sage int, sdept char(2), constraint student_pkey primary key (sno) );
Sql命令练习-创建表 常用数据类型 Integer Numeric(precision, scale) Char(n)与Varchar(n) Date/ Time/ Timestamp与Interval
Sql命令练习-创建表 常用数据类型 Integer Numeric(precision, scale) Char(n)与Varchar(n) Date/ Time/ Timestamp与Interval 用来表示浮点数 1: 精度 2: 比例(小数点位数)
Sql命令练习-创建表 常用数据类型 常用约束 Integer Numeric(precision, scale) Char(n)与Varchar(n) Date/ Time/ Timestamp与Interval 常用约束 Primary key Unique Foreign key Check Null/Not Null, (Default) varchar(n) 是变长格式,这种格式的字段根据实际数据长度分配空间 char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度
要求创建的表 学生基本信息表 student(sno, sname, sgender, sage, sdept) 课程信息表 course(cno, cname, cpno, ccredit) 选课表 sc(sno, cno, grade);
插入数据 INSERT INTO student(sno, sname, ssex, sdept) VALUES (?, ?, ?, ?); INSERT INTO student VALUES (?, ?, ?, ?); 例:INSERT INTO student( sno, sname, ssex, sdept)VALUES (’2013000001’,‘小明’,’男’, ‘01’); INSERT INTO student VALUES (’2013000001’,‘小明’,’男’, ‘01’);
实验环节1 PostgreSQL的使用 JDBC连接数据库 Psql常用命令 Sql命令练习 JDBC原理 JDBC连接PostgreSQL数据库
JDBC API JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。 Java应用程序 JDBC驱动管理程序 数据库 JDBC驱动程序
JDBC连接数据库 Class.forName(driverClass); Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) Statement stm=conn.createStatement(); ResultSet rs=stmt.executeQuery(“sql语句”);
JDBC连接数据库 Class.forName(driverClass); Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) Statement stm=conn.createStatement(); ResultSet rs=stmt.executeQuery(“sql语句”);
JDBC驱动的类名 Class.forName(driverClass); 加载与注册JDBC驱动 oracle.jdbc.driver.OracleDriver com.microsoft.jdbc.sqlserver.SQLServerDriver com.mysql.jdbc.Driver sun.jdbc.odbc.JdbcOdbcDriver org.postgresql.Driver 例:Class.forName("org.postgresql.Driver");
JDBC连接数据库 Class.forName(driverClass); Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) Statement stm=conn.createStatement(); ResultSet rs=stmt.executeQuery(“sql语句”);
JDBC连接数据库 Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) URL用(:)分为三个部分: 协议:JDBC是唯一允许的协议 子协议:用于标示一个数据库驱动程序 子名称:数据源 Jdbc : postgresql : //localhost:5432/stuinfo 协议 子协议 数据源
JDBC连接数据库 private String url ="jdbc:postgresql://localhost:5432/stuinfo"; private String user="postgres"; private String password="admin"; Connection conn =DriverManager.getConnection(url,user,password);
JDBC连接数据库 Class.forName(driverClass); Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) Statement stm=conn.createStatement(); ResultSet rs=stmt.executeQuery(“sql语句”);
JDBC连接数据库 Statement stm=conn.createStatement(); 向数据库服务器发送命令和sql语句,在数据库连接建立后,需要对数据库进行访问执行sql语句。 PreparedStatement pstm =conn.prepareStatement("SELECT * FROM student where ssex=?"); pstm.setString(1,sex);
JDBC连接数据库 Class.forName(driverClass); Connectionconn=DriverManger.getConnection (“URL”,”USER’’,”PASSWORD”) Statement stm=conn.createStatement(); ResultSet rs=stmt.executeQuery(“sql语句”);
JDBC连接数据库 ResultSet rs=stmt.executeQuery(“SQL语句”); while(re.next()!=null){}来遍历结果集; int executeUpdate(String sql) 返回受影响的行数;
JDBC连接数据库实现流程 新建DBhelper类(实现数据库连接功能) 调用方法一 调用方法二 使用数据库连接时,打开连接,用完后关闭; 从项目启动一直到关闭保持数据库连接;
JDBC连接数据库实现流程 新建Servlet dbSer; 在dbSer的init( )里面连接数据库; 在dbSer的destroy( )里面关闭数据库连接; 修改web.xml 文件, 使dbSer在项目启动时就加载;
初始化数据库连接 public void init() throws ServletException { System.out.println("尝试初始化数据库连接"); DBhelper dbhelper=new DBhelper(); conn=dbhelper.getConnection(); }
关闭数据库连接 public void destroy() { super.destroy(); try { conn.close(); System.out.println(“数据库连接关闭!"); } catch (SQLException e) { e.printStackTrace(); }
修改web.xml文件 <servlet> <servlet-name>DBSer</servlet-name> <servlet-class>ser.DBSer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> 项目加载时初始化DBSer 参数: 初始化的顺序
作业(纸质文件) 课程设计需求文档 (E-R图)