Java的DAO设计模式
用java的DAO模式实现对一个学生实体的增加,查询操作。
1.建立一个学生实体类 Student.java
public class Student {
private String sid;
private String sname;
private int age;
private int banji;
private int score; public Student(String sid, String sname, int age, int banji, int score) {
this.sid = sid;
this.sname = sname;
this.age = age;
this.banji = banji;
this.score = score;
} public String getSid() {
return sid;
} public void setSid(String sid) {
this.sid = sid;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public int getBanji() {
return banji;
} public void setBanji(int banji) {
this.banji = banji;
} public int getScore() {
return score;
} public void setScore(int score) {
this.score = score;
} @Override
public String toString() {
return "student [sid=" + sid + ", sname=" + sname + ", age=" + age + ", banji=" + banji + ", score=" + score
+ "]";
} }
2.数据库连接工具类 ConnectionUtil.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class ConnectionUtil {
ConnectionUtil(){}
private static Connection con ; static{
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/shiyan";
String username="root";
String password="1234";
con = DriverManager.getConnection(url, username, password);
}catch(Exception ex){
throw new RuntimeException(ex+"数据库连接失败!");
}
} public static Connection getConnection(){
return con;
} /*关闭数据库连接操作*/
public static void close(Connection con,Statement stat , ResultSet rs){
if(rs!=null){
try{
rs.close();
}catch(SQLException ex){}
} if(stat!=null){
try{
stat.close();
}catch(SQLException ex){}
} if(con!=null){
try{
con.close();
}catch(SQLException ex){}
} }
}
3.DAO接口 UpdateDao.java
import java.util.List; public interface UpdateDao { /*查询所有的学生,返回一个List集合中*/
public List<Student> findAllStudent(); /*增加学生*/
public void addStudent(Student stu); }
4.DAO接口实现类 UpdateDaoImpl.java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; public class UpdateDaoImpl implements UpdateDao { @Override
public List<Student> findAllStudent() { List<Student> list = new ArrayList<Student>(); Connection conn = ConnectionUtil.getConnection();
String sql = "select * from student";
PreparedStatement pst;
try {
pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery(); while (rs.next()) {
Student s = new Student(rs.getString("sid"), rs.getString("sname"), rs.getInt("age"),
rs.getInt("banji"), rs.getInt("score"));
list.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
} @Override
public void addStudent(Student stu) {
Connection conn = ConnectionUtil.getConnection();
try {
String sql = "insert into student values(?,?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, stu.getSid());
pst.setString(2, stu.getSname());
pst.setInt(3, stu.getAge());
pst.setInt(4, stu.getBanji());
pst.setInt(5, stu.getScore()); pst.executeUpdate(); } catch (Exception e) {
e.printStackTrace();
} } }
5.建立一个Junit类进行测试 TestDao.java
import java.util.List; import org.junit.Test; import test3001.Student;
import test3001.UpdateDao;
import test3001.UpdateDaoImpl; public class testDao { @Test
/*测试增加学生*/
public void testaddStudent() {
UpdateDao dao = new UpdateDaoImpl();
Student stu=new Student("8","蓝猫",20,2,98);
dao.addStudent(stu);
} @Test
/*测试查询所有学生信息*/
public void testfindAllStudent() {
UpdateDao dao = new UpdateDaoImpl();
List<Student> list = null;
list = dao.findAllStudent();
for (Student stu : list) {
System.out.println(stu);
}
}
}
-----------泛型DAO是什么鬼 -_- ---------------------------
Java的DAO设计模式的更多相关文章
- java之 ------ DAO设计模式的【具体解释】及常见设计模式的【应用】
DAO Data Access Object(数据訪问接口) 一.场景和问题 在Java程序中.常常须要把数据持久化,也须要获取持久化的数据.可是在进行数据持久化的过程中面临诸多问题(如:数据源 不同 ...
- JavaBean中DAO设计模式简介
一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...
- Java学习之DAO设计模式
DAO设计模式是一个javaEE里的设计模式,DAO是Data Access Object 数据访问接口. 一个典型的DAO实现有三个组件: 1.一个DAO接口 2.一个DAO接口的具体类: 3.数据 ...
- Java Dao设计模式
一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/S ...
- DAO设计模式
DAO设计模式 DAO设计模式简介: DAO设计模式可以减少代码量,增强程序的可移植性,提高代码的可读性. DAO(数据库操作对象)设计模式是 JavaEE 数据层的操作.主要由五部分组成: 1.数据 ...
- JavaWeb技术(二):DAO设计模式
1. DAO全称:Data Access Object , 数据访问对象.使用DAO设计模式来封装数据持久化层的所有操作(CRUD),使得数据访问逻辑和业务逻辑分离,实现解耦的目的. 2. 典型的DA ...
- MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
1. DAO简介 DAO设计模式是属于J2EE数据库层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性. 2. DAO各部分详解 DAO设计模式包括5个重要的部分,分别为数据 ...
- JavaBean中DAO设计模式介绍(转)
一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...
随机推荐
- AngularJS 路由精分
AngularJS 路由机制是由ngRoute模块提供,它允许我们将视图分解成布局和模板视图,根据url变化动态的将模板视图加载到布局中,从而实现单页面应用的页面跳转功能. AngularJS 路由允 ...
- C - Coin Change (III)(多重背包 二进制优化)
C - Coin Change (III) Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- Echarts图表统计学习
史上最全的Echarts图表学习文档 http://echarts.baidu.com/doc/doc.html 勤加练习,多做总结! http://www.stepday.com/topic/?79 ...
- JavaScript面向对象基础与this指向问题
前 言 我们的程序语言经历了从"面向机器".到"面向过程".再到"面向对象"的一个过程.而JavaScript是一 ...
- redis requires Ruby version >= 2.2.2问题
最近在研究redis的集群,redis官方提供了redis-trib.rb工具,但是在使用之前 需要安装ruby,以及redis和ruby连接: yum -y install ruby ruby-de ...
- 转:扩展方法(C# 编程指南)
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual ...
- leetcode 697. Degree of an Array
题目: Given a non-empty array of non-negative integers nums, the degree of this array is defined as th ...
- 调试 ms 源代码
如果需要调试 WPF 源代码或框架源代码,那么需要使用 DotPeek. 首先需要下载 dotPeek ,可以到官网下载 dotPeek: Free .NET Decompiler & Ass ...
- Windows-universal-samples-master示例 XamlCommanding
Windows-universal-samples-master XamlCommanding 运行默认如果是 ARM会出现没有引用System,只要在调试选择CPU为PC的就好 默认 选择PC平台 ...
- C# To JAVA Converter Cracked ( 破解版 )
C# To JAVA Converter v17.10.6 Cracked by X-Cracker 简介 C# To Java converter是一款将C#代码片段或者C#项目转换为JAVA的工 ...