- •Отчет по лабораторной работе «Система учета прохода в здание»
- •Инструкция для администратора:
- •Запуск административной web-консоли GlassFish
- •Регистрация источника данных в jndi
- •Books.Java
- •LibrarySession.Java
- •Add_authors.Jsp
- •Add_books.Jsp
- •Index.Jsp
- •Return_b.Jsp
- •All_books.Jsp
- •Return_book.Jsp
- •Search_b.Jsp
- •Search_books.Jsp
- •Take_b.Jsp
- •Take_book.Jsp
- •Тестирование
- •Выводы:
LibrarySession.Java
package library;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@Stateless
public class librarySession implements librarySessionRemote, librarySessionLocal {
@PersistenceContext(unitName = "library-ejbPU")
private EntityManager em;
public void persist(Object object) {
//em.persist(object);
}
@Override
public void addAuthor(String name) {
Author author = new Author();
author.setName(name);
em.persist(author);
}
@Override
public List getAuthors() {
Query query = em.createNamedQuery("Author.findAll");
List authors = query.getResultList();
return authors;
}
@Override
public void addBook(String name, int author, String location, int cnt) {
Books books = new Books();
books.setName(name);
books.setAssignedAuthor( em.find(Author.class, author) );
books.setLocation(location);
books.setCnt(cnt);
books.setTohand(0);
em.persist(books);
}
@Override
public List searchBook(String name, String author) {
Query query = em.createNamedQuery("Books.findByNameOrAuthor");
query.setParameter("name", "%"+name+"%");
query.setParameter("author", "%"+author+"%");
List books = query.getResultList();
return books;
}
@Override
public List getBooks() {
Query query = em.createNamedQuery("Books.findAll");
List books = query.getResultList();
return books;
}
@Override
public void takeBook(int id) {
Books book = em.find(Books.class, id);
if( (book.getCnt() - book.getTohand()) > 0 ) {
book.setTohand( book.getTohand() + 1 );
em.persist(book);
}
}
@Override
public void returnBook(int id) {
Books book = em.find(Books.class, id);
if( book.getTohand() > 0 ) {
book.setTohand( book.getTohand() - 1 );
em.persist(book);
}
}
}
librarySessionLocal.java
package library;
import javax.ejb.Local;
@Local
public interface librarySessionLocal {
}
MiniBankSessionRemote.java
package library;
import java.util.List;
import javax.ejb.Remote;
@Remote
public interface librarySessionRemote {
void addAuthor(String name);
List getAuthors();
void addBook(String name, int author, String location, int cnt);
List searchBook(String name, String author);
List getBooks();
void takeBook(int id);
void returnBook(int id);
}
Web-модуль:
add_a.jsp
<%@page contentType="text/html" pageEncoding="utf-8"%>
<%@page import="javax.naming.*, library.*" %>
<%!
librarySessionRemote ejbRef;
%>
<%
InitialContext ic = new InitialContext();
ejbRef = (librarySessionRemote)ic.lookup("library.librarySessionRemote");
ejbRef.addAuthor( request.getParameter("name") );
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Добавление авторов книг</title>
</head>
<body>
<h1>Автор добавлен</h1>
<p><a href="index.jsp">Return</a></p>
</body>
</html>
