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 ...
随机推荐
- SpringBoot初体验
1.elipse中创建Springboot项目并启动 具体创建步骤请参考:Eclipse中创建新的Spring Boot项目 2.项目的属性配置 a.首先我们在项目的resources目录下appli ...
- Linux-jdk1.7-tomcat7 简易安装
一.jdk 安装 安装包:jdk-7u80-linux-x64.tar.gz 2 解压 [root@localhost package]# tar -zxvf jdk-7u80-linux-x64.t ...
- 【转】Python-__builtin__与__builtins__的区别与关系(超详细,经典)
在学习Python时,很多人会问到__builtin__.__builtins__和builtins之间有什么关系.百度或Google一下,有很 多答案,但是这些答案要么不准确,要么只说了一点点,并不 ...
- 最近做的floyd的题目
基础: HDU1596 HDU2112 HDU1874 HDU1869 HDU2066 HDU2094 HDU2544 稍加复杂: HDU1217 ...
- 项目收集-AutoMapper使用,事务,Json.Net序列化反序列化,代码生成调用等
using System; using AutoMapper; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace Console ...
- DataRow和DataRowView的区别
可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图. DataView一般通过DataTable.Defau ...
- hiveQL求差集
hive sql求差集的方法 1.什么是差集 set1 - set2,即去掉set1中存在于set2中的数据. 2.hive中计算差集的方法,基本是使用左外链接. 直接上代码 select * fro ...
- 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用
[网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院 欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...
- 学习笔记之09小练习题(js:从小到大输出三个任意数,查成绩,相亲题,查体重,一元二次方程求根)
<script type="text/javascript"> /*第一题.输入三个整数,x,y,z,最终以从小到大的方式输出. 注意小点:1 字符串的拼接是用+,数学 ...
- 使用邮件监控Mxnet训练
1. 前言 受到小伙伴的启发,就自己动手写了一个使用邮件监控Mxnet训练的例子.整体不算复杂. 2. 打包训练代码 需要进行监控训练,所以需要将训练的代码打包进一个函数内,通过传参的方式进行训练.还 ...