目录

  • 1 Java Web应用开发课程简介
    • 1.1 课程简介(软件专业)
    • 1.2 课程简介(大数据专业)
  • 2 java语法复习
    • 2.1 java基本语法
    • 2.2 java类的定义及使用
  • 3 Java web应用开发
    • 3.1 Java web应用开发介绍
    • 3.2 WEB程序工作原理
    • 3.3 Web开发技术介绍
    • 3.4 Java web应用开发环境配置
    • 3.5 Java web应用开发环境创建动态网页项目及运行
    • 3.6 项目名称出现红叉的解决办法
  • 4 JDBC
    • 4.1 数据库脚本的导出和导入
    • 4.2 加载数据库脚本及JDBC常用API
    • 4.3 MySQL数据库的连接和关闭
    • 4.4 使用Statement对象执行静态SQL语句
      • 4.4.1 数据的全部查询
      • 4.4.2 数据的增删改操作及操作菜单
    • 4.5 用户的身份验证
    • 4.6 注入式攻击及防止
    • 4.7 使用PrepareStatement对象执行动态SQL语句
    • 4.8 创建DBUtil工具类
    • 4.9 配置文件
    • 4.10 参考PPT
  • 5 JSP开发web网站的模式
    • 5.1 五种开发模式介绍
  • 6 DIV+CSS
    • 6.1 DIV+CSS笔记
    • 6.2 HTML基础
    • 6.3 DIV+CSS
      • 6.3.1 DIV+CSS之页面盒子模型
      • 6.3.2 DIV+CSS之左浮及结束浮动影响
      • 6.3.3 实现header,初识盒子模型
      • 6.3.4 实现导航条、搜索条
      • 6.3.5 添加轮播图
    • 6.4 BootStrap
  • 7 JavaScript
    • 7.1 JavaScript
    • 7.2 页面定时自动跳转
    • 7.3 用户注册页面信息合法性检测
    • 7.4 Ajax实现用户重名判断
  • 8 JSP基本语法及内置对象
    • 8.1 JSP基本语法
    • 8.2 JSP内置对象
  • 9 JavaBean技术
    • 9.1 JavaBean课件
    • 9.2 创建JavaBean视频
  • 10 Servlet
    • 10.1 Servlet简介及生命周期
    • 10.2 Servlet的创建及配置
    • 10.3 三层架构模式
  • 11 用户管理系统
    • 11.1 用户管理系统——登录模块
    • 11.2 用户管理系统——注册模块
    • 11.3 用户管理系统——删除模块
    • 11.4 用户管理系统——查询模块
      • 11.4.1 按用户名查询
      • 11.4.2 按ID号查询
    • 11.5 用户管理系统——新增模块
    • 11.6 用户管理系统——修改模块
    • 11.7 用户重名模块(同7.4Ajax处理同名)
    • 11.8 用户管理系统——Session对象的应用
    • 11.9 记住用户名——cookie技术
    • 11.10 用户信息的分页显示
  • 12 过滤器和监听器
    • 12.1 过滤器PPT
    • 12.2 字符编码过滤器
    • 12.3 敏感词汇过滤器
    • 12.4 访问人数过滤器
    • 12.5 监听器
  • 13 EL和JSTL
    • 13.1 EL表达式语言
    • 13.2 JSTL标签
    • 13.3 总结
  • 14 图书购物系统
    • 14.1 添加图书表
    • 14.2 新增ISBN字段
    • 14.3 完善BookService
    • 14.4 完善BookView界面层
    • 14.5 完成BookServlet并显示图书(未分页)
    • 14.6 使用通用分页算法显示图书管理页面
    • 14.7 新增图书
    • 14.8 图书浏览页面
    • 14.9 图书浏览页面(未实现页码超链接)
    • 14.10 图书浏览页面(实现页码超链接)
  • 15 教学设计
    • 15.1 章节一  JSP概述
      • 15.1.1 JSP简介
      • 15.1.2 JSP程序介绍
    • 15.2 章节二  HTML+DIV+CSS+JS
      • 15.2.1 HTML标签——简介
      • 15.2.2 HTML标签——表格和表单
      • 15.2.3 CSS
      • 15.2.4 DIV+CSS
      • 15.2.5 JavaScript(一)
      • 15.2.6 JavaScript(二)
    • 15.3 JDBC
      • 15.3.1 数据库的连接和关闭
      • 15.3.2 静态SQL命令
      • 15.3.3 动态SQL命令
      • 15.3.4 创建JDBCUtil工具类
    • 15.4 JSP基本语法
    • 15.5 JSP内置对象
    • 15.6 JAVABEAN
    • 15.7 Servlet
    • 15.8 用户管理系统
      • 15.8.1 MVC开发模式及需求分析
      • 15.8.2 实现数据显示的分层实现
      • 15.8.3 实现登录信息的分层实现
      • 15.8.4 实现数据删除的分层实现
      • 15.8.5 实现数据修改的分层实现
      • 15.8.6 实现数据新增的分层实现
      • 15.8.7 实现数据的分页显示
      • 15.8.8 验证码的实现
    • 15.9 过滤器和监听器
      • 15.9.1 过滤器的使用
      • 15.9.2 字符编码过滤器
      • 15.9.3 敏感词汇过滤器
      • 15.9.4 登录效果过滤
    • 15.10 EL和JSTL
      • 15.10.1 EL表达式
      • 15.10.2 JSTL标签
    • 15.11 图书购物网站
      • 15.11.1 项目总体介绍及数据表的添加
      • 15.11.2 编写购物车类
      • 15.11.3 编写显示所有图书页面
      • 15.11.4 图书详情页面及购物车页面
      • 15.11.5 图书删除功能
      • 15.11.6 图书修改功能
      • 15.11.7 更新购物车和清空购物车
      • 15.11.8 新增图书,上传图片
      • 15.11.9 图书的查询功能
      • 15.11.10 项目的打包及上传
创建DBUtil工具类
  • 1 参考代码
  • 2 视频

package com.ahdy.jdbc;


import java.io.IOException;

import java.io.InputStream;

import  java.sql.*;

import java.util.ArrayList;

import java.util.Properties;

import java.util.Scanner;

import com.ahdy.javabean.*;

public class DBUtil {

//移植到其他电脑时注意,需要修改端口号;连接其他数据库时,需要修改数据库的名字:student

static PreparedStatement pstmt=null;

static String sql="";

static Connection dbConn=null;

static ResultSet rs=null;

static Properties pp=null;

static InputStream fis=null;

private static String url;

private static String driver;

private static String username;

private static String password;

static {

try {

pp=new Properties();

fis=DBUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");

pp.load(fis);

url=pp.getProperty("url");

driver=pp.getProperty("driver");

username=pp.getProperty("username");

password=pp.getProperty("password");

Class.forName(driver);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

public static void closeMysql()  {

try {

if(rs!=null)

rs.close();

if(pstmt!=null)

pstmt.close();  //操作对象关闭

if(dbConn!=null)

dbConn.close();//连接对象关闭

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void connectMysql() {

try {

Class.forName(driver);

//加载JDBC驱动       

       

        // 连接服务器和数据库            

        dbConn=DriverManager.getConnection(url,username,password);       

   } catch (Exception e) {

            e.printStackTrace();

        }

}

//执行增\删\改的操作,sql是sql命令,params是参数数组

public static int executeUpdate(String sql,String[] params) {

int length=0;

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setString(i+1, params[i]);

}

length=pstmt.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

closeMysql();

}

return length;

}

//执行查询操作,后面将进行二次封装,因为rs在返回前不能关闭

public static ResultSet executeQuery(String sql,String[] params) {

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setString(i+1, params[i]);

}

rs=pstmt.executeQuery();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return rs;

}

public static ArrayList<Book> executeQueryPageBook(String sql,int[] params) {

ArrayList<Book> all=new ArrayList<Book>();

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setInt(i+1, params[i]);

}

rs=pstmt.executeQuery();

while(rs.next()) {

Book book=new Book();

book.setId(rs.getInt("id")+"");

book.setName(rs.getString("name"));

book.setAuthor(rs.getString("author"));

book.setBookCount(rs.getInt("bookcount"));

book.setPrice(rs.getDouble("price"));

book.setPublish(rs.getString("publish"));

book.setImg(rs.getString("img"));

all.add(book);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

closeMysql();

}

return all;

}


public static ArrayList<User> executeQueryPageUser(String sql,int[] params) {

ArrayList<User> all=new ArrayList<User>();

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setInt(i+1, params[i]);

}

rs=pstmt.executeQuery();

while(rs.next()) {

User user=new User();

user.setId(Integer.parseInt(rs.getString("id")));   //注意:双引号中的名称要和数据库中表的字段名称保持一致

user.setUsername(rs.getString("username"));

user.setPassword(rs.getString("password"));

user.setGrade(Integer.parseInt(rs.getString("grade")));

user.setEmail(rs.getString("email"));

all.add(user);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

closeMysql();

}

return all;

}

public static ArrayList<Book> executeQueryBook(String sql,String[] params) {

ArrayList<Book> all=new ArrayList<Book>();

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setString(i+1, params[i]);

}

rs=pstmt.executeQuery();

while(rs.next()) {

Book book=new Book();

book.setId(rs.getInt("id")+"");

book.setName(rs.getString("name"));

book.setAuthor(rs.getString("author"));

book.setBookCount(rs.getInt("bookcount"));

book.setPrice(rs.getDouble("price"));

book.setPublish(rs.getString("publish"));

book.setImg(rs.getString("img"));

all.add(book);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

closeMysql();

}

return all;

}

public static ArrayList<User> executeQuery2(String sql,String[] params) {

ArrayList<User> all=new ArrayList<User>();

try {

connectMysql();

pstmt=dbConn.prepareStatement(sql);

if(params!=null) {

for(int i=0;i<params.length;i++)

pstmt.setString(i+1, params[i]);

}

rs=pstmt.executeQuery();

while(rs.next()) {

User user=new User();

user.setId(Integer.parseInt(rs.getString("id")));   //注意:双引号中的名称要和数据库中表的字段名称保持一致

user.setUsername(rs.getString("username"));

user.setPassword(rs.getString("password"));

user.setGrade(Integer.parseInt(rs.getString("grade")));

user.setEmail(rs.getString("email"));

all.add(user);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

closeMysql();

}

return all;

}

/* //新增   ctrl+shift+/     ctrl+/

public static void insertData() throws SQLException {

String uname="zhm13";

String pwd="123456";

String grade="3";

String email="jdxwl@126.com";

sql="INSERT INTO `tuserlogin`(`username`,`password`,`grade`,`email`) VALUES (?,?,?,?);";

pstmt=dbConn.prepareStatement(sql);

pstmt.setString(1, uname);

pstmt.executeUpdate();

System.out.println("新增完成");

}

//修改

public static void updateData() throws SQLException {

sql="update `tuserlogin` set password='111111' where id='12'";

stmt.executeUpdate(sql);

System.out.println("修改完成");

}

//删除

public static void deleteData(String id) throws SQLException {

sql="delete from tuserlogin where id="+id;

stmt.executeUpdate(sql);

System.out.println("删除完成");

}

//全部查询

public static void selectAll() throws SQLException {

sql="select * from tuserlogin";

rs= stmt.executeQuery(sql);   //查询结果赋值给rs

while (rs.next()) {

System.out.println(rs.getInt("id")+"\t"+rs.getString("username")+"\t"+ rs.getString("password"));

//通过数据表tuserlogin中的字段名称username\password获取信息

}

}

//id查询

public static boolean selectById(String id) throws SQLException {

sql="select * from tuserlogin where id="+id;

rs= stmt.executeQuery(sql);   //查询结果赋值给rs

if(rs.next()) {

return true;

}else return false;

}

//身份认证

public static boolean identity(String username,String password) {

boolean flag=false;

sql="select * from tuserlogin where username='"+username+"' and password='"+password+"'";

//select * from tuserlogin where username='aaa' and password='sss'

try {

rs= stmt.executeQuery(sql);

if(rs.next())flag=true;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return flag;

}*/

}