`
jianson_wu
  • 浏览: 65907 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个关于DAO设计的小小project

阅读更多
BookTypeDAO.java
package com.jianson.DAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.jianson.DB.DBManager;
import com.jianson.ENTITY.BookType;
public class BookTypeDAO {
DBManager dbManager = new DBManager();
public boolean save(BookType bookType){
        String sql =
   "insert into bookType" +
   " values" +
   "("  + bookType.getBookTypeId()   + "," +
   " "  + bookType.getParentId()     + "," +
   " '" + bookType.getBookName()     + "'," +
   " '" + bookType.getContext()      + "'," +
   " "  + bookType.getIsDelete()     + ")";
    int row = dbManager.update(sql);
    return (row == 1);
}
public boolean update(BookType bookType){
    String sql =
   "update booktype" +
   " set" +
   " bookName = '" + bookType.getBookName()   + "'," +
   " context  = '" + bookType.getContext()    + "'," +
   " isDelete = "  + bookType.getIsDelete()   + "" +
       " where booktypeID = " + bookType.getBookTypeId() + "";
    System.out.println(sql);
    int row = dbManager.update(sql);
    return (row == 1);
}
public boolean delete(int id){
String sql =
"delete from bookInfo where" +
" bookTypeId = " + id;
int row = dbManager.update(sql);
    return (row == 1);
}
public BookType findId(int id){
String sql = "select bookTypeId, parentId, bookName, context, isdelete from bookType where bookTypeId = " + id;
ResultSet rs = dbManager.query(sql);
BookType bookType = new BookType();
        try {
if( rs.next()){
int i = 1;
     bookType.setBookTypeId(rs.getInt(i ++));
bookType.setParentId(rs.getInt(i ++));
bookType.setBookName(rs.getString(i ++));
bookType.setContext(rs.getString(i ++));
bookType.setIsDelete(rs.getInt(i ++));
/* System.out.print(rs.getInt(i ++) + "");
System.out.print(rs.getString(i ++) + " ");
System.out.print(rs.getString(i ++) + " ");
System.out.print(rs.getString(i ++)    + " ");
System.out.print(rs.getInt(i ++) + "");*/
}
} catch (SQLException e) {
e.printStackTrace();
}
return bookType;
}
public void findAll(){
String sql = "select bookTypeId, parentId, bookName, context, isdelete from bookType";
ResultSet rs = dbManager.query(sql);
BookType bookType = new BookType();
        try {
while( rs.next()){
int i = 1;
     bookType.setBookTypeId(rs.getInt(i ++));
bookType.setParentId(rs.getInt(i ++));
bookType.setBookName(rs.getString(i ++));
bookType.setContext(rs.getString(i ++));
bookType.setIsDelete(rs.getInt(i ++));
System.out.println(bookType);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

BookType.java
package com.jianson.ENTITY;
public class BookType {
private int bookTypeId;  
private int parentId;    
private String bookName; 
private String context;
private int isDelete;
public BookType(){
super();
}
public BookType(int bookTypeId, int parentId, String bookName, String context, int isDelete){
super();
this.bookTypeId = bookTypeId;
this.parentId = parentId;
this.bookName = bookName;
this.context  = context;
this.isDelete = isDelete;
}
public BookType(int parentId, String bookName, String context, int isDelete){
super();
this.parentId = parentId;
this.bookName = bookName;
this.context  = context;
this.isDelete = isDelete;
}

public int getBookTypeId() {
return bookTypeId;
}
public void setBookTypeId(int bookTypeId) {
this.bookTypeId = bookTypeId;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
public int getIsDelete() {
return isDelete;
}
public void setIsDelete(int isDelete) {
this.isDelete = isDelete;
}
@Override
public String toString() {
return "BookType [bookName=" + bookName + ", bookTypeId=" + bookTypeId
+ ", context=" + context + ", isDelete=" + isDelete
+ ", parentId=" + parentId + "]";
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((bookName == null) ? 0 : bookName.hashCode());
result = prime * result + bookTypeId;
result = prime * result + ((context == null) ? 0 : context.hashCode());
result = prime * result + isDelete;
result = prime * result + parentId;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BookType other = (BookType) obj;
if (bookName == null) {
if (other.bookName != null)
return false;
} else if (!bookName.equals(other.bookName))
return false;
if (bookTypeId != other.bookTypeId)
return false;
if (context == null) {
if (other.context != null)
return false;
} else if (!context.equals(other.context))
return false;
if (isDelete != other.isDelete)
return false;
if (parentId != other.parentId)
return false;
return true;
}
}

DBManager.java
package com.jianson.DB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBManager {
Connection con = null;
Statement  sta = null;
ResultSet rs   = null;
int row = 0;
/**
* 用来执行insert update delete
* @param sql 要执行的sql语句
* @return sql影响的行数
* @author
*/
    public int update(String sql){
    System.out.println(sql);
    try {
    //定义接口是用JDBC或者ODBC等等:返回与带有给定字符串名的类或接口相关联的 Class 对象
    Class.forName(config.driver);
    //得到连接:试图建立到给定数据库 URL 的连接
    con = DriverManager.getConnection(config.url, config.user, config.pwd);
    //创建一个 Statement 对象来将 SQL 语句发送到数据库
    sta = con.createStatement();
       //statement接口实现executeUpdate方法执行sql语句
    //row为执行sql所影响的行数
    row = sta.executeUpdate(sql);
    System.out.println(row == 1);
       } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e){
    e.printStackTrace();
    } finally {
    this.close();
        }
    return 1;
    }
    public ResultSet query(String sql){
try {
//定义接口是用JDBC或者ODBC等等:返回与带有给定字符串名的类或接口相关联的 Class 对象
Class.forName(config.driver);
//得到连接:试图建立到给定数据库 URL 的连接
con = DriverManager.getConnection(config.url, config.user, config.pwd);
//创建一个 Statement 对象来将 SQL 语句发送到数据库
sta = con.createStatement();
   //statement接口实现executeUpdate方法执行sql语句
//rs为执行sql所产生的结果集
rs = sta.executeQuery(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e){
e.printStackTrace();
}
return rs;
     }
    public void close(){
try {
if (rs !=null){
    rs.close();
    rs = null;
    }
if (sta !=null){
    sta.close();
    sta = null;
    }
if (con != null){
con.close();
con = null;
}
}
catch (SQLException e) {
e.printStackTrace();
}
    }
}


TestBookTypeDAO.java
package com.jianson.TEST;

import com.jianson.DAO.BookTypeDAO;
import com.jianson.ENTITY.BookType;

public class TestBookTypeDAO {
public static void main(String args[]){
TestBookTypeDAO testBookTypeDAO = new TestBookTypeDAO();
// testBookTypeDAO.testSave();
// testBookTypeDAO.testUpdate();
// testBookTypeDAO.testDelete();
testBookTypeDAO.testFindAll();
// testBookTypeDAO.testFindId();

}
    public void testSave(){
    BookType bookType = new BookType();
    bookType.setBookTypeId(9);
    bookType.setParentId(3);
    bookType.setBookName("javaweb开发");
    bookType.setContext("编程");
    bookType.setIsDelete(0);
    BookTypeDAO bookTypeDAO = new BookTypeDAO();
    if( bookTypeDAO.save(bookType)){
    System.out.println("数据添加成功");
    }else{
    System.out.println("数据添加失败");
    }
    }
    public void testUpdate(){
    BookType bookType = new BookType();
    BookTypeDAO bookTypeDAO = new BookTypeDAO();
    bookType.setBookTypeId(9);
    bookType.setParentId(3);
    bookType.setBookName("javaweb");
    bookType.setContext("java");
    bookType.setIsDelete(0);
    if(bookTypeDAO.update(bookType)){
    System.out.println("修改数据成功");
    }else{
    System.out.println("修改数据失败");
    }
    }
    public void testDelete(){
    BookTypeDAO bookTypeDAO = new BookTypeDAO();
    boolean success = bookTypeDAO.delete(9);
    if(success){
    System.out.println("数据删除成功");
    }else{
    System.out.println("数据删除失败");
    }
    }
    public void testFindId(){
    BookTypeDAO bookTypeDAO = new BookTypeDAO();
    BookType bookType = bookTypeDAO.findId(2);
    System.out.println(bookType);
    }
    public void testFindAll(){
    BookTypeDAO bookTypeDAO = new BookTypeDAO();
        bookTypeDAO.findAll();
    }
}
分享到:
评论

相关推荐

    自己的一个小小毕业设计

    【标题】:“自己的一个小小毕业设计” 这个毕业设计项目是基于Java编程语言完成的,它展示了作者在学习Java过程中所掌握的技术和应用能力。Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的...

    一个vs做的小小的程序

    不过,根据提供的标题、描述及部分可识别的信息,我们可以尝试总结一些与“一个vs做的小小的程序”相关的知识点。 ### 一、VS(Visual Studio)简介 Visual Studio 是由微软公司开发的一套完整的开发工具包,它...

    XXSG-CoCos-Creator-Project:小小三国cocos项目源码(开发中)

    XXSG-CoCos-Creator-Project是一个开源项目,专注于开发一款名为“小小三国”的游戏,使用Cocos Creator作为主要的游戏开发框架。Cocos Creator是Cocos2d-x家族的一员,是一款强大的跨平台2D游戏开发工具,它提供了...

    一个小小的日历程序(4KB)...

    标题中的“一个小小的日历程序(4KB)”指的是一个用Visual Basic (VB)编写的微型应用程序,其可执行文件大小仅有4KB。在早期的计算机编程中,代码大小往往受到硬件限制,4KB的程序非常小巧,展示了程序员的高效编码...

    小小浏览器源代码

    【小小浏览器源代码】是一个基于网络通信类的项目,提供了基本的浏览器功能,包括连接、前进、后退、刷新和返回主页等操作。这个源代码是对于初学者和开发者了解浏览器工作原理,以及实践网络通信编程的一个宝贵资源...

    小小记事本

    总结起来,“小小记事本”是一个学习性质的编程项目,旨在通过实现一个简单的记事本应用,帮助开发者掌握编程语言的基础知识,包括文件操作、GUI设计、事件处理和基本的文本处理技巧。通过这样的练习,开发者能够对...

    浙江大学面向对象程序设计C++大作业 基于Visual Studio 与 OpenGL 的几何建模功能的project

    在借鉴吸收的基础上设计一个基于 visualstudio 和 OpenGL 的几何建模功能的project,内容可 以在 tutorial 中选择至少 2 个能独立运行的功能并集成在一起; 界面采用传统的 visual studio 界面,包括菜单、工具条、...

    浙江大学面向对象程序设计C++大作业 基于 visualstudio 和 OpenGL 的几何建模查看编辑器

    一个低门槛的几何建模查看编辑器可以让更多人有能力对 3D 模型进行简单的调整。在 本项目中,只需要简单的键鼠操作,就可以对已有的 3D 模型进行基础的修改调整,以更加 符合用户需求。 1、 支持常见的模型文件载入/...

    查找二叉排序树的双亲节点,并输出路径project

    接下来,我们需要设计一个C++程序来实现这个功能。在C++中,我们可以定义一个二叉树节点类,包含节点值、左孩子和右孩子指针。然后,创建一个函数,接受树的根节点和目标节点,通过递归或迭代的方式查找目标节点的...

    BookProject.rar

    总结,这个"BookProject.rar"项目是一个实用的学习资源,它展示了如何基于Struts2框架构建一个完整的图书管理系统。通过研究这个项目,开发者不仅能掌握Struts2的基本用法,还能了解到Web应用的完整生命周期,包括...

    mgl-final-project:这是一款旨在帮助用户跟踪其游戏数据的应用

    【标题】"mgl-final-project" 是一个专为游戏爱好者设计的应用程序,它的目标是协助用户追踪他们在游戏中的各种数据,以便更好地理解自己的游戏表现、进步和习惯。这个项目可能是由个人开发者或一个小团队完成的,它...

    自编的计算器

    标题中的“自编的计算器”表明这是一个个人开发的计算器程序,可能是为了学习...对于学习Delphi编程和了解计算器应用开发的人来说,这是一个很好的实例,可以通过反编译和分析代码来深入理解Delphi的编程原理和UI设计。

    IGME671-Project

    在"IGME671-Project"中,我们可以推测这是一个使用ASP.NET技术进行开发的项目,可能涉及到游戏设计、多媒体交互或者数据管理等多个方面。 ASP.NET的核心优势在于它的MVC(Model-View-Controller)架构,这是一种...

    Project-Jackfruit:益智平台游戏

    在编程世界中,游戏开发是一项充满挑战且富有创造力的任务,而"Project-Jackfruit"则是一个以C#语言实现的益智平台游戏。C#作为.NET框架的主要编程语言,因其高效、安全以及丰富的库支持,成为制作2D和3D游戏的首选...

    Project讲义1

    二是开发一个线路设计的自适应优化算法,兼顾设计合理性、材料和施工成本;三是为大规模机器学习模型实现随机梯度类算法,并提供用户指南和测试报告。 通过这门课程的学习,学员不仅能深化对优化理论的理解,还能...

    test_project01

    "test_project01"看起来像是一个测试项目的名字,这通常代表了一次实践性的尝试或一个小型的开发实验。项目名称简洁明了,可能暗示了这是一个初步的或者基础性的工程,用于测试某种技术、框架或者流程。 描述中同样...

    Arduino UNO原理图和PCB工程文件.zip

    接下来是"1083-Arduino_UNO project.prj",这是一个项目文件,它包含了整个设计的元器件库、网络表、PCB布局等信息。通过此文件,开发者可以追踪到每个元器件的来源,查看电路的完整拓扑结构,这对于理解和复用设计...

    Omnifood-Project:虚拟食品公司的着陆页

    "Omnifood-Project"是一个专为虚拟食品公司设计的着陆页,它利用了JavaScript这一强大的客户端脚本语言,旨在提供一个交互性强、用户体验优秀的平台。 **1. JavaScript基础及应用** JavaScript是一种轻量级的解释型...

    Quartus_II使用教程

    门新建一个文件夹保存这些设计文件,然后在Project中add就可以。然后依次生成对应的 bsf文件(即打包,bsf 文件必须在工程所在的文件下),添加到下载电路中。 管脚绑定也可以利用tcl 命令来完成,我们做实验的时候...

    android模仿课程表

    在这个小小的例子中,我们将探讨如何利用Android Studio和相关的开发工具来实现一个功能齐全、用户友好的课程表应用。 首先,我们需要创建一个新的Android项目。在Android Studio中,选择"Start a new Android ...

Global site tag (gtag.js) - Google Analytics