powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как работает?
11 сообщений из 11, страница 1 из 1
как работает?
    #39398816
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!
сразу в суть, начал разбираться со Спринг бут. вот весь проект
index.jsp
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Expires">
    <title>Boot Sample | Home</title>

    <link href="../../static/css/bootstrap.min.css" rel="stylesheet">
    <link href="../../static/css/style.css" rel="stylesheet">

    <!--[if it IE9]>
    <script src="../../static/js/html5shiv.js"></script>
    <script src="../../static/js/respond.js"></script>
    <![endif]-->
</head>
<body>

<div role="navigation">
    <div class="navbar navbar-inverse">
        <a href="#" class="navbar-brand">Bootsample</a>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="new-task">New Task</a></li>
                <li><a href="all-tasks">All Tasks</a></li>
            </ul>
        </div>
    </div>
</div>
<c:choose>
    <c:when test="${mode=='MODE_HOME'}">
        <div class="container" id="homeDiv">
            <div class="jumbotron text-center">
                <h1>Welcome to task manager</h1>
            </div>
        </div>
    </c:when>
    <c:when test="${mode=='MODE_TASKS'}">
        <div class="container text-center" id="tasksDiv">
            <h3>My tasks</h3>
            <hr/>
            <div class="table-responsive">
                <table class="table table-striped table-bordered text-left">
                    <thead>
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Description</th>
                        <th>Date Created</th>
                        <th>Finished</th>
                        <th></th>
                        <th></th>
                    </tr>
                    </thead>
                    <tbody>
                    <c:forEach var="task" items="${tasks}">
                        <tr>
                            <td>${task.id}</td>
                            <td>${task.name}</td>
                            <td>${task.description}</td>
                            <td><fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${task.dateCreated}"/></td>
                            <td>${task.finished}</td>
                            <td><a href="update-task?id=${task.id}"><span class="glyphicon glyphicon-pencil"></span> </a> </td>
                            <td><a href="delete-task?id=${task.id}"><span class="glyphicon glyphicon-trash"></span> </a> </td>
                        </tr>
                    </c:forEach>
                    </tbody>
                </table>
            </div>
        </div>
    </c:when>
    <c:when test="${mode=='MODE_NEW' || mode=='MODE_UPDATE'}">
        <div class="container text-center">
            <h3>Manage Task</h3>
            <hr/>
            <form class="form-horizontal" method="post" action="save-task">
                <input type="hidden" name="id" value="${task.id}"/>
                <div class="form-group">
                    <label class="control-label col-md-3">Name</label>
                    <div class="col-md-7">
                        <input type="text" class="form-control" name="name" value="${task.name}"/>
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label col-md-3">Description</label>
                    <div class="col-md-7">
                        <input type="text" class="form-control" name="description" value="${task.description}"/>
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label col-md-3">Finished</label>
                    <div class="col-md-7">
                        <input type="radio" class="col-sm-1" name="finished" value="true"/>
                        <div class="col-sm-1">Yes</div>
                        <input type="radio" class="col-sm-1" name="finished" value="false"/>
                        <div class="col-sm-1">No</div>
                    </div>
                </div>
                <div class="form-group">
                    <input type="submit" class="btn btn-primary" value="Save"/>
                </div>
            </form>
        </div>
    </c:when>
</c:choose>


<script src="../../static/js/jquery-3.1.1.min.js"></script>
<script src="../../static/js/bootstrap.min.js"></script>
</body>
</html>



Model Task.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
package bootsample.model;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * Created by Muzaffar on 06.01.2017.
 */
@Entity(name = "t_tasks")
public class Task implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private String description;
    @Temporal(TemporalType.TIMESTAMP)
    private Date dateCreated;
    private boolean finished;

    public Task(){}
    public Task(String name, String description, Date dateCreated, boolean finished) {
        this.name = name;
        this.description = description;
        this.dateCreated = dateCreated;
        this.finished = finished;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    public boolean isFinished() {
        return finished;
    }

    public void setFinished(boolean finished) {
        this.finished = finished;
    }

    @Override
    public String toString() {
        return "Task{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", dateCreated=" + dateCreated +
                ", finished=" + finished +
                '}';
    }
}



Controller
MainController.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
package bootsample.controller;

import bootsample.model.Task;
import bootsample.service.TaskService;
import org.apache.catalina.servlet4preview.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Date;

/**
 * Created by Muzaffar on 06.01.2017.
 */
@Controller
public class MainController {
    @Autowired
    private TaskService taskService;

    @GetMapping("/")
    public String home(HttpServletRequest request) {
        request.setAttribute("mode", "MODE_HOME");
        return "index";
    }

    @GetMapping("/all-tasks")
    public String allTasks(HttpServletRequest request) {
        request.setAttribute("tasks", taskService.findAll());
        request.setAttribute("mode", "MODE_TASKS");
        return "index";
    }

    @GetMapping("/new-task")
    public String newTask(HttpServletRequest request) {
        request.setAttribute("mode", "MODE_NEW");
        return "index";
    }

    @PostMapping("/save-task")
    public String saveTask(@ModelAttribute Task task, BindingResult bindingResult, HttpServletRequest request) {
        task.setDateCreated(new Date());
        taskService.save(task);
        request.setAttribute("tasks", taskService.findAll());
        request.setAttribute("mode", "MODE_TASKS");
        return "index";
    }
    @GetMapping("/update-task")
    public String updateTask(@RequestParam int id, HttpServletRequest request) {
        request.setAttribute("task", taskService.findTask(id));
        request.setAttribute("mode", "MODE_UPDATE");
        return "index";
    }

    @GetMapping("/delete-task")
    public String deleteTask(@RequestParam int id, HttpServletRequest request) {
        taskService.delete(id);
        request.setAttribute("tasks", taskService.findAll());
        request.setAttribute("mode", "MODE_TASKS");
        return "index";
    }
}



DAO
TaskRepository.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
package bootsample.dao;

import bootsample.model.Task;
import org.springframework.data.repository.CrudRepository;

/**
 * Created by Muzaffar on 07.01.2017.
 */
public interface TaskRepository extends CrudRepository<Task, Integer> {

}



Service
TaskService.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
package bootsample.service;

import bootsample.dao.TaskRepository;
import bootsample.model.Task;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Muzaffar on 07.01.2017.
 */
@Service
@Transactional
public class TaskService {
    private final TaskRepository taskRepository;

    public TaskService(TaskRepository taskRepository) {
        this.taskRepository = taskRepository;
    }

    public List<Task> findAll() {
        List<Task> tasks = new ArrayList<>();
        for (Task task : taskRepository.findAll()) {
            tasks.add(task);
        }
        return tasks;
    }

    public void save(Task task) {
        taskRepository.save(task);
    }

    public void delete(int id) {
        taskRepository.delete(id);
    }

    public Task findTask(int id) {
        return taskRepository.findOne(id);
    }
}



- так вот как тут происходит операции CRUD? даже нет именованных запросов как в EJB
...
Рейтинг: 0 / 0
как работает?
    #39398956
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
называй тему нормально и приведи сообщение об ошибке. Если она есть.
...
Рейтинг: 0 / 0
как работает?
    #39398957
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Музаффаркак тут происходит операции CRUD? даже нет именованных запросов как в EJB
все круд операции происходят в TaskRepository
...
Рейтинг: 0 / 0
как работает?
    #39399012
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффар,
называй тему нормально и приведи сообщение об ошибке. Если она есть.
на сколько я знаю тут переопределить название темы никак.
при чем тут ошибка, все работает нормально и читайте название темы и последнюю строку в топике... этим и все сказано.

rema174все круд операции происходят в TaskRepository
да через этот интерфейс добираемся до CrudRepository.java но все же нет явного запроса наподобие как в EJB
...
Рейтинг: 0 / 0
как работает?
    #39399029
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Музаффарно все же нет явного запроса
значит такой запрос нужно сделать :-)
...
Рейтинг: 0 / 0
как работает?
    #39399062
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174значит такой запрос нужно сделать :-)
ну прикол в том что все работает я просто хочу понять как если нет явного запроса...
...
Рейтинг: 0 / 0
как работает?
    #39399194
host.13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все запросы строятся автоматически по модели. В модели указан и перечень полей, и какое поле является ключевым - по этим данным Spring JPA и строит запросы CRUD.
...
Рейтинг: 0 / 0
как работает?
    #39399209
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
host.13,
+1
у нас вроде ЛИБО маппинг и модель ЛИБО запросы SELECT.
Поэтому вопрос автора непонятен.
...
Рейтинг: 0 / 0
как работает?
    #39399216
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
host.13,

т.е. обычных КРУД операции не явном виде сам Спринг Дата реализует а вот если мне нужен скажем так
select u from Users u where u.login=:l and u.password=:p
...
Рейтинг: 0 / 0
как работает?
    #39399222
host.13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как работает?
    #39399264
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффартак вот как тут происходит операции CRUD? даже нет именованных запросов как в EJBчитайте про CrudRepository
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как работает?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]