DAO

DAO(Data Access Object)对数据库访问的接口

DAO由四部分组成:

vo:(对数据库表的映射)

DAO接口:定义各种操作方法

DAO实现类:

DAO工厂:



//定义一个类(相当于数据库中表属性得映射)的属性

Book.java

package org.oracle.vo;


public class Book {


private  Integer bookId;
private String bookName;
private Integer price;
public Book(String bookName, Integer price) {
super();
this.bookName = bookName;
this.price = price;
}
public Book() {
super();
}
public Integer getBookId() {
return bookId;
}
public void setBookId(Integer bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
@Override
public String toString() {
return "Book [bookId=" + bookId + ", bookName=" + bookName + ", price=" + price + "]";
}

}



//定义dao接口          (各种方法)

BookDao.java

package org.oracle.dao;
import java.util.List;


import org.oracle.vo.Book;


public interface BookDao {


public  void save(Book  book) ;
public void  update(Book book);
public void delete(Book book);
public List<Book> getAll();
public Book getBookById(int bookId);
public List<Book> getAllByPage(int pageNumber,int pageSize);
}




//接口实现类

BookDaoImpl.java

package org.oracle.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.oracle.vo.Book;
public class BookDaoImpl extends BaseDao implements BookDao {

@Override
public void save(Book book) {
this.executeSql("insert into book values(null,?,?)", book.getBookName(),book.getPrice());

}
@Override
public void update(Book book) {
       this.executeSql("update book set bookName=?, price=? where bookId=? ", book.getBookName(),book.getPrice(),book.getBookId());

}
@Override
public void delete(Book book) {
this.executeSql("delete from book where bookId=?", book.getBookId());
}
@Override
public List<Book> getAll() {
 
List<Book>list =new ArrayList<Book>();
Connection conn=this.getConnection();
Statement st=null;
ResultSet rs=null;
try {
st=conn.createStatement();
rs=st.executeQuery("select bookId,bookName,price from book order by bookId");
//将rs结果集的数据存入list中
while(rs.next()) {
Book book=new Book();
book.setBookId(rs.getInt("bookId"));
book.setBookName(rs.getString("bookName"));
book.setPrice(rs.getInt("price"));
list.add(book);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
this.close(conn);
this.close(st);
this.close(rs);
}
return list;
}


@Override
public Book getBookById(int bookId) {


Connection conn=this.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement("select bookId,bookName,price from book where bookId=?");
ps.setInt(1, bookId);
rs=ps.executeQuery();
//将rs结果集的数据存入list中
if (rs.next()) {
Book book=new Book();
book.setBookId(rs.getInt("bookId"));
book.setBookName(rs.getString("bookName"));
book.setPrice(rs.getInt("price"));
return book;
}
} catch (Exception e) {
e.printStackTrace();
}finally {
this.close(conn);
this.close(ps);
this.close(rs);
}
return null;
}


@Override
public List<Book> getAllByPage(int pageNumber, int pageSize) {
List<Book>list =new ArrayList<Book>();
Connection conn=this.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement("select bookId,bookName,price from book order by bookId limit ?,?");
ps.setInt(1,(pageNumber-1)*pageSize);
ps.setInt(2,pageSize);
rs=ps.executeQuery();
//将rs结果集的数据存入list中
while(rs.next()) {
Book book=new Book();
book.setBookId(rs.getInt("bookId"));
book.setBookName(rs.getString("bookName"));
book.setPrice(rs.getInt("price"));
list.add(book);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
this.close(conn);
this.close(ps);
this.close(rs);
}
return list;
}

}


//测试

package org.oracle.dao;


import java.util.List;


import org.oracle.vo.Book;
public class DaoTest {
public static void main(String[] args) {
// Book book=new Book("活着",100);
// book.setBookId(14);
BookDao dao=new BookDaoImpl();
// dao.update(book);//更改书籍
//         dao.delete(book);   //删除书籍


//全部查询
// List <Book>list=dao.getAll();
// for(Book b:list) {
// System.out.println(b);
// }

//查询单个记录
// System.out.println(dao.getBookById(17));

//查询
List <Book>list=dao.getAllByPage(4, 4);
for(Book b:list) {
System.out.println(b);
}
}
}
注:在这个例子中list的作用是当数据库断开时,可以将查询的数据存储在list中,之后只需要对list进行操作


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值