【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="提交" onclick="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();
}
}
}
【JDBC-MVC模式】开发实例的更多相关文章
- 【Web开发】Mean web开发 01-Express实现MVC模式开发
简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 ...
- JavaFX桌面应用-MVC模式开发,“真香”
使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...
- Extjs MVC模式开发,循序渐进(一)
本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...
- 【转】利用MVC模式开发Java应用程序[组图]
Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...
- Angular——MVC模式开发实战
创建项目 创建工作目录 使用bower下载需要插件 git init.add.commit之后得到分支master,再创建developer分支,然后再此分支上进行具体功能开发 MVC架构 之前小项目 ...
- .net使用mvc模式开发web应用 模型与视图间的数据处理
http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文 ...
- 使用MVC模式开发一简单的销售额查询系统
与上一篇比较,只改变了index.jsp文件中form的提交路径 <form action="ShowServlet" method="post"> ...
- 基于MVC模式开发的后台框架
1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流
- mvc模式开发
- MVC模式在游戏开发的应用
原地址: http://www.cocoachina.com/gamedev/2012/1129/5212.html MVC是三个单词的缩写,分别为:模型(Model).视图(View)和控制Cont ...
随机推荐
- 莫队初探(不带修/例题极少)By cellur925
因为今天考到莫队裸题了嘤嘤嘤...而我这样的蒟蒻肯定不会这样的高端算法啊QAQ.于是暴力水了40分qwq. 正如上文所说,我实在太菜了,于是学习莫队也只是学习了最简单的不带修普通莫队,如果我能苟到省选 ...
- magento package
Magento Local module file is relative to app/code/local/ Magento Community module file is relative t ...
- 执行impdp时ORA-39213: Metadata processing is not available错误处理
通过impdp命令将Oracle11g数据库的dmp文件导入至Oracle10g中时,报出如下错误: [oracle@dbsrv3 ~]$ impdp dhccms/dhccms DIRECTORY= ...
- java中常用到的math方法(Math.PI、Math.random()、Math.abs(double)、Math.floor(double)、Math.ceil(double)、Math.round(double))
public class MathDemo { public static void main(String args[]){ /** * abs求绝对值 */ System.out.println( ...
- ASP.NET Core Action 读取流
以前mvc5 action可以直接使用 var stream = HttpContext.Current.Request.InputStream; 读取流,在Core中有所不同,可以使用以下方式读取 ...
- springmvc、springboot静态资源访问配置
如何访问项目中的静态资源? 一.springmvc springmvc中访问静态资源,如果DispatcherServlet拦截的为"",那么静态资源的访问也会交给Dispatch ...
- 【学习笔记】深入理解js原型和闭包(16)——完结
之前一共用15篇文章,把javascript的原型和闭包讲解了一下. 首先,javascript本来就“不容易学”.不是说它有多难,而是学习它的人,往往都是在学会了其他语言之后,又学javascrip ...
- Android性能分析工具Profile GPU rendering详细介绍
如何在一个应用中追踪和定位性能问题,甚至在没有它的源代码的情况下?? “Profile GPU rendering”(GPU渲染分析),一款Android4.1所引入的工具.你可以在“设置”应用的“开 ...
- Linux服务器用iotop命令分析服务器磁盘IO情况
Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦.如果会systemtap, 或者blktrace这些事情 ...
- Java String startsWith()方法
描述: 这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置. 语法 此方法定义的语法如下: public boolean startsWith(String ...