最近做完了一个图书系统的增删改查,想着来总结一下这几个月的所学内容。

一.首先你需要在电脑上安装上mysql或者sql server(本文以mysql为例)


mysql官网:MySQL :: Begin Your Download

sql server官网:SQL Server 下载 | Microsoft


二.Bean层

Bean层为数据表对应的Java类,是封装数据的模型,比如添加课程系统,在前台提交的课程信息,后台会对应一个Course类,把课程的信息封装到Course中。在这里,我们写一个course.java。

 1 package Bean;
2
3 public class Course {
4 //private类,私有方法公开用,安全
5 private String teachername;
6 private String place;
7 private String classname;
8 /*set和get用于设置和读取Java private变量的方法。
9 这样子外部程序就不会直接访问程序的变量。
10 只能通过set去设置值,用get去读取值。
11 有利于对外封装。防止外部程序随意修改我们的变量。*/
12 public String getClassname() {
13 return classname;
14 }
15 public void setClassname(String classname) {
16 this.classname = classname;
17 }
18
19 public String getTeachername() {
20 return teachername;
21 }
22 public void setTeachername(String teachername) {
23 this.teachername = teachername;
24 }
25 public String getPlace() {
26 return place;
27 }
28 public void setPlace(String place) {
29 this.place = place;
30 }
31 }

三.dao层

dao层叫数据访问层,全称为data access object,专门负责一些对数据库的访问,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查。此处为增,写一个daoCourse.java。
 1 package dao;
2 import java.sql.Connection;
3 import java.sql.PreparedStatement;
4 import java.sql.SQLException;
5 import Bean.Course;
6 import util.DBUtil;
7
8 public class daoCourse {
9
10 public boolean add(Course n)
11 {
12 boolean f=false;
13 int a=0;
14 String sql="insert submitcourse(classname,teachername,place) values(?,?,?)";
15 try {
16 Connection conn=DBUtil.getConnection();
17 PreparedStatement pstmt=conn.prepareStatement(sql);
18 pstmt.setString(1,n.getClassname());
19 pstmt.setString(2,n.getTeachername());
20 pstmt.setString(3,n.getPlace());
21 a=pstmt.executeUpdate();
22 } catch (SQLException e) {
23 // TODO Auto-generated catch block
24 e.printStackTrace();
25 }
26 if(a>0) f=true;
27 return f;
28 }
29 }

四.servlet层

servlet是一个java接口,其功能如下(1)创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML 页面。我们建立一个course_servlet.java。
(2)创建可嵌入到现有 HTML 页面中的一部分 HTML 页面( HTML 片段)。
(3)与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。

package servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import Bean.Course;
import dao.daoCourse; /**
* Servlet implementation class course_servlet
*/
@WebServlet("/course_servlet")
public class course_servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
daoCourse gooddao=new daoCourse();
/**
* @see HttpServlet#HttpServlet()
*/
public course_servlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String teachername=request.getParameter("teachername");
String classname=request.getParameter("classname");
String place=request.getParameter("place");
Course n=new Course(classname,teachername,place);
gooddao.add(n);
request.setAttribute("message", "添加成功");
request.getRequestDispatcher("NewFile2.jsp").forward(request, response);
}

五.util层

util用于连接数据库,我们写一个DBUtil.java。

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil {
public static Connection getConnection() {
//1.添加mysql的驱动jar包到项目中的WebContent/WEB-INF/lib //2.如何连接数据库?
Connection conn=null;
try {
//加载数据库jar包的驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//连接数据库
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/submitcourse?serverTimezone=UTC", "root", "123456");
System.out.println("连接成功!"); //3.如何操作数据库里的数据
//定义sql语句 //执行sql语句 //获取sql语句执行器 //处理结果 } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
DBUtil.getConnection();
}
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

六.写jsp


1.NewFile.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加课程</title>
</head>
<body>
<form action="course_servlet" method="post">
课程名称:<input type="text" id="classname" name="classname"><br>
教师姓名:<input type="text" id="teachername" name="teachername"><br>
教学地点:<input type="text" id="place" name="place"><br>
<input type="submit" value="添加">
</form>
</body>
</html>

2.NewFile2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){ %>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %> <h1>添加成功</h1> </body>
</html>

七.数据库表

八.运行结果


以上是关于课程添加并连接数据库所呈现的内容,接下来会继续给大家更新删改查。

javaweb之连接数据库的更多相关文章

  1. ubuntu16.04环境下在docker上部署javaweb项目简单案例

    因为一些原因,接触到了docker,经过一番研究,总算是有了一些自己的看法,有什么不对的地方,希望多多指教. 废话不多说,首先我这里使用的虚拟机安装的是ubuntu16.04版本,其他版本应该也可以. ...

  2. 练习JavaWeb连接数据库

    1.添加jar包. 建立动态java项目,在Web-INF文件夹下的lib文件夹里添加jar包. 区别:java中添加的jar包需要添加构建路径,而javaWeb中添加的jar不需要构建路径,自动添加 ...

  3. javaweb连接数据库并完成增删改查

    一.连接数据库 1.mysql数据库的安装和配置 在网上找到了篇关于mysql的安装详细说明,供读者自己学习 https://www.jb51.net/article/23876.htm 2.mysq ...

  4. 传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤

    第十天主要讲了jdbc操作mysql数据库,包括连接数据库六大步骤(注册数据库驱动.获得连接对象connetion.生成传输器stament.执行查询获得ResultSet.遍历结果集.关闭资源).介 ...

  5. 用javaweb连接数据库用javabean、severlet实现增删改查

    样 很重要的一点是建立数据库的连接 数据库是一切操作的前提 不管是增加 删除 修改 查询 都需要调用数据库连接程序 再就是java的类的编写  写完类后需要对其进行增删改查方法的 编写 这是dao层的 ...

  6. javaWeb 数据库连接池连接数据库

    需要的公共jar包 mysql-connector-java-5.0.8-bin.jar(mysql数据库)   ojdbc14.jar(oracle数据库) A.DBCP 需要jar包: commo ...

  7. javaweb登录界面连接数据库

    实验关键截图 数据库界面 建表 2.登录界面 登陆失败 5 注册页面 5 注册成功 数据库截图

  8. Javaweb连接数据库

    在JSP中使用JDBC驱动连接mysql数据库. 1: 下载mysql的Java连接程序 2: 解压目录下的mysql-connector-java-5.0.24-bin.jar文件就是连接MySql ...

  9. JavaWeb 08_JSP+Dao+Bean+Servlet 实现登录注册(连接数据库,验证码登录,两周内免登陆等功能)

    一.数据库db_01   表usert   字段username,password 二. 目录 三. 配置信息 四. 代码 index.jsp <script type="text/j ...

随机推荐

  1. Go基础知识梳理(三)

    Go基础知识梳理(三) 结构 type Person struct { name string sex int } func main() { //推荐写法 person := Person{ nam ...

  2. 四、Java基础

    Java基础 在开始学习Java基础之前,我们先来学习一下IDEA 打开IDEA,新建一个项目(New Project),选择空项目(Empty Project),填写项目名(Project name ...

  3. 『现学现忘』Docker相关概念 — 8、虚拟化技术和容器技术的关系

    目录 1.云计算中虚拟化技术和容器技术到的关系 2.虚拟机和容器对比 3.虚拟化技术和容器技术区别 1.云计算中虚拟化技术和容器技术到的关系 通过一个关于房间和住人的小问题,我们来初步的理解一下虚拟化 ...

  4. How to use Remote-SSH in Windows

    对于不太会使用 Vim 的我来说,在服务器上用 Vim 去修改 nginx.conf 实在有点麻烦,比如没有高亮和格式化.正好想起前不久微软发布了远程开发工具包,其中一个就是今天要介绍的 Remote ...

  5. 亿图图示v9.2.0.0 官方中文版及破解激活补丁

    介绍 亿图图示是一款由深圳市亿图软件有限公司开发的全类型,综合图形图表设计软件,解决跨平台,多领域,全终端的图形设计,图文混排和工程制图等需求.亿图图示是一款简单易用的快速制图软件,适合任何人绘制任何 ...

  6. 微信小程序刚注册快速达到1000uv

    一.什么是微信小程序uv ​ UV:是累计独立访问,1个微信号就是一个uv,多次访问不算 ​ 大家想提升微信小程序uv都是为了开通流量主 二.流量主开通标准 ​ 达到1000uv就可以开通:严重违纪不 ...

  7. Linux企业常用命令详解

    cat :查看 cat [-AbeEnstTuv] [--help] [--version] fileName 常用参数: -n :由 1 开始对所有输出的行数编号 -b :和 -n 相似,对于空白行 ...

  8. Kafka的优秀设计学习

    一.Kafka基础 消息系统的作用 应该大部份小伙伴都清楚,用机油装箱举个例子 所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用. 引入一个场景,我们知道中国移动,中国 ...

  9. Monkey的参数及简单使用

    什么是Monkey? Monkey是Android SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试.主要是为了测试app是否存在无响应和 ...

  10. hdu5197 DZY Loves Orzing(FFT+分治)

    hdu5197 DZY Loves Orzing(FFT+分治) hdu 题目描述:一个n*n的矩阵里填入1~n^2的数,要求每一排从前往后能看到a[i]个数(类似于身高阻挡视线那种),求方案数. 思 ...