javaweb之连接数据库
最近做完了一个图书系统的增删改查,想着来总结一下这几个月的所学内容。
一.首先你需要在电脑上安装上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之连接数据库的更多相关文章
- ubuntu16.04环境下在docker上部署javaweb项目简单案例
因为一些原因,接触到了docker,经过一番研究,总算是有了一些自己的看法,有什么不对的地方,希望多多指教. 废话不多说,首先我这里使用的虚拟机安装的是ubuntu16.04版本,其他版本应该也可以. ...
- 练习JavaWeb连接数据库
1.添加jar包. 建立动态java项目,在Web-INF文件夹下的lib文件夹里添加jar包. 区别:java中添加的jar包需要添加构建路径,而javaWeb中添加的jar不需要构建路径,自动添加 ...
- javaweb连接数据库并完成增删改查
一.连接数据库 1.mysql数据库的安装和配置 在网上找到了篇关于mysql的安装详细说明,供读者自己学习 https://www.jb51.net/article/23876.htm 2.mysq ...
- 传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤
第十天主要讲了jdbc操作mysql数据库,包括连接数据库六大步骤(注册数据库驱动.获得连接对象connetion.生成传输器stament.执行查询获得ResultSet.遍历结果集.关闭资源).介 ...
- 用javaweb连接数据库用javabean、severlet实现增删改查
样 很重要的一点是建立数据库的连接 数据库是一切操作的前提 不管是增加 删除 修改 查询 都需要调用数据库连接程序 再就是java的类的编写 写完类后需要对其进行增删改查方法的 编写 这是dao层的 ...
- javaWeb 数据库连接池连接数据库
需要的公共jar包 mysql-connector-java-5.0.8-bin.jar(mysql数据库) ojdbc14.jar(oracle数据库) A.DBCP 需要jar包: commo ...
- javaweb登录界面连接数据库
实验关键截图 数据库界面 建表 2.登录界面 登陆失败 5 注册页面 5 注册成功 数据库截图
- Javaweb连接数据库
在JSP中使用JDBC驱动连接mysql数据库. 1: 下载mysql的Java连接程序 2: 解压目录下的mysql-connector-java-5.0.24-bin.jar文件就是连接MySql ...
- JavaWeb 08_JSP+Dao+Bean+Servlet 实现登录注册(连接数据库,验证码登录,两周内免登陆等功能)
一.数据库db_01 表usert 字段username,password 二. 目录 三. 配置信息 四. 代码 index.jsp <script type="text/j ...
随机推荐
- java中的List接口(ArrayList、Vector、LinkedList)
一.List接口有三个常用的集合(ArrayList.Vector.LinkedList) ArrayList注意事项 ArrayList底层是用数组来实现数据存储的 底层是 transient Ob ...
- laravel 公共类json库封装
封装常用的接口响应: 创建 response.php 在app下创建如下文件下(目录及文件名可以自己设置) app/common/response.php,在内部补充如下代码: <?php /* ...
- 微信小程序 地区选择器 和省市县三级联动 和button按钮分享
wxml代码: <view class="section__title"> 地区选择器 </view> <picker bindchange=&quo ...
- Kubernetes系列(一)Pod
作者: LemonNan 原文地址: https://juejin.im/post/6862733649272537102 简单介绍 Pod 在 kubernetes 中是一个非常重要的基本概念, 别 ...
- java 中判断输入是否合法 if (变量名.hasNextInt())
//案例: Scanner sc = new Scanner(System.in); System.out.println("你选择了新修改商品功能!"); System.out. ...
- SP3734题解
题意: 有 \(n\) 列表格,第 \(i\) 列有 \(a_i\) 个格子,问在 \(n\) 列表格中有多少种放置 \(k\) 个棋子的方法使没有棋子在同一列和同一行.(如果中间有一个"格 ...
- 通信原理:基于MATLAB的AM调幅分析
目的: 通过matlab仿真AM调制,通过图像分析来更好的了解AM调制的过程 1.为什么基带信号要加上一个直流分量. 2.所加直流分量为什么要大于基带信号的最大值. 3.时域中调制信号与载波和基带信号 ...
- Microsoft .NET Framework 远程执行代码漏洞
受影响系统:Microsoft .NET Framework 4.8Microsoft .NET Framework 4.7.2Microsoft .NET Framework 4.7.1Micros ...
- C++设计模式 - 组合模式(Composite)
数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用.这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...
- 内网渗透----windows信息收集整理
一.基础信息收集 1.信息收集类型 操作系统版本.内核.架构 是否在虚拟化环境中,已安装的程序.补丁 网络配置及连接 防火墙设置 用户信息.历史纪录(浏览器.登陆密码) 共享信息.敏感文件.缓存信息. ...