Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_Стас.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
176 Кб
Скачать
☆

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>