用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设计模式的更多相关文章

  1. java之 ------ DAO设计模式的【具体解释】及常见设计模式的【应用】

    DAO Data Access Object(数据訪问接口) 一.场景和问题 在Java程序中.常常须要把数据持久化,也须要获取持久化的数据.可是在进行数据持久化的过程中面临诸多问题(如:数据源 不同 ...

  2. JavaBean中DAO设计模式简介

    一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...

  3. Java学习之DAO设计模式

    DAO设计模式是一个javaEE里的设计模式,DAO是Data Access Object 数据访问接口. 一个典型的DAO实现有三个组件: 1.一个DAO接口 2.一个DAO接口的具体类: 3.数据 ...

  4. Java Dao设计模式

    一.信息系统的开发架构   客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/S ...

  5. DAO设计模式

    DAO设计模式 DAO设计模式简介: DAO设计模式可以减少代码量,增强程序的可移植性,提高代码的可读性. DAO(数据库操作对象)设计模式是 JavaEE 数据层的操作.主要由五部分组成: 1.数据 ...

  6. JavaWeb技术(二):DAO设计模式

    1. DAO全称:Data Access Object , 数据访问对象.使用DAO设计模式来封装数据持久化层的所有操作(CRUD),使得数据访问逻辑和业务逻辑分离,实现解耦的目的. 2. 典型的DA ...

  7. MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户

    1. DAO简介    DAO设计模式是属于J2EE数据库层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性. 2. DAO各部分详解    DAO设计模式包括5个重要的部分,分别为数据 ...

  9. JavaBean中DAO设计模式介绍(转)

    一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...

随机推荐

  1. httpd2.2配置文件详解

    httpd2.2官方配置手册:http://httpd.apache.org/docs/2.2/ 注意:关闭防火墙,iptables规则 vim /etc/sysconfig/selinux SELI ...

  2. Bayesian CTR Prediction for Bing

    Microsoft published a paper in ICML 2009 named ‘Web-Scale Bayesian Click-Through Rate Prediction for ...

  3. MySQL之多表操作

    前言:之前已经针对数据库的单表查询进行了详细的介绍:MySQL之增删改查,然而实际开发中业务逻辑较为复杂,需要对多张表进行操作,现在对多表操作进行介绍. 前提:为方便后面的操作,我们首先创建一个数据库 ...

  4. HDU1223 Order Count 动态规划 组合数

    动态规划+组合数+大数 #include<cstdio> #include<cstdlib> #include<iostream> #include<algo ...

  5. 学习笔记之08试用div做网页(滨院)-小作业

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. UVa 10954,Add All

    Huffman编码简化版,优先队列搞定. 1A 调试的时候发现一个问题..木有想明白...问题代码里给出,哪位大神给解释下. #include <iostream> #include &l ...

  7. PHP开发者必须了解的9个魔术方法

    这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在PHP特定事件下将会被触发.这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一个简单的例子在 last post,即我们使用一个 ...

  8. iOS开发中使用文字图标iconfont

    在iOS的开发中,各种图标的使用是不可避免的,如果把全部图标做成图片放在项目中,那么随着项目的逐渐庞大起来,图片所占的地方就会越来越大,安装包也就随之变大了,如果图标需要根据不同的场景改变使用不同的颜 ...

  9. LINUX 笔记-find 命令常用用法

    命令格式: find path -option [-print] [-exec -ok] -print:find 命令将匹配的文件输出到标准输出 -exec:find 命令对匹配的文件执行该参数所给出 ...

  10. vux 组件打造手机端项目

    其实,我用vux组件的过程是这样的,哇!太方便了!!功能好全!!太简单了!!然后,就各种"跳坑".以下排坑环节. 1.安装vux:cnpm i -S vux;   比较顺利吧. 2 ...