Web与数据库连接使用增加和查询操作 Web 增加和查询操作

这是我参与11月更文挑战的第二十三天,活动详情查看:2021最后一次更文挑战

Web 增加和查询操作

创建数据库

创建db_crm数据库 并且设置数据库的编码格式为UTF-8

CREATE DATABASE IF NOT EXISTS db_crm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

创建客户数据表

1
2
3
4
5
6
7
复制代码cid      客户主键
cname   客户姓名
phone   客户手机号码
email   客户电子邮箱
url     客户公司网址
come     客户来源
remark   备注信息
1
2
3
4
5
6
7
8
9
scss复制代码CREATE TABLE  tb_customer(
          cid     int   primary key auto_increment,
          cname   varchar(200),  
          phone   varchar(25),
          email   varchar(100),
          url     varchar(100),
  come    varchar(50),
          remark  varchar(200)
)

数据库连接工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
java复制代码package com.hbwl.utils;

import com.mysql.cj.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


public class JdbcUtils {
private static final String URL="jdbc:mysql://localhost:3306/db_crm?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
private static final String USERNAME="root";
private static final String PASSWORD="123456";

//注册驱动
static{
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

//获取数据库的链接
private static Connection openConn()
{
Connection connection=null;
try {
connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}


//关闭数据库的链接
private static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs)
{
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null)
{
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


/**
* 执行增删改操作的
* @param sql 要执行的SQL语句
* @param params 这里是SQL语句的?号注入的参数
* @return 是否影响了多少行 如果影响了就为true 否则为false
*/
public static boolean executeUpdate(String sql,Map<Integer,Object> params)
{
int row=0;
//打开链接
Connection openConn = openConn();
PreparedStatement ps=null;
try {
ps = openConn.prepareStatement(sql);
Set<Entry<Integer, Object>> entry = params.entrySet();
Iterator<Entry<Integer, Object>> iterator = entry.iterator();
while(iterator.hasNext())
{
Entry<Integer, Object> next = iterator.next();
ps.setObject(next.getKey(),next.getValue());
}
row=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//关闭链接
closeConn(openConn,ps,null);
}
return row>0?true:false;

}


/**
* 执行查询的动作
* @param sql
* @param params
* @return
*/
public static ResultSet executeQuery(String sql,Map<Integer,Object> params)
{
ResultSet rs=null;
Connection openConn = openConn();
PreparedStatement ps=null;
try {
ps = openConn.prepareStatement(sql);
if(params!=null&&params.size()>0){
Set<Entry<Integer, Object>> entry = params.entrySet();
Iterator<Entry<Integer, Object>> iterator = entry.iterator();
while(iterator.hasNext())
{
Entry<Integer, Object> next = iterator.next();
ps.setObject(next.getKey(),next.getValue());
}
}
rs=ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
}

在web.xml中设置首页

1
2
3
4
5
6
7
xml复制代码<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>SYSTEM</display-name>
<welcome-file-list>
<welcome-file>add.html</welcome-file>
</welcome-file-list>
</web-app>

整合静态资源

将所有的静态文件夹拷贝到项目的webapp中

新增页面

在webapp下新建add.html

新增控制Servlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ini复制代码package com.hbwl.servlet;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

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 com.hbwl.utils.JdbcUtils;

@WebServlet("/doAdd")
public class AddServlet extends HttpServlet {

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//接收前台的参数
String cname = req.getParameter("cname");
String phone = req.getParameter("phone");
String email = req.getParameter("email");
String url = req.getParameter("url");
String come = req.getParameter("come");
String remark = req.getParameter("remark");
//调用JDBCUtils的插入方法
String sql="INSERT INTO tb_customer VALUES(newid(),?,?,?,?,?,?)";
HashMap<Integer,Object> params=new HashMap<Integer,Object>();
params.put(1,cname);
params.put(2,phone);
params.put(3,email);
params.put(4,url);
params.put(5,come);
params.put(6,remark);
//如果插入成功 则跳转到查询页面
boolean flag=JdbcUtils.executeUpdate(sql, params);
if(flag)
{
resp.sendRedirect("/list");
}
}
}

查询页面

在webapp下新建list.jsp 要转换为jsp页面 因为要在页面上编写Java代码

在JSP页面中 代码必须写在<%%>里面 后面我们会学到JSTL语句和EL表达式 是用来替代下面的
JSP页面中的JAVA语句块
<%
可以编写任意的JAVA代码
%>

#JSP页面中的表达式块
<%=Java表达式/变量值%>

例如:在jsp文件头表明文件为java类型
<%@page language=”java” contentType=”text/html; charset=UTF-8” import=”java.sql.ResultSet”%>

查询控制Servlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
scala复制代码package com.hbwl.servlet;

import java.io.IOException;
import java.sql.ResultSet;

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 com.hbwl.utils.JdbcUtils;

@WebServlet("/list")
public class ListServlet extends HttpServlet{

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String sql="SELECT * FROM tb_customer";
ResultSet rs=JdbcUtils.executeQuery(sql, null);
req.setAttribute("resultSet", rs);
req.getRequestDispatcher("table_basic.jsp").forward(req, resp);

}

}

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%