JDBC - 开发实例 - MVC模式
JDBC - 开发实例 - MVC模式
1. 在web.xml中配置连接数据库的信息
web.xml:
<context-param>
<param-name>server</param-name> //主机名
<param-value>localhost</param-value>
</context-param>
<context-param>
<param-name>db</param-name> //数据库
<param-value>test</param-value>
</context-param>
<context-param>
<param-name>user</param-name> //用户名
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name> //密码
<param-value>1234</param-value>
</context-param>
2. 数据层-创建实体类Student.java
Student.java:
package gh.test.entity;
public class Student{
private int id;
private String name;
private int gender;
private int age;
private String address;
private String tel;
public void setId(int id){ //学号
this.id = id;
}
public int getId(){
return id;
}
public void setName(String name){ //姓名
this.name = name;
}
public String getName(){
return name;
}
public void setGender(int gender){ //性别
this.gender = gender;
}
public int getGender(){
retuen gender;
}
public void setAge(int age){ //年龄
this.age = age;
}
public int getAge(){
return age;
}
public void setAddress(String address){ //地址
this.address = address;
}
public String getAddress(){
return address;
}
public void setTel(String tel){
return tel;
}
}
3. 数据访问层-创建数据库操作类 DB.java & 学生DAO类 StudentDao.java
DB.java:
package gh.test.dao;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DB{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
public Connection getConn
(String server,String db,String user,String password)throws ClassNotFoundException,InstantiationException,IllegalAccessException,SQLException{ //获取对象
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://"+server+":3306/"+db+"?user="+user+"&password="+password+"&characterEncoding=utf-8";
Class.forName(driver); //加载驱动
Connection conn = DriverManager.getConnection(url); //创建Connection对象
return conn;
}
public ResultSet executeQuery(String sql,String[] params){ //执行查询操作
try{
ps = conn.prepareStatement(sql);
if(params != null){
for(int i=0;i<params.length;i++){
ps.setString(i+1,params[i]);
}
}
rs = ps.executeQuery();
}
catch(SQLException ex){
ex.printStackTrace();
}
return rs;
}
public int executeUpdate(String sql,String[] params){ //执行更新操作
int n = 0;
try{
ps = conn.prepareStatement(sql);
if(params != null){
for(int i=0;i<params.length;i++){
ps.setString(i+1,params[i]);
}
n = ps.executeUpdate();
}
}catch(SQLException ex){
ex.printStackTrace();
}
return n;
}
public void closeAll(){
if(rs != null){
try{
rs.close();
}catch(SQLException ex){
ex.printStackTrace();
}
}
if(ps != null){
try{
ps.close();
}catch(SQLException ex){
ex.printStackTrace();
}
}
if(conn != null){
try{
conn.close();
}catch(SQLException ex){
ex.printStackTrace();
}
}
}
}
StudentDao.java:
package gh.test.dao;
import gh.test.entity.Student;
public class StudentDao extends DB{
public int addStudent(Student student){
String name = student.getName();
String gender = student.getGender()+"";
String age = student.getAge()+"";
String address = student.getAddress();
String tel = student.getTel();
String[] params = new String[]{name,gender,age,address,tel};
String sql = "insert into studentInfo values(?,?,?,?,?)";
int result = super.executeUpdate(sql,params);
return result;
}
}
4. 视图显示层&逻辑处理-addStudent.html & AddStudentServlet.java
addStudent.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>添加学生信息</title>
</head>
<body>
<form name="form1" action="AddStudentServlet" method="post">
<table>
<tr>
<th colspan="2">学生信息</th>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="gender" value="0" check="checked"/>男
<input type="radio" name="gender" value="1"/>女
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<select name="age">
<option value="18" select="selected">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>
</td>
</tr>
<tr>
<td>地址:</td>
<td><input type="text" name="address"/></td>
</tr>
<tr>
<td>电话:</td>
<td><input type="text" name="tel"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="tj" value="提交" οnclick="check();"/>
<input type="reset" name="cz" value="重置"/>
</td>
</tr>
</table>
</form>
<script language="javascript">
function check(){
if(document.form1.name.value == ""){
alert("请输入姓名!");
document.form1.name.focus();
return false;
}
if(document.form1.age.value == ""){
alert("请输入年龄!");
document.form1.age.focus();
return false;
}
if(document.form1.address.value == ""){
alert("请输入地址!");
document.form1.address.focus();
return false;
}
if(document.form1.tel.value == ""){
alert("请输入电话号码!");
document.form1.tel.focus();
return false;
}
return true;
}
</script>
</body>
</html>
AddStudentServlet.java:
package gh.test.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletContent;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import gh.test.entity.Student;
import gh.test.dao.StudentDao;
public class AddStudentServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
public AddStudentServlet(){
super();
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
int gender = Integer.parseInt(request.getParameter("gender"));
int age = Integer.parseInt(request.getParameter("age"));
String address = request.getParameter("address");
String tel = request.getParameter("tel");
Student student = new Student();
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setAddress(address);
student.setTel(tel);
ServletContext ctx = this.getServletContext();
String server = ctx.getInitParameter("server");
String db = ctx.getInitParameter("db");
String user = ctx.getInitParameter("user");
String password = ctx.getInitParameter("password");
StudentDao studentDao = new StudentDao();
try{
studentDao.getConn(server,db,user,password);
if(studentDao.addStudent(student) == 1){
out.print("添加新同学信息成功!<br>");
}
else{
out.print("添加失败!<br>");
}
out.print("<a href='addStudent.html'>返回</a>");
}catch(ClassNotFoundException ex){
ex.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
转载于:https://blog.51cto.com/megxh51/1907901
JDBC - 开发实例 - MVC模式相关推荐
- servlet+javabean+jdbc+mysql基于MVC模式的课件管理系统,有三个表的增删改查和课件搜索、课件上传、课件下载功能, 具体功能请看界面上的导航条
源码支持在idea.eclipse.myeclipse运行,数据库采用MySQL数据库,项目采用mvc设计模式开发,页面采用jsp+html+css+js完成. servlet+javabean+jd ...
- (iOS开发总结)MVC模式
一.MVC 模式 MVC,即模型-视图-控制器(Model-View-Model),是软件开发中应用甚广的一种设计模式.其用意是将数据与视图分化,利用模型数据控制视图的显示,但两者的交互由控制器控制. ...
- 的mvc_简述PHP网站开发的MVC模式
为了提高开发时候的代码重用和开发速度,php使用了mvc的模式,主要是对代码的功能进行了分类,M:model主要是对数据库进行操作,v:view主要是前端html文件操作,c:controller主要 ...
- 软件开发的MVC构架
MVC:IDE开发环境开发时,无意中使用的软件结构. 转自于wikipedia:http://zh.wikipedia.org/wiki/MVC 软件的层次划分:框架--组件(设计模式)--算法与数据 ...
- iOS里面MVC模式详解
iOS里面MVC模式详解 MVC是IOS里面也是很多程序设计里面的一种设计模式,M是model,V是view,C是controller.MVC模式在ios开发里面可谓是用得淋漓尽致. 以下是对斯坦福大 ...
- 基于Servlet的MVC模式用户登录实例
关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第43讲:PHP程序设计中的MVC模式
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第43讲:PHP程序设计中的MVC模式 模型(M)-视图(V)-控制器(C)mvc是一种软件设计模式,通过MVC思想进行实例开发和程序设计. 在前面的 ...
- spring框架教程 Spring开发实例 spring mvc视频教程下载
基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...
- HTML5开发中使用MVC模式
公司上周举办了一次编程马拉松,时间为两天,我当然用了lufylegend.js,为了让代码看起来更整洁一些,尝试着用javascript写了一个小的MVC框架,并开发了一个简单的demo,由于时间太短 ...
最新文章
- 关于学习Python的一点学习总结(24->列表推导)
- python 网络聊天客户端
- es6与java的相似度,特斯拉Model Y对比蔚来ES6!这次对比结果出乎意料
- supervisor 管理进程
- C++学习之路(六):实现一个String类
- python turtle应用实例_python-turtle-一个简单实例子
- 如何用TensorFlow训练聊天机器人(附github)
- 失业日志:2009年10月12日星期一
- 如何判断两个平面相交_七年级下册相交线与平行线全章节复习
- ndoe.js实战之开发微博第一讲之工具准备
- css 中文文字字体_使用CSS的网络字体
- 垃圾回收器之标记擦除法
- sublime3 多行编辑.摘抄
- 转载——网站转接支付宝解决方案
- datax(27):不太常见配置项querySql、preSql、postSql、splitPk
- GIS数据转换成CAD数据,还原显示CASS码、符号样式及高程值等图形属性的解决方案,shp转dwg,arcgis数据转CAD数据
- C#实现目录跳转(TreeView和SplitContainer)
- TCPMP-interface相关文件函数解析 -about.c
- Render to Disk
- python:BeautifulSoup解析爬取网页文章demo