完整代码以及junit,mysql--connector包下载地址 : https://github.com/CasterWx/MyStudentDao

表信息:

代码:

dao包----impl包----StudentDAOImpl.java

 package dao.impl;

 import dao.IStudentDAO;
import domain.Student; import java.sql.*;
import java.util.ArrayList;
import java.util.List; public class StudentDAOImpl implements IStudentDAO {
public static Connection connection = null ; public void setConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("连接成功");
}catch (Exception e){
System.out.println("连接失败");
}
try{
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/JavaJDBC","root","root");
}catch (Exception e){
}
} public void shutdownConnection(){
try {
if(connection!=null){
connection.close();
}
}catch (Exception e){
}
}
@Override
public void save(Student student) {
setConnection();
Statement statement = null ;
try {
statement = connection.createStatement();
// sql语句:查询对应id
String sql = "INSERT INTO t_student(id,name,age) VALUES(" + student.getId()+",'"+student.getName()+"',"+student.getAge()+")";
statement.executeUpdate(sql);
}catch (Exception e){
}finally {
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
}
}
shutdownConnection();
} @Override
public void delete(Student student) {
Long id = student.getId() ;
delete(id);
} @Override
public void delete(Long id) {
setConnection();
Statement statement = null ;
try {
statement = connection.createStatement();
// sql语句:查询对应id
String sql = "DELETE FROM t_student WHERE id="+id;
statement.executeUpdate(sql);
}catch (Exception e){
}finally {
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
}
}
shutdownConnection();
} @Override
public void update(Long id, Student student) {
setConnection();
Statement statement = null ;
try {
statement = connection.createStatement();
// sql语句:查询对应id
String sql = "UPDATE t_student SET name='"+ student.getName() +"',age="+student.getAge() +" WHERE id="+id;
statement.executeUpdate(sql);
}catch (Exception e){
}finally {
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
}
} shutdownConnection();
} @Override
public void update(Student student) {
Long id = student.getId() ;
update(id,student);
} @Override
public Student get(Long id) {
setConnection();
Statement statement = null ;
ResultSet resultSet = null ;
Student student = null ;
try {
statement = connection.createStatement();
// sql语句:查询对应id
String sql = "SELECT * FROM t_student where id="+id ;
resultSet = statement.executeQuery(sql);
if(resultSet.next()){
student = new Student() ;
student.setId(resultSet.getLong("id"));
student.setName(resultSet.getString("name"));
student.setAge(resultSet.getLong("age"));
return student ;
}
}catch (Exception e){
}finally {
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
}finally {
try{
if(resultSet!=null){
resultSet.close();
}
}catch (Exception e){
}
}
}
shutdownConnection();
return null;
} @Override
public ArrayList<Student> list() {
ArrayList<Student> list = new ArrayList<Student>() ;
setConnection();
Statement statement = null ;
ResultSet resultSet = null ;
Student student = null ;
try {
statement = connection.createStatement();
// sql语句:查询对应id
String sql = "SELECT * FROM t_student" ;
resultSet = statement.executeQuery(sql); while(resultSet.next()){
student = new Student() ;
student.setId(resultSet.getLong("id"));
student.setName(resultSet.getString("name"));
student.setAge(resultSet.getLong("age"));
list.add(student) ;
}
return list ;
}catch (Exception e){
}finally {
try{
if (statement!=null){
statement.close();
}
}catch (Exception e){
}finally {
try{
if(resultSet!=null){
resultSet.close();
}
}catch (Exception e){
}
}
}
shutdownConnection();
return list;
} }

dao包----IStudentDAO接口

 package dao;

 import domain.Student;

 import java.util.ArrayList;
import java.util.List; /**
* Student对象的CRUD操作
* */
public interface IStudentDAO {
// ----------------------------------增-------------------------------------------- /**
* 保存学生对象
* @param student
* */
void save(Student student); // ----------------------------------删-------------------------------------------- /**
* 根据删除指定学生
* @param student 学生对象
* */ void delete(Student student) ;
/**
* 根据主键删除指定学生
* @param id 学生对象主键
* */
void delete(Long id) ; // ----------------------------------改--------------------------------------------
/**
* 更新指定学生信息
* @param id 学生对象主键
* @param student 学生对象
* */
void update(Long id,Student student) ;
/**
* 根据主键删除指定学生
* @param student 学生对象
* */
void update(Student student); // ----------------------------------查-------------------------------------------- /**
* 查询指定id的学生对象
* @param id 学生对象主键
* @return Student if id存在,返回Student对象,否则返回null
*/
Student get(Long id) ;
/**
* 查询所有学生对象
* @return 所有学生对象
* */
ArrayList<Student> list() ;
}

domain包-----Student.java

 package domain;

 public class Student {
private long id ;
private String name ;
private long age ;
public void getString(){
System.out.println("Student(id="+id+",name="+name+",age="+age+")");
}
public void setId(long id){
this.id = id ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(long age){
this.age = age ;
} public long getId() {
return id;
} public long getAge() {
return age;
} public String getName() {
return name;
}
}

test包----StudentDAOTest

 package test;

 import dao.IStudentDAO;
import dao.impl.StudentDAOImpl;
import domain.Student;
import org.junit.Test; import java.util.ArrayList;
import java.util.List; public class StudentDAOTest {
IStudentDAO iStudentDAO = new StudentDAOImpl();
@Test
public void testSave() {
Student student = new Student() ;
student.setId(164L);
student.setName("Wber");
student.setAge(100L);
iStudentDAO.save(student);
}
@Test
public void testDelete() {
iStudentDAO.delete(161L);
}
@Test
public void testUpdate() {
Student student = new Student() ;
student.setId(161L);
student.setName("wa");
student.setAge(15L);
iStudentDAO.update(161L,student);
}
@Test
public void testGet() {
iStudentDAO.get(162L).getString();
}
@Test
public void testList() {
ArrayList<Student> list = iStudentDAO.list() ;
for(int i=0;i<list.size();i++){
list.get(i).getString();
}
}
}

针对Student表的DAO设计实例的更多相关文章

  1. 走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串

    原文:走向DBA[MSSQL篇] 针对大表 设计高效的存储过程[原理篇] 附最差性能sql语句进化过程客串 测试的结果在此处 本篇详解一下原理 设计背景 由于历史原因,线上库环境数据量及其庞大,很多千 ...

  2. Java秒杀简单设计二:数据库表和Dao层设计

    Java秒杀简单设计二:数据库表Dao层设计 上一篇中搭建springboot项目环境和设计数据库表  https://www.cnblogs.com/taiguyiba/p/9791431.html ...

  3. Mysql表的约束设计和关联关系设计

    https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...

  4. RBAC权限设计实例

    http://blog.csdn.net/painsonline/article/details/7183629 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为 ...

  5. 表结构中updated_time设计为ON UPDATE CURRENT_TIMESTAMP时,使用过程的一个坑

    一.mysql表结构中存在如下设计时 表结构中updated_time设计为ON UPDATE CURRENT_TIMESTAMP时,如下 `updated_time` datetime NOT NU ...

  6. 最新Dashboard设计实例、技巧和资源集锦,视觉和功能两不误,妥妥的!

    Dashboard设计,尽管设计师们叫法各不相同(例如:“数据面板设计”, “控制面板设计”, “仪表盘设计”或“后台界面设计”等等).但,此类设计的最终目都是力求以最直观.最简洁的方式呈现各种信息和 ...

  7. RBAC权限设计实例(转)

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台 ...

  8. Oracle数据库设计实例-实时生产效率系统数据库设计

    Oracle数据库设计实例-实时生产效率系统数据库设计 引言 1.1 设计前提 某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率.流水线有数百条,实时间隔为1min. ...

  9. Oracle impdp导入数据临时表空间与undo表空间爆满解决实例

    Oracle impdp导入数据临时表空间与undo表空间爆满解决实例 [日期:2018-01-24] 来源:Linux社区  作者:rangle [字体:大 中 小]   针对Oracle数据迁移, ...

随机推荐

  1. np.array转换为list,嵌套的python list转成一个一维的python list

    np.array转换为list 1 meitan = shuju.iloc[start:end, 1:2] zhengqi = shuju.iloc[start:end,2:3] print(type ...

  2. JavaScript基础:BOM的常见内置方法和内置对象

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. BOM的介绍 JavaScript的组成 JavaScript基础分为三 ...

  3. <global-results>标签来定义全局的<result>

    <global-results> <result name="error">/Error.jsp</result>   <!--   Ac ...

  4. NIO笔记---上

    小弟前端时间由于开发个管理系统导致断更了近20天!!马上就要春招了,学习了一下NIO,将笔记记录下,希望和我一样的18届毕业生都能找到满意的公司!! 本文记录了NIO与IO的区别,缓冲区的数据存取,直 ...

  5. malloc,calloc,realloc,alloc

    三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(si ...

  6. 浅谈python模块的导入操作

    1.什么是模块 在Python中有一个概念叫做模块(module). 所谓模块,就是将代码量较大的程序分割成多个有组织的,彼此独立但双能互相交互的代码片段, 这些自我包含的有组织的代码段就是模块. 2 ...

  7. thinkpadE470 win10安装虚拟机时出现‘intel VT-x’处于禁用状态 无法执行64位操作系统

    上图为安装虚拟机时弹出的问题. 解决办法: 本人电脑型号为thinkpadE470.遇到此问题查阅了很多,都是针对一般电脑的.折腾了好一会儿.故特写一篇针对此型号的. 1.重启计算机,一开始出现联想标 ...

  8. 夏令营讲课内容整理 Day 7.

    Day7是夏令营的最后一天,这一天主要讲了骗分技巧和往年经典的一些NOIP试题以及比赛策略. 这天有个小插曲,上午的day7T3是一道和树有关的题,我是想破脑袋也想不出来,正解写不出来就写暴力吧,暴力 ...

  9. 联合查询到gridview

    using com.DAL.Base; using DAL.ruanmou; using System; using System.Collections.Generic; using System. ...

  10. Spring MVC的配置和使用

    Spring MVC的配置和使用 笔记仓库:https://github.com/nnngu/LearningNotes Spring MVC需要的jar包 文章中 Spring MVC 使用的版本是 ...