java通过jdbc连接数据库并在前端实现增删查改
来源:互联网 发布:php 数组简写形式 编辑:程序博客网 时间:2024/04/29 08:43
因为数据库课程老师要求使用Java通过jdbc连接数据库,并且在前端实现增删查改的功能,所以就在网上找了个模板,改了一些,加了一些东西,勉强能用,不足的地方还请大家多多指教。网上那个模板似乎不能在网上显示数据库的数据,是因为几个servlet类没有收到index.jsp的get/post请求,加了几个按钮,目前基本能使用。接下来就把我完成的东西分享出来给大家。
package javadatabase;
1、DBConnection类
主要是用来加载驱动,登录数据库啥的。
package javadatabase; import java.sql.*; /** *Created by caijie on 2016/10/25. */ public class DBConnection { /** * 驱动类名称 */ private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; /** * 数据库连接字符串 */ private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/Wechat?useUnicode=true&characterEncoding=utf-8&useSSL=false"; /** * 数据库用户名 */ private static final String USER_NAME = "root"; /** * 数据库密码 */ private static final String PASSWORD = "caijie"; /** * 数据库连接类 */ private Connection conn = null; // 加载驱动 public DBConnection() { try { Class.forName(DRIVER_CLASS); } catch (Exception e) { System.out.println("加载驱动错误"); System.out.println(e.getMessage()); } try { conn = DriverManager.getConnection(DATABASE_URL, USER_NAME, PASSWORD); } catch (Exception e) { System.out.println("取得连接错误"); System.out.println(e.getMessage()); } } // 取得连接 public Connection getConnection() { return this.conn; } public static void close(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(PreparedStatement pstmt) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } }}
2、ShowLine类
主要是用来获取数据库数据以及执行查询、修改和删除功能。
package javadatabase;/** * Created by caijie on 2016/10/25. */import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;public class ShowLine { private PreparedStatement pstmt = null; private ResultSet rs = null; private Connection conn; public void ExcuteDel(String sql) { try { conn = new DBConnection().getConnection(); } catch (Exception e) { e.printStackTrace(); } try { // 查询数据库对象,返回记录集(结果集) pstmt = conn.prepareStatement(sql); } catch (Exception e) { e.printStackTrace(); } try { int rows = pstmt.executeUpdate(sql); if (rows >= 1) { System.out.println("成功删除....."); } else { System.out.println("删除失败....."); } } catch (Exception e) { // TODO: handle exception } } public void ExcuteMod(String sql) { try { conn = new DBConnection().getConnection(); } catch (Exception e) { e.printStackTrace(); } try { // 查询数据库对象,返回记录集(结果集) pstmt = conn.prepareStatement(sql); } catch (Exception e) { e.printStackTrace(); } try { int rows = pstmt.executeUpdate(sql); if (rows >= 1) { System.out.println("成功修改....."); } else { System.out.println("修改失败....."); } } catch (Exception e) { // TODO: handle exception } } public void ExcuteAdd(String sql){ try { conn = new DBConnection().getConnection(); } catch (Exception e) { e.printStackTrace(); } try { // 查询数据库对象,返回记录集(结果集) pstmt = conn.prepareStatement(sql); }catch (Exception e) { e.printStackTrace(); } try { int rows = pstmt.executeUpdate(sql); if(rows >= 1){ System.out.println("成功添加....."); } else { System.out.println("添加失败....."); } } catch (Exception e) { // TODO: handle exception } } public ArrayList<User> getUserList(String sql){ ArrayList<User> list = new ArrayList<User>(); // 取得数据库操作对象 try { conn = new DBConnection().getConnection(); } catch (Exception e) { e.printStackTrace(); } try { // 查询数据库对象,返回记录集(结果集) //pstmt = conn.prepareStatement(sql); pstmt = conn.prepareCall(sql); rs = pstmt.executeQuery(); // 循环记录集,查看每一行每一列的记录 while (rs.next()) { String UserN = rs.getString(1); String UserId = rs.getString(2); String Signature = rs.getString(3); String Portrait = rs.getString(4); Boolean Sex = rs.getBoolean(5); String Place = rs.getString(6); User user = new User(); user.setUserN(UserN); user.setUserId(UserId); user.setSignature(Signature); user.setPortrait(Portrait); user.setSex(Sex); user.setPlace(Place); list.add(user); } } catch (Exception e) { System.out.println(e.getMessage()); } return list; }}
3、User类
对数据库对象属性的封装
package javadatabase;/** * Created by caijie on 2016/10/19. */public class User { private String UserN; private String UserId; private String Signature; private String Portrait; private Boolean Sex; private String Place; public void setUserId(String userId) { this.UserId = userId; } public void setSignature(String signature) { this.Signature = signature; } public void setUserN(String userN) { this.UserN = userN; } public void setPortrait(String portrait) { this.Portrait = portrait; } public void setSex(Boolean sex) { this.Sex = sex; } public void setPlace(String place) { this.Place = place; } public String getUserN() { return UserN; } public String getUserId() { return UserId; } public String getSignature() { return Signature; } public String getPortrait() { return Portrait; } public Boolean getSex() { return Sex; } public String getPlace() { return Place; }}
package servlet;
1、UserServlet.java
查询表中数据显示在前端
package servlet;import javadatabase.ShowLine;import javadatabase.User;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.ArrayList;public class UserServlet extends HttpServlet { ArrayList<User> list; public void init() throws ServletException { // 执行必需的初始化 } @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ShowLine Temp = new ShowLine(); this.list = Temp.getUserList("call u_search()");//这儿使用的存储过程,改成查询语句就行了 //System.out.print(list.get(0)); request.setAttribute("list", list); request.getRequestDispatcher("index.jsp").forward(request, response); }}
2、AddServlet.java
执行点击添加按钮之后的功能
package servlet;import javadatabase.ShowLine;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by caijie on 2016/10/29. */public class AddServlet extends HttpServlet { private static String name; private static String id; private static String signature; private static String portrait; private static String sex; private static String place; private boolean flag = false; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.name = request.getParameter("usern"); this.id = request.getParameter("id"); this.signature = request.getParameter("signature"); this.portrait = request.getParameter("portrait"); this.sex = request.getParameter("sex"); this.place = request.getParameter("place"); String sql = "insert into user (usern,id,signature,portrait,sex,place) values" + "('" + name + "','" + id + "','" + signature + "','" + portrait + "','" + sex + "','" + place + "')"; //System.out.print(sql); ShowLine db = new ShowLine(); if(flag) { db.ExcuteAdd(sql); flag = false; } else flag = true; request.getRequestDispatcher("add.jsp").forward(request, response); }}
3、DelServlet.java
执行点击删除功能后的一系列操作。
package servlet;/** * Created by caijie on 2016/10/19. */import javadatabase.ShowLine;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class DelServlet extends HttpServlet { private static String sno; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.sno = request.getParameter("id"); this.doPost(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sql = "delete from user where Id = '" + sno + "' "; System.out.print(sql); ShowLine db = new ShowLine(); db.ExcuteDel(sql); request.getRequestDispatcher("userservlet").forward(request, response); }}
4、ModServlet.java
执行修改功能
package servlet;import javadatabase.ShowLine;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by Jason_Cai on 2016/11/28. */public class ModServlet extends HttpServlet { private static String choice; private static String clumn; private static String change; private boolean flag = false; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.choice = request.getParameter("id"); this.clumn = request.getParameter("eid"); this.doPost(request, response); } @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.change = request.getParameter("change"); String sql = "update user set "+clumn+" = '"+change+"' where "+clumn+" = '"+choice+"' "; //System.out.print(sql); ShowLine db = new ShowLine(); if(flag) { db.ExcuteMod(sql); flag = false; } else flag = true; request.getRequestDispatcher("modify.jsp").forward(request, response); }}
Java代码以上就结束了
剩下的是web.xml文件和jsp文件
1、添加数据的界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>添加</title></head><body><form action = "/addservlet" method = post> <input type="text" value="用户名*" readonly> <input type="text" name="usern" /> <input type="text" value="Id*" readonly> <input type="text" name="id"/> <input type="text" value="签名" readonly> <input type="text" name="signature"/> <input type="text" value="头像" readonly> <input type="text" name="portrait" /> <input type="text" value="性别*" readonly> <input type="text" name="sex"/> <input type="text" value="来自*" readonly> <input type="text" name="place"/> <input type="submit" value="确定"/></form><form action = "/userservlet" method = post> <input type="submit" value="返回"></form></body></html>
2、开始界面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head> <base href="<%=basePath%>"> <title>list</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action = "/userservlet" method = post> <input type="submit" value="查询user表"></form><form action = "/addservlet" method = post> <input type="submit" value="添加user表"></form><table border="1"> <tr> <td>姓名</td> <td>Id</td> <td>签名</td> <td>头像</td> <td>性别</td> <td>来自</td> <td> </td> </tr> <c:forEach items="${list}" var="user"> <tr> <td><a href="/modservlet?id=${user.getUserN()}&eid=usern">${user.getUserN()}</a></td> <td><a href="/modservlet?id=${user.getUserId()}&eid=id">${user.getUserId() }</a></td> <td><a href="/modservlet?id=${user.getSignature()}&eid=signature">${user.getSignature() }</a></td> <td><a href="/modservlet?id=${user.getPortrait()}&eid=portrait">${user.getPortrait() }</a></td> <td><a href="/modservlet?id=${user.getSex()}&eid=sex">${user.getSex() }</a></td> <td><a href="/modservlet?id=${user.getPlace()}&eid=place">${user.getPlace() }</a></td> <td><a href="/delservlet?id=${user.getUserId()}">删除</a></td> </tr> </c:forEach></table></body></html>
3、修改界面
<%-- Created by IntelliJ IDEA. User: Jason_Cai Date: 2016/11/28 Time: 20:47 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>修改</title></head><body><form action = "/modservlet" method = post> <input type="text" name="change" /> <input type="submit" value="确定"/></form><form action = "/userservlet" method = post> <input type="submit" value="返回"></form></body></html>
4、web.xml
servlet类的注册和mapping
<%-- Created by IntelliJ IDEA. User: Jason_Cai Date: 2016/11/28 Time: 20:47 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>修改</title></head><body><form action = "/modservlet" method = post> <input type="text" name="change" /> <input type="submit" value="确定"/></form><form action = "/userservlet" method = post> <input type="submit" value="返回"></form></body></html>
最后提醒下大家,由于每个人使用的数据库不一样,我这是按照我写的数据库来写的,如果移植到大家的电脑上的话可能需要改jsp文件和java文件里的东西,有不懂的欢迎私信讨论。
0 0
- java通过jdbc连接数据库并在前端实现增删查改
- JDBC连接数据库并实现增删查改
- java通过JDBC连接数据库及增删改查操作
- Java使用JDBC连接MySQL数据库,实现增删改查
- java jdbc连接mysql数据库实现增删改查操作
- Java使用jdbc连接MySql数据库,实现增删改查
- android通过jdbc远程连接SQL Server 并实现增删改查源码 jtds 1.3.1
- java通过jdbc连接Oracle通过数据库连接池实现增删改查
- jdbc连接数据库及对数据库实现增删改查
- java jdbc连接数据库,并对指定表进行增删改查
- JDBC连接MySQL数据库实现增删查改
- Java WEB之JDBC连接数据库的增删改查
- Java通过JDBC实现对数据库的增删查改(预编译方式)
- Java 利用 JDBC 连接 Sqlsever2012 实现 增删改查
- java纯jdbc连接mysql数据库实现增删查改 | 黄乔国PHP
- JAVA 利用JDBC连接MYSQL数据库以及增删改查的实现【学习笔记】
- JDBC连接mysql实现增删改查
- Java JDBC实现数据库的增删改查操作
- 一句话总结,什么是权限控制(即登录控制)、拦截器
- JSON
- 【转载】图文解说:基于飞思卡尔MC9S12XS的Flash擦除和写入操作
- 2955.Robberies
- 关于node.js的学习13
- java通过jdbc连接数据库并在前端实现增删查改
- shell编程遇到的bug
- 畅通工程
- Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇(十五)
- Android 开发 改变某个Activity的系统字号
- 被误解的敏捷开发
- VS C++ 初学者日记(2)输入流缓存清空
- 阻塞队列学习小结
- PHP处理数组gbk与utf-8编码互相转换的两种方法