private long admin_id;
private String password;
private String username;
public long getAdminId() {
return admin_id;
}
public void setAdminId(long admin_id) {
this.admin_id = admin_id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
ReadCard的setter与getter此处省略,之后的也一样,只写对应的实体属性
private long reader_id;
private String username;
private String password;
开始写Dao数据访问层接口和实现类: 接口:
public interface AdminDao {
int getMatchCount(final long admin_id, final String password);
int resetPassword(final long admin_id, final String password);
String getPassword(final long admin_id);
String getUsername(final long admin_id);
}
public interface ReaderCardDao {
int getIdMatchCount(final long reader_id, final String password);
ReaderCard findReaderByReaderId(final long reader_id);
int resetPassword(final long reader_id, final String newPassword);
int addReaderCard(final ReaderInfo readerInfo, final String password);
String getPassword(final long reader_id);
int deleteReaderCard(final long reader_id);
}
实现类:以AdminDao接口AdminDaoImpl为例
@Repository
public class AdminDaoImpl implements AdminDao {
private final static String NAMESPACE = "com.book.dao.impl.AdminDaoImpl.";
@Resource
private SqlSessionTemplate sqlSessionTemplate;
@Override
public int getMatchCount(final long admin_id, final String password) {
Map paramMap = new HashMap<>();
paramMap.put("admin_id", admin_id);
paramMap.put("password", password);
return sqlSessionTemplate.selectOne(NAMESPACE + "getMatchCount", paramMap);
}
@Override
public int resetPassword(final long admin_id, final String password) {
Map paramMap = new HashMap<>();
paramMap.put("admin_id", admin_id);
paramMap.put("password", password);
return sqlSessionTemplate.update(NAMESPACE + "resetPassword", paramMap);
}
@Override
public String getPassword(final long admin_id) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getPassword", admin_id);
}
@Override
public String getUsername(final long admin_id) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getUsername", admin_id);
}
}
@Autowired
private BookDaoImpl bookDaoImpl;
@Override
public PageInfo queryBook(String searchWord,int pageNum,int pageSize) {
//分页
PageHelper.startPage(pageNum,pageSize);
ArrayList list = bookDaoImpl.queryBook(searchWord);
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
@Override
public PageInfo getAllBooks(int pageNum,int pageSize) {
//分页
PageHelper.startPage(pageNum,pageSize);
ArrayList list = bookDaoImpl.getAllBooks();
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
@Override
public boolean matchBook(String searchWord) {
return bookDaoImpl.matchBook(searchWord) > 0;
}
@Override
public boolean addBook(Book book) {
return bookDaoImpl.addBook(book) > 0;
}
@Override
public Book getBook(Long bookId) {
return bookDaoImpl.getBook(bookId);
}
@Override
public boolean editBook(Book book) {
return bookDaoImpl.editBook(book) > 0;
}
@Override
public boolean deleteBook(Long bookId) {
return bookDaoImpl.deleteBook(bookId) > 0;
}
@Override
public ArrayList getAllTypes() {
return bookDaoImpl.getAllTypes();
}
//通过book_id找对应类型 进而找出book_id 对应的 类号和分类名
@Override
public Type getTypesById(Long bookId) {
return bookDaoImpl.getTypesById(bookId);
}
(2)相关业务的数据操作
管理员登陆
private final static String NAMESPACE = "com.book.dao.impl.AdminDaoImpl.";
@Resource
private SqlSessionTemplate sqlSessionTemplate;
@Override
public int getMatchCount(final long admin_id, final String password) {
Map paramMap = new HashMap<>();
paramMap.put("admin_id", admin_id);
paramMap.put("password", password);
return sqlSessionTemplate.selectOne(NAMESPACE + "getMatchCount", paramMap);
}
@Override
public int resetPassword(final long admin_id, final String password) {
Map paramMap = new HashMap<>();
paramMap.put("admin_id", admin_id);
paramMap.put("password", password);
return sqlSessionTemplate.update(NAMESPACE + "resetPassword", paramMap);
}
@Override
public String getPassword(final long admin_id) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getPassword", admin_id);
}
@Override
public String getUsername(final long admin_id) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getUsername", admin_id);
}
图书管理
private final static String NAMESPACE = "com.book.dao.impl.BookDaoImpl.";
@Resource
private SqlSessionTemplate sqlSessionTemplate;
@Override
public int matchBook(final String searchWord) {
String search = "%" + searchWord + "%";
return sqlSessionTemplate.selectOne(NAMESPACE + "matchBook", search);
}
@Override
public ArrayList queryBook(final String searchWord) {
String search = "%" + searchWord + "%";
List result = sqlSessionTemplate.selectList(NAMESPACE + "queryBook", search);
return (ArrayList) result;
}
@Override
public ArrayList getAllBooks() {
List result = sqlSessionTemplate.selectList(NAMESPACE + "getAllBooks");
return (ArrayList) result;
}
@Override
public int addBook(final Book book) {
return sqlSessionTemplate.insert(NAMESPACE + "addBook", book);
}
@Override
public Book getBook(final long bookId) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getBook", bookId);
}
@Override
public int editBook(final Book book) {
return sqlSessionTemplate.update(NAMESPACE + "editBook", book);
}
@Override
public int deleteBook(final long bookId) {
return sqlSessionTemplate.delete(NAMESPACE + "deleteBook", bookId);
}
@Override
public ArrayList getAllTypes() {
List result = sqlSessionTemplate.selectList(NAMESPACE + "getAllTypes");
return (ArrayList) result;
}
@Override
public Type getTypesById(final long TypeId){
return sqlSessionTemplate.selectOne(NAMESPACE + "getTypesById", TypeId);
}
(3)mybatis数据库操作
admin.xml
book.xml
select * from class_info
select c.class_id,c.class_name
from book_info b inner join class_info c on b.class_id = c.class_id and b.book_id = #{book_id}
insert into book_info values
(null, #{name}, #{author}, #{publish}, #{ISBN},
#{introduction}, #{language}, #{price}, #{pub_date}, #{picture},
#{class_id}, #{number})
update book_info set name=#{name}, author=#{author},
publish=#{publish}, ISBN=#{ISBN}, introduction=#{introduction},
language=#{language}, price=#{price}, pub_date=#{pub_date},picture=#{picture},
class_id=#{class_id}, number=#{number} where book_id=#{book_id}
select * from book_info
select * from book_info where name like #{search}
or author like #{search} or introduction like #{search}
select count(*) from book_info where name like #{search}
or author like #{search} or introduction like #{search}
select * from book_info where book_id = #{book_id}
delete from book_info where book_id = #{book_id}
(4)相关业务的交互操作
登录业务的交互操作
//负责处理loginCheck.html请求
//请求参数会根据参数名称默认契约自动绑定到相应方法的入参中
@RequestMapping(value = "/api/loginCheck", method = RequestMethod.POST)
public @ResponseBody
Object loginCheck(HttpServletRequest request) {
long id = Long.parseLong(request.getParameter("id"));
String passwd = request.getParameter("passwd");
boolean isReader = loginServiceImpl.hasMatchReader(id, passwd);
boolean isAdmin = loginServiceImpl.hasMatchAdmin(id, passwd);
HashMap res = new HashMap<>();
if (isAdmin) {
Admin admin = new Admin();
admin.setAdminId(id);
admin.setPassword(passwd);
String username = loginServiceImpl.getAdminUsername(id);
admin.setUsername(username);
request.getSession().setAttribute("admin", admin);
res.put("stateCode", "1");
res.put("msg", "管理员登陆成功!");
} else if (isReader) {
ReaderCard readerCard = loginServiceImpl.findReaderCardByReaderId(id);
request.getSession().setAttribute("readercard", readerCard);
res.put("stateCode", "2");
res.put("msg", "读者登陆成功!");
} else {
res.put("stateCode", "0");
res.put("msg", "账号或密码错误!");
}
return res;
}
@RequestMapping("/admin_main.html")
public ModelAndView toAdminMain(HttpServletResponse response) {
return new ModelAndView("admin_main");
}
@RequestMapping("/reader_main.html")
public ModelAndView toReaderMain(HttpServletResponse response) {
return new ModelAndView("reader_main");
}
@RequestMapping("/admin_repasswd.html")
public ModelAndView reAdminPasswd() {
return new ModelAndView("admin_repasswd");
}
@Autowired
private LendDaoImpl lendDaoImpl;
@Override
public boolean returnBook(long bookId, long readerId){
return lendDaoImpl.returnBookOne(bookId, readerId)>0 && lendDaoImpl.returnBookTwo(bookId)>0;
}
@Override
public boolean lendBook(long bookId, long readerId, String name){
return lendDaoImpl.lendBookOne(bookId,readerId,name)>0 && lendDaoImpl.lendBookTwo(bookId)>0;
}
@Override
public PageInfo lendList(int pageNum,int pageSize){
//分页
PageHelper.startPage(pageNum,pageSize);
ArrayList list = lendDaoImpl.lendList();
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
@Override
public PageInfo myLendList(long readerId,int pageNum,int pageSize){
//分页
PageHelper.startPage(pageNum,pageSize);
ArrayList list = lendDaoImpl.myLendList(readerId);
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
@Override
public int deleteLend(long serNum) {
return lendDaoImpl.deleteLend(serNum);
}
与读者有关的业务
@Autowired
private ReaderInfoDaoImpl readerInfoDaoImpl;
@Override
public PageInfo readerInfos(int pageNum,int pageSize) {
//分页
PageHelper.startPage(pageNum,pageSize);
ArrayList list = readerInfoDaoImpl.getAllReaderInfo();
PageInfo pageInfo = new PageInfo(list);
return pageInfo;
}
@Override
public boolean deleteReaderInfo(long readerId) {
return readerInfoDaoImpl.deleteReaderInfo(readerId) > 0;
}
@Override
public ReaderInfo getReaderInfo(long readerId) {
return readerInfoDaoImpl.findReaderInfoByReaderId(readerId);
}
@Override
public boolean editReaderInfo(ReaderInfo readerInfo) {
return readerInfoDaoImpl.editReaderInfo(readerInfo) > 0;
}
@Override
public boolean editReaderCard(ReaderInfo readerInfo) {
return readerInfoDaoImpl.editReaderCard(readerInfo) > 0;
}
@Override
public long addReaderInfo(ReaderInfo readerInfo) {
return readerInfoDaoImpl.addReaderInfo(readerInfo);
}
(2)相关业务的数据操作
借阅图书
@Resource
private SqlSessionTemplate sqlSessionTemplate;
private final static String NAMESPACE = "com.book.dao.impl.LendDaoImpl.";
@Override
public int returnBookOne(final long book_id, long reader_id) {
Map map = new HashMap<>();
map.put("book_id", book_id);
map.put("reader_id", reader_id);
return sqlSessionTemplate.update(NAMESPACE + "returnBookOne", map);
}
@Override
public int returnBookTwo(final long book_id) {
return sqlSessionTemplate.update(NAMESPACE + "returnBookTwo", book_id);
}
@Override
public int lendBookOne(final long book_id, final long reader_id,final String name) {
Map map = new HashMap<>();
map.put("book_id", book_id);
map.put("reader_id", reader_id);
map.put("name",name);
return sqlSessionTemplate.insert(NAMESPACE + "lendBookOne", map);
}
@Override
public int lendBookTwo(final long book_id) {
return sqlSessionTemplate.update(NAMESPACE + "lendBookTwo", book_id);
}
@Override
public ArrayList lendList() {
List result = sqlSessionTemplate.selectList(NAMESPACE + "lendList");
return (ArrayList) result;
}
@Override
public ArrayList myLendList(final long reader_id) {
List result = sqlSessionTemplate.selectList(NAMESPACE + "myLendList", reader_id);
return (ArrayList) result;
}
@Override
public int deleteLend(final long ser_num) {
return sqlSessionTemplate.delete(NAMESPACE + "deleteLend", ser_num);
}
读者信息管理
private final static String NAMESPACE = "com.book.dao.impl.ReaderInfoDaoImpl.";
@Resource
private SqlSessionTemplate sqlSessionTemplate;
@Override
public ArrayList getAllReaderInfo() {
List result = sqlSessionTemplate.selectList(NAMESPACE + "getAllReaderInfo");
return (ArrayList) result;
}
@Override
public ReaderInfo findReaderInfoByReaderId(final long reader_id) {
return sqlSessionTemplate.selectOne(NAMESPACE + "findReaderInfoByReaderId", reader_id);
}
@Override
public int deleteReaderInfo(final long reader_id) {
return sqlSessionTemplate.delete(NAMESPACE + "deleteReaderInfo", reader_id);
}
@Override
public int editReaderInfo(final ReaderInfo readerInfo) {
return sqlSessionTemplate.update(NAMESPACE + "editReaderInfo", readerInfo);
}
@Override
public int editReaderCard(final ReaderInfo readerInfo) {
return sqlSessionTemplate.update(NAMESPACE + "editReaderCard", readerInfo);
}
@Override
public final long addReaderInfo(final ReaderInfo readerInfo) {
if (sqlSessionTemplate.insert(NAMESPACE + "addReaderInfo", readerInfo) > 0) {
return sqlSessionTemplate.selectOne(NAMESPACE + "getReaderId", readerInfo);
} else {
return -1;
}
}
(3)mybatis数据库操作
lend.xml
update lend_list set back_date = sysdate() where book_id = #{book_id}
and reader_id = #{reader_id} and back_date is null
update book_info set number = number + 1 where book_id = #{book_id}
insert into lend_list values
(null , #{book_id} , #{reader_id} , sysdate() , null, #{name})
update book_info set number = number - 1 where book_id = #{book_id}
select * from lend_list
select * from lend_list where reader_id = #{reader_id}
delete from lend_list where ser_num = #{ser_num}
readerInfo.xml
select * from reader_info
select * from reader_info where reader_id = #{reader_id}
delete from reader_info where reader_id = #{reader_id}
update reader_info set name = #{name} , sex = #{sex},
birth = #{birth} ,address = #{address} ,phone = #{phone}
where reader_id = #{reader_id}
update reader_card set username = #{name}
where reader_id = #{reader_id}
insert into reader_info values
(null, #{name},#{sex},#{birth},#{address},#{phone})
select reader_id from reader_info where
name = #{name} and sex = #{sex} and
birth = #{birth} and address = #{address}
and phone = #{phone}