MVC jsp+servlet+javabean 连接Mysql数据库測试demo
本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库
首先我们应该了解什么是MVC:
MVC包含三个部分 :
①View:由各种JSP页面组成。
②Controller:由各种Servlet组成,Controller就是将View和Model来进行匹配,用什么Model实现,调用哪个View来显示。
③Model:由各种javabean组成,也是MVC的核心,
以下就是简单的用MVC架构去实现一个JSP(View)+Servlet(Controller)+javabean(Model)实现MySql查询功能的Demo。
安装好例如以下软件:
1.MySQL
2.MyEclipse
3.下载好MySQL 的JDBC 的连接驱动jar url:http://pan.baidu.com/s/1sjBCfZR
一、创建数据库。
1.我们使用MySQL中的test数据库来创建须要測试的表:
在test数据库下创建名字为testTable的表,设置ID为主键,name等属性。点击apply,至此就完毕了数据库的创建。然后给定一些值例如以下4所看到的:
二、创建Web Project
1.打开MyEclipse -> File-> new -> Web Project 创建完后在src下创建包beans和ServletDB最后得到例如以下的文件结构:
2.编写beans
在beans包下创建两个javabeans分别为DAL.java 和 DB.java
DB.java 注意MySqlusername和password是你本机MySql的 username和password与下面的代码可能不一样须要改动。
package beans;
import java.sql.*;
public class DB {
static String driver = "com.mysql.jdbc.Driver";
static String url = "jdbc:mysql://127.0.0.1:3306/test";
static String user = "root";//连接时的username
static String password = "root";//连接时的密码
static Connection aConnection;
public static Connection connectDB(){
try{
Class.forName(driver);
aConnection = DriverManager.getConnection(url,user,password);
if(aConnection.isClosed())
{
System.out.print("Succeeded!");
}
}catch(ClassNotFoundException e){
System.out.println(e);
} catch (SQLException e) {
e.printStackTrace();
}
return aConnection;
}
public static ResultSet executeQuery(String sqlx) throws SQLException{
connectDB();
ResultSet rs = null;
Statement stmt = aConnection.createStatement();
try {
rs = stmt.executeQuery(sqlx);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
DAL.java
package beans; import java.sql.ResultSet;
import java.sql.SQLException; public class DAL { public static String sqlx=""; public static String testQueryByID(String ID){
ResultSet rs = null;
String result = "";
sqlx = "SELECT * FROM testtable where ID = '"+ID+"'";
try {
rs = DB.executeQuery(sqlx);
} catch (SQLException e) {
e.printStackTrace();
}
try {
while(rs.next()){
result = result +"ID:"+rs.getString("ID")+" Name:"+rs.getString("name")+"</br>";
}
} catch (SQLException e) {
e.printStackTrace();
} return result;
} }
3.编写servlet
File-> new -> servlet->确定包名为servletDB然后取名为test即可了
重要的是在本test方法中增加调用beans方法的语句。
test.java
package servletDB; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import beans.DAL; public class test extends HttpServlet { /**
* Constructor of the object.
*/
public test() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
String ID = request.getParameter("ID");//获取传过来的ID
String result = "";
result = DAL.testQueryByID(ID);//调用DAL中的testQueryByID方法而且将get过来的ID传过去
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(result);
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} public void init() throws ServletException {
// Put your code here
} }
4.配置Servlet
进入WebRoot-〉Web-INF -〉web.xml加入例如以下代码
<servlet-name>test</servlet-name>
<servlet-class>servletDB.test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/servletDB/test</url-pattern>
5.加入MySQL的Driver的jar支持
将下载好的mysql-connector-java-5.1.30-bin.jar 放在好找的地方
右击项目->Properties->Java Build Path->Libraries->Add External 选择下载好的jar即可了
6.写index.jsp
将body中的代码替换为例如以下代码
<form action="servletDB/test" method="get">
请输入用户ID:<input type="text" name="ID"><br>
<input type="submit" value="提交">
</form>
三、測试
1.点击Run
2.输入測试ID 1
成功的获取到了test数据库testtable中ID为1的数据。
MVC jsp+servlet+javabean 连接Mysql数据库測试demo的更多相关文章
- 创建jsp+Servlet+JavaBean+JDBC+MySQL项目的过程
1 根据需求建立Mysql数据,确立数据库的表的字段.属性.主键,外键等.下面我使用的数据库名dev ,表名user,字段 name,设置为主键.用户名不能为空,字段password,密码 2 在E ...
- jsp+Servlet+JavaBean+JDBC+MySQL项目增删改查
1简单的Mvc,分层建包. java resources src/mian/java (1)dao 包 JDBC连接类,连接数据库.增删改查方法,其他的方法. (2)model包 实体类,数据库字段, ...
- MVC (jsp + servlet + javabean) 以及jdbc
前端: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod ...
- jsp-3 简单的servlet连接mysql数据库 使用mvc的登录注册
简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...
- Ubuntu jsp平台使用JDBC来连接MySQL数据库
Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm ...
- jsp-2 简单的servlet连接mysql数据库 增删改查
连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数 ...
- Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法
开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...
- Jsp+Servlet+JavaBean经典MVC模式理解
MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...
- (jsp+servlet+javabean )MVC架构
MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...
随机推荐
- angular.js学习手册(二)
如何使用angularjs? 各个 angular.js 版本下载: https://github.com/angular/angular.js/releases 下载完之后,在你需要使用angula ...
- 重新开始学习javase_对象的摧毁
一.概述(转:@深入理解Java虚拟机:JVM高级特性与最佳实践(最新第二版) ) 经过半个世纪的发展,内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了 ...
- Hive学习之三 《Hive的表的详解和应用案例详解》
一.Hive的表 Hive的表分为内部表.外部表和分区表. 1.内部表,为托管表. 2.外部表,external. 3.分区表. 详解: 内部表,删除表的时候,数据会跟着删除. 外部表,在删除表的时候 ...
- 在Linux-0.11中实现基于内核栈切换的进程切换
原有的基于TSS的任务切换的不足 进程切换的六段论 1 中断进入内核 2 找到当前进程的PCB和新进程的PCB 3 完成PCB的切换 4 根据PCB完成内核栈的切换 5 切换运行资源LDT 6 利用I ...
- 初涉JavaScript模式 (9) : 函数 【常用方式】
回调模式 上一篇,对JavaScript函数进行了大体的介绍,这一篇对一些在工作中经常遇到的情况进行扩展. 在工作中,我们经常遇到很多需求,比如现在有一个需求: 一栋10层的大楼,当我们在坐电梯时,电 ...
- 关于 wait_event_interruptible() 和 wake_up()的使用
来源:http://blog.csdn.net/allen6268198/article/details/8112551 1. 关于 wait_event_interruptible() 和 wake ...
- iOS App转让流程
说法一: (1)选择转让APP (2)进入转让界面 点击Continue进入下一步 (3)输入对方的APP ID和Team ID Apple ID 和 Team ID 可以在m ...
- 转:尝试用Gearman实现分布式处理(PHP)
原文来自于http://blog.csdn.net/fdipzone/article/details/7166520 本文需要你已对Gearman有个大致了解. 顺便再推荐两篇参考文章http://h ...
- PHP之intval()
Title:PHP之intval() --2014-02-26 13:57 <?php ...... $a='0x2720616e6420313d3220756e696f6e2073656c6 ...
- nutch Fetcer阶段详解
job.setSpeculativeExecution(false); 抓网页阶段,不允许同一个任务运行多次,否则,网页就抓重了 为了充分利用闲置资源,加快map 和 reduce 的执行,于是有Sp ...