利用java做前端连接数据库_基于java的前端与数据库的交互
在之前很长一段时间都在搞前端部分,然后又大概了解了下数据库,现在想着把二者交融在一起吧……
首先我在Eclipse中的布局是这样的,也不知道合不合理:
用到了四个文件,分别是用于用户输入信息的前端界面Input.jsp,声明各个所需信息属性的Employ.java(话说这个可以称之为一个javabean),用于和数据库交互的EmployAdd.java,还有综合处理各种信息的GetServlet.java(这个是核心),接下来就一一展示吧……
1.
Input.jsp
pageEncoding="utf-8"%>
Insert title here
添加学生信息
姓名 | |
性别 |
男 女 |
年龄 | |
所在班级 |
1班 2班 3班 4班 5班 |
提交 |
重置 |
很常规的操作,将顶端的编码都改成了utf-8,上篇也提到了,中文乱码问题,还是统一的好……在“性别”那里犯了个低级错误,在servlet中获取name=sex的值时我误以为是文本的男女,即外面的男or女,实际上获取的是value中的值,一开始没有设置,结果插到数据库中的是“on”。。还有就是action中的路径/GetServlet,之前翻开javaweb开发时就提到了路径问题,很大的篇幅,使用
getContextPath()可以获取相对路径,避免了很多麻烦,貌似有些项目和运行路径不一致,在这里可以使用该命令获取项目的根目录,在本例中即/test,运行该页面显示的路径为:http://localhost:8080/test/Input.jsp,大家还可以了解一下
getServletPath()、
getRequestURI()等方法,都是获取各种路径的。
在Tomcat中运行该jsp文件,输入相关数据:
2.
Employ.java
package EmployAll;
public class Employ {
private String name;
private String sex;
private int age;
private String cla;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCla() {
return cla;
}
public void setCla(String cla) {
this.cla = cla;
}
}
这个没啥好说的,我们需要的四个属性和对应的set/get方法……
3.
EmployAdd.java
package EmployAll;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class EmployAdd {
public boolean addEmploy(Employ employ) {
String name=employ.getName();
String sex=employ.getSex();
int age=employ.getAge();
String cla=employ.getCla();
Connection conn=null;
PreparedStatement pstat=null;
//注册驱动
String driver = "com.mysql.cj.jdbc.Driver";
//URL指向要访问的数据库名mysql
String url = "jdbc:mysql://localhost:3306/mysql?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
//MySQL配置时用户名
String user = "root";
//MySQL配置时的密码
String password = "123456";
try {
Class.forName(driver); //加载驱动程序
conn=DriverManager.getConnection(url, user, password);//获取数据库链接
String sql="insert into student (name,age,sex,cla) values (?,?,?,?)";
pstat=conn.prepareStatement(sql); //创建prepareStatement类对象,用来执行SQL语句
pstat.setString(1, name);
pstat.setInt(2, age);
pstat.setString(3, sex);
pstat.setString(4, cla);
pstat.executeUpdate();//执行sql语句
pstat.close();
conn.close();
} catch(ClassNotFoundException e) {
System.out.println("加载驱动异常!");
e.printStackTrace();
} catch(SQLException e) {
System.out.println("获取连接异常!");
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return true;
}
}
之前有篇博客专门写了java与数据库连接的,只不过上次是查询,这次是插入,内容也很常规,用到了prepareStatement对象,它是预编译的sql语句对象,可以先用?来代替对应值,而后再用setXXX插入具体值,详细的解释大家可以查一下文档~~~下面的处理异常时的确出了问题,先是找不到驱动,这个在上一篇已经说了,jar包的问题,然后获取连接异常,结果发现values拼写错误。。
4.
GetServlet.java
public class GetServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String age=request.getParameter("age");
String cla=request.getParameter("class");
Employ employ=new Employ();
employ.setName(name);
employ.setSex(sex);
employ.setAge(Integer.parseInt(age));
employ.setCla(cla);
EmployAdd ema=new EmployAdd();
ema.addEmploy(employ);
}
}
创建一个servlet,默认的我就不添加了,代码太多了,由于我们用到的是post方式,只修改它就行了。先是设置各种格式,这个也出了错,上篇已经比较详细地介绍了,编码方式需要统一,这个很重要。。接下来就是通过getParameter()方法获取对应name的值,然后创建一个Employ对象,用set()将获取的前端用户输入的值收入囊中,最后创建一个EmployAdd对象调用addEmploy()方法,在这个方法一开始便是使用
Employ对象的get()方法获取之前set的值,这样处理数据库连接的类便拿到了用户输入的值并将其放到数据库中……
大体就是这样,接下来增加些难度,看看会不会出现惊喜。
之前一直乱码,直到“最终”同学出现才搞定~~~(小刚小明和小红是在mysql中直接写入的)
利用java做前端连接数据库_基于java的前端与数据库的交互相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java做同学录管理系统_基于jsp的同学录管理系统-JavaEE实现同学录管理系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的同学录管理系统, 该项目可用各类java课程设计大作业中, 同学录管理系统的系统架构分为前后台两部分, 最终实现在 ...
- java农产品查询系统_基于java的农产品销售系统的设计与实现论文.docx
基于java的农产品销售系统的设计与实现论文.docx 分类号_______________ 密级________________ UDC _______________ 学号_毕业设计(论文)论文题 ...
- java网上书店系统_基于JAVA/JSP的网上书店系统
第一章 JAVA的网络功能与编程 1-1 JAVA语言简介 Java是一种简单易用.完全面向对象.具有平台无关性且安全可靠的主要面向Internet的开发工具.自从1995年正式问世以来,Java的快 ...
- java网上书店管理系统_基于JAVA的网上书店管理系统的开发.doc
基于JAVA的网上书店管理系统的开发 基于 JAVA 的网上书店系统的设计与开发 摘 要 电子商务是一种在互联网上进行商务活动的形式,近年来随着互联网技术的 发展得以迅速普及.如何利用最新互联网编程技 ...
- 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf
基于java ee的大学生作品展示系统.pdf 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 第34卷第3期 2015年6月 南昌工程学院学 ...
- java线程卡住排查_基于 Java 线程栈 排查问题
除日志外,还有没有别的方式跟踪线上服务问题呢?或者,跟踪并排除日志里无法发现的问题? 方法当然是有的,就是通过现场快照定位并发现问题.我们所说的现场,主要指这两方面: Java 线程栈.线程栈是Jav ...
- 基于java的信访项目_基于JAVA的某省人大信访信息系统的设计与实现
分 类 号 : TP 3 1 1 . 5 单 位 代码 : 1 01 8 3 研 究 生 学 号 : 2 0 1 35 3 H3 08 密 级 : 公 开 吉 林 大 学 硕 士 学 位 ...
- java android长连接_基于Java Socket的自定义协议,实现Android与服务器的长连接(一)...
一.基础知识准备 在正式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解 ...
最新文章
- 中国移动OnetNet云平台 使用以太网传输数据流步骤
- 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接
- 如何落地云原生DevOps?
- tar 解压_关于Ubuntu下解压tar.xz方法记录
- Java 中关键字transient引出序列化与反序列化
- struts文件上传 java_Struts上传文件
- intrinsicContentSize和Content Hugging Priority
- 查看计算机桌面隐藏文件夹,电脑怎么查看隐藏文件(隐藏文件夹显示方法)
- 星环科技社区版TDH新增组件Hyperbase
- 定性分析与定量分析的区别
- 用java实现楼层导航_楼层导航
- 聊聊storm的WindowedBolt
- 国科大计算机体系结构考试专用
- CAD/CAM/CAE基础(一) 概论
- 计算机无法连接到internet的操作,修复无法连接到internet
【运用方式】
的设置步骤...
- 童瑶担任奥伦纳素“冰白大使”,高端护肤品类加速扩张中国市场
- [书目20131223]Android、iPhone、Windows Phone手机网页及网站设计:最佳实践与设计精粹 - 张亚飞...
- Java实现蓝桥杯VIP算法训练 二元函数
- Web大学生网页作业成品——美食餐饮网站设计与实现(HTML+CSS+JavaScript)
- 妈妈的情绪,决定孩儿子的未来
热门文章
- android分屏模式_Android分屏显示总结
- ImageIO.read(inputStream)读取.webp格式图片报错
- 计算机专业发展基金申报书,【计算机学院】国家自然科学基金申请书写作技巧及评审要点...
- 购买电脑时,关于CPU和显卡
- 计算机科学计算器CE符号,计算器的ce和c是什么意思???
- 天猫爬虫--爬取天猫评论中的图片
- JavaScript之正则表达式验证邮箱,手机号码,身份证,网址,QQ,邮政编码,中文
- 苹果手机免越狱群控电脑端控制手机
- python中用来抛出异常的关键字是( )_python如何抛出异常
- 原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)