采用MVC模式JDBC演示案例
MVC三层架构:
Model 模型层,数据处理和业务逻辑
View 视图层,为客户展示内容
Control 控制层,协调控制,更新模型
案例如下:
1、获得数据库连接
package com.db; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class JDBCUtil { private static final String URL="jdbc:mysql://127.0.0.1:3306/student";
private static final String USER="root";
private static final String PASSWORD="root";
private static Connection conn = null; static{
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} public static Connection getConn(){
return conn;
} }
2、创建模型
package com.model;
public class Student {
private int id;
private String name;
private char sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3、创建数据库访问对象--DAO
package com.dao; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import com.zhidi.db.JDBCUtil;
import com.zhidi.model.Student; public class StuUtile { private static final Connection conn = JDBCUtil.getConn(); //添加
public void addStu(Student stu) throws SQLException{
String sql = "insert into stu"+
"(id,name,sex,age) values (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, stu.getId());
ps.setString(2, stu.getName());
ps.setString(3,String.valueOf(stu.getSex()));
ps.setInt(4, stu.getAge()); ps.execute(); } //删除
public void delStu(int id) throws SQLException{
String sql = "delete from stu where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,id); ps.execute();
} //修改
public void updateStu(Student stu) throws SQLException{
String sql = "update stu set name=?,sex=?,age=? where "+
"id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, stu.getName());
ps.setString(2,String.valueOf(stu.getSex()));
ps.setInt(3, stu.getAge());
ps.setInt(4, stu.getId()); ps.execute();
} //查询所有学生
public List<Student> query() {
List<Student> list = new ArrayList<Student>();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from stu"); Student stu = null;
while(rs.next()){
stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
String sex = rs.getString("sex");
char[] ch = sex.toCharArray();
for (char c : ch) {
stu.setSex(c);
}
stu.setAge(rs.getInt("age"));
list.add(stu);
} } catch (SQLException e) {
e.printStackTrace();
} return list;
} //查询单个学生
public Student getStu(int id) throws SQLException{
String sql = "select * from stu where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id); ResultSet rs = ps.executeQuery();
Student stu = null;
while(rs.next()){
stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
String sex = rs.getString("sex");
char[] ch = sex.toCharArray();
for (char c : ch) {
stu.setSex(c);
}
stu.setAge(rs.getInt("age"));
}
return stu;
} }
4、控制层逻辑代码
package com.control; import java.sql.SQLException;
import java.util.List; import com.zhidi.dao.StuUtile;
import com.zhidi.model.Student; public class StuControl { public static void main(String[] args) throws SQLException {
StuUtile su = new StuUtile();
Student stu = new Student();
stu.setId(10);
stu.setName("张芳");
stu.setSex('女');
stu.setAge(20);
// su.addStu(stu); // su.updateStu(stu); // su.delStu(10);
Student s = su.getStu(1);
System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge()); // List<Student> list = su.query();
// for (Student s : list) {
// System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
// } } }
采用MVC模式JDBC演示案例的更多相关文章
- iOS架构入门 - MVC模式实例演示
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观 控制器(Controller)-- ...
- 【译】采用MVC模式创建一个简单的javascript App
原文标题:Build A Simple Javascript App The MVC Way 作者:joshcrawmer4 翻译人:huansky 初次翻译,翻译的不好,还请见谅 JavaScrip ...
- MVC模式编程演示样本-登录认证(静态)
好,部分博客分享我的总结JSP-Servlet-JavaBean思想认识和三层编程模型的基本流程,ZH- CNMVC该示例实现演示的编程模式-登录身份验证过程,在这里,我仍在使用静态验证usernam ...
- MVC模式编程演示样例-登录验证(静态)
好,上篇博客分享了本人总结的JSP-Servlet-JavaBean三层架构编程模式的实现思想和基本流程,接下来给大家分享一个MVC编程模式的实现演示样例-登录验证的过程,这里我仍然用的是静态的验证u ...
- 采用MVC模式创建一个简单的javascript App
初次翻译,翻译的不好,还请见谅 JavaScript中最好的一部分之一,也可能是最糟糕的. 在HTML文档的头部添加一个开始和结束脚本标记,并在其中引入一些意大利面条式的代码,毫无疑问这是一种过分简单 ...
- HBASE的Java与Javaweb(采用MVC模式)实现增删改查附带源码
项目文件截图 Java运行截图 package domain; import java.io.IOException; import java.util.ArrayList; import java. ...
- MVC模式:python案例
quotes = ('A man is not complete until he is married. Then he is finished.', 'As I said before, I ne ...
- JavaFX桌面应用-MVC模式开发,“真香”
使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...
- 谈谈JavaScript MVC模式
第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
随机推荐
- IFC格式简介
IFC是一个数据交换标准, 用于不同系统交换和共享数据.当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的需求.这时, 工程人员都希望能将工作成果(这里就是工程数据), 从一个软件完 ...
- 阿里云VPS服务器,ROS内网穿透
Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...
- VB6史无前例的子类化之透明按钮
[原创文章,转发请保留版权信息] 作者:mezstd 文章地址:http://www.cnblogs.com/imez/p/3299728.html 效果图: 请原谅笔者无耻地称之为史无前例,至少在笔 ...
- webstorm 常用快捷键
webstorm应该是目前最强的js编辑器了,结合sublime text可以很效率的开发项目.今天整理了一些webstorm比较实用的快捷键: Ctrl+/ 或 Ctrl+Shift+/ 注释(// ...
- 贝赛尔曲线UIBezierPath(后续)
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ...
- jedis支持哨兵主从配置role为slave
jedis功能强大,但是不能像nodejs一样指定从slave中读数据,使数据量读写量较大时读写分离,减少redis压力. 我们可以利用jedis中的方法封装一个类似于此的方法. github地址: ...
- (转载)哈夫曼编码(Huffman)
转载自:click here 1.哈夫曼编码的起源: 哈夫曼编码是 1952 年由 David A. Huffman 提出的一种无损数据压缩的编码算法.哈夫曼编码先统计出每种字母在字符串里出现的频率, ...
- checkbox样式更改用户权限操作(MVC)
数据库数据与结构下载(mysql): 链接:http://pan.baidu.com/s/1mhN9Mje 密码:j91p 源码下载: 链接:http://pan.baidu.com/s/1pLbGJ ...
- Python:eval的妙用和滥用
时间 2014-07-08 13:05:24 CSDN博客 原文 http://blog.csdn.net/zhanh1218/article/details/37562167 主题 Python ...
- jshint字段的意义
1.安装jshint插件 npm install jshint -g 2.在需要对JS进行语法检测的文件上一层目录添加.jshintrc文件 .jshintrc是一个对象,类似: { " ...