Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84

Связь многие ко многим

25.07.2015, 13:23. Показов 3366. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть Users и Course.
делаю связь многие ко многим.
Пользователь входит на странице courses.ftl , где отображаются курсы и рядом с ними кнопки Subscribe.
Т.е. на какой-то курс подписываются несколько пользователей.

Где и как мне нужно хранить информацию о подписчиках?

создать в классе Courses поле private ArrayList<User> subscribes = new ArrayList<User>(0);
и туда записывать пользователей ? но в базе данных где они будут храниться ?

или в третьей таблице USER_COURSE создать поле String Subscribe ? Тоже не понятно как туда записывать, если такого класса нет ?

Может кто-нибудь набросать кода , как это реализовать?

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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.amazon.entity;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.JoinColumn;
@Entity
@Table(name="COURSES")
public class Course implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID_COURSE")
    private int id;
    @Column(name="name")
    private String name;
    @Column(name="owner")
    private String owner;
    @Column(name="category")
    private String category;
    @Column(name="description")
    private String description;
    @Column(name="links")
    private String links;
    @Column(name="stateCourse")
    private String state;
    @Column(name="minSubscribers")
    private Integer minSubscribers;
    @Column(name="minAttendes")
    private Integer minAttendes;
     
    
    
    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinTable(name = "USER_COURSE",  joinColumns = { 
            @JoinColumn(name = "ID_COURSE", nullable = false, updatable = false) }, 
            inverseJoinColumns = { @JoinColumn(name = "ID_USER", 
                    nullable = false, updatable = false)   })
    private Set<User> users = new HashSet<User>(0);
        
    public Course() {
    }
 
    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 getOwner() {
        return owner;
    }
 
    public void setOwner(String owner) {
        this.owner = owner;
    }
 
    public String getCategory() {
        return category;
    }
 
    public void setCategory(String category) {
        this.category = category;
    }
    
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public String getLinks() {
        return links;
    }
 
    public void setLinks(String links) {
        this.links = links;
    }
    
    
     
 
    
    public String getState() {
        return state;
    }
 
    public void setState(String state) {
        this.state = state;
    }
 
    public Integer getMinSubscribers() {
        return minSubscribers;
    }
 
    public void setMinSubscribers(Integer minSubscribers) {
        this.minSubscribers = minSubscribers;
    }
    
    public Integer getMinAttendes() {
        return minAttendes;
    }
 
    public void setMinAttendes(Integer minAttendes) {
        this.minAttendes = minAttendes;
    }
 
    public Set<User> getUsers() {
        return users;
    }
 
    public void setUsers(Set<User> users) {
        this.users = users;
    }
 
}
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
package com.amazon.entity;
 
@Entity
@Table(name="USERS")
public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID_USER")
    private int id;
    @Column(name="login")
    private String login;
    @Column(name="eMail")
    private String eMail;
    @Column(name="password")
    private String password;
    @Column(name="role")
    private String role;
    @ManyToMany(fetch = FetchType.EAGER, mappedBy = "users")
    private Set<Course> courses = new HashSet<Course>(0);
 
    public User() {
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getLogin() {
        return login;
    }
 
    public void setLogin(String login) {
        this.login = login;
    }
 
    public String geteMail() {
        return eMail;
    }
 
    public void seteMail(String eMail) {
        this.eMail = eMail;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getRole() {
        return role;
    }
 
    public void setRole(String role) {
        this.role = role;
    }
 
    public Set<Course> getCourses() {
        return courses;
    }
 
    public void setCourses(Set<Course> courses) {
        this.courses = courses;
    }
 
}
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
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
    
     
  </head>
  <body>
    <div class="container">
      <header>
       <h1>
          Courses  
          <div class="logout">
            <span id="currentUserLogin">
              ${eMail}
            </span>
            <a href="logout.html">
              <i class="icon-off"></i>
            </a>
          </div>
        </h1>
      </header>
        
      <table class="table table-striped table-bordered">
        <thead>
         <tr>
            <th class="span1">Id</th>
             <th>Course</th>
             <th class="span3">Category</th>
             
             <th class="span1">Grade</th>
             <th class="span1">Action</th>
          </tr>
        </thead>
        
        <tbody>
        <#list ListCourses as course>
          <tr>
                    
          <td class="span1">${course.id}</td>
          <td><a href="courses/${course.id}.html">${course.name}</a>
          <td>
              ${course.category}
          </td> 
          <td>
             -?
          </td>
          <td>  
          <a class="btn btn-mini" href="courses/${course.id}/subscribe.html">Subscribe</a>
          </td>
          </tr>
          </#list>
         </tbody>
      </table>
    </div>
      
  </body>
</html>
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
@Controller
public class SubscriptionController {
    private static final Logger log = Logger
            .getLogger(SubscriptionController.class);
 
    @Autowired
    private CourseService courseService;
     
    @Autowired
    private UserService userService;
 
    @RequestMapping(value = "/courses/{id}/subscribe", method = RequestMethod.GET)
    public String subscribeCourse(Model model, HttpSession session,
            HttpServletRequest request, @PathVariable("id") Integer courseId) {
        model.addAttribute("eMail", session.getAttribute("eMail"));
 
        User user = userService.findUserByName(session.getAttribute("name").toString());
        model.addAttribute("user", user);
        model.addAttribute("Course", (Course) courseService.findCourseById(courseId));
        model.addAttribute("CourseId", courseService.haveCourseById(courseId));
        
        if (session.getAttribute("name") == null) {
            return "redirect:/login";
        } else {
            model.addAttribute("eMail", session.getAttribute("eMail"));
            return "subscribe";
        }
    }
 
    @RequestMapping(value = "/courses/{id}/subscribe", method = RequestMethod.POST)
    public String subscribeCoursePost(Model model, HttpSession session,
            HttpServletRequest request, @PathVariable("id") Integer courseId) {
        model.addAttribute("eMail", session.getAttribute("eMail"));
 
        User user = userService.findUserByName(session.getAttribute("name").toString());
        model.addAttribute("user", user);
        Course course = courseService.findCourseById(courseId);
 
                //????????
 
        return "redirect:/courses";
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2015, 13:23
Ответы с готовыми решениями:

связь один-ко-многим в hibernate
Здравствуйте! Я знаю, что связь один-ко-многим в hibernate реализуется через join column или через join table. Есть ли другие способы...

Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно
Здрасти. Есть таблица юзеров и объявлений. У юзера может быть множество объявлений. Здесь действует связь один-ко-многим. Но юзер также...

Связь многие-ко-многим
Здравствуйте! Какую ввести дополнительную сущность, чтобы избавиться от связи многие-ко-многим?

21
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 13:55
goldenhawk, как у вас написанно норм. Скрипт БД автоматически сгенерирует таблицу USERS_COURSES
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 14:09  [ТС]
KEKCoGEN, Он генерирует таблицу с двумя колонками id_user, id_course

Делал через связи один ко многим и 3ей таблицей. создавал такой класс.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Entity
@Table(name="USER_COURSE")
public class UserCourse  implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID")
    private int id;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_USER", nullable = true)
    private User username;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_COURSE", nullable = true)
    private Course course;
    @Column(name="state")
    private String state;
    @Column(name="grade")
    private int grade;
И у меня был конкретный курс, с id пользователя где state= "subscribe".

Java
1
2
3
4
userCourse.setCourse(course);
userCourse.setUser(user);
userCourse.setState("Subscribe");
userCourse.setGrade(0);
А через связи многие ко многим , где мне отображать какой пользователь подписался на курс ?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 14:18
Цитата Сообщение от goldenhawk Посмотреть сообщение
Он генерирует таблицу с двумя колонками id_user, id_course
так и должно быть. Так в БД реалезуется связь многие-ко-многим

Цитата Сообщение от goldenhawk Посмотреть сообщение
Делал через связи один ко многим и 3ей таблицей. создавал такой класс.
если вам нужны доп. данные а не только связь, тогда создавайте класс и доп. полями. Например оценки. В этом случае нужен класс в коде однако оценки тоже обычно делают как связь один-ко-многим

Добавлено через 42 секунды
Цитата Сообщение от goldenhawk Посмотреть сообщение
где мне отображать какой пользователь подписался на курс ?
если есть запись в таблице USER_COURSE значит подписан. Поле state лишнее если у него может быть только два значения.
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 14:49  [ТС]
KEKCoGEN, у state может быть 4 состояния (пустое, subscribe, attende,evaluate ). Т.е. после subscribe пользователь может стать attend, потом evaluate. каждый пользователь дает оценку курсу.

У меня была связь один ко многим. я создал третий класс и таблицу

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Entity
@Table(name="USER_COURSE")
public class UserCourse  implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID")
    private int id;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_USER", nullable = true)
    private User username;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_COURSE", nullable = true)
    private Course course;
    @Column(name="state")
    private String state;
    @Column(name="grade")
    private int grade;
и в таблице отображалась, допустим строка id, ID_USER, ID_COURSE, state, grade.

Т.е. такой-то юзер сделал subscribe на такой-то курс, потом он сделал attend на этот курс, потом сделал evaluate на такой-то курс и поставил оценку.

А теперь мне нужно реализовать это через связь многие ко многим.

не совсем понимаю как это реализовать.

Не могли бы вы мне набросать как бы это сделать?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 15:09
Цитата Сообщение от goldenhawk Посмотреть сообщение
пустое, subscribe, attende,evaluate
какой смысл каждого значения?


Цитата Сообщение от goldenhawk Посмотреть сообщение
потом сделал evaluate на такой-то курс
Что это значит?

Думаю вы неправильно строите модель.

Нарисуйте модель БД как вы её видите затем будет понятно как замапить её в коде.
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 16:07  [ТС]
KEKCoGEN,

Вот это нужно реализовать

Users
Id......Login............Email.......... ...Password..........Role..........

1........user-1...........user-1.mail.ru........123............User.... ....
2........user-2...........user-2.mail.ru........123............User.... ....
3........user-3...........user-3.mail.ru....... 123............User........
4........Lecturer-1....lecturer-1.mail.ru.....123...........Lecturer.... .
5........Lecturer-2.....lecturer-2.mail.ru.....123..........Lecturer.....

Courses

Id.....Name............Owner........Subs cribers........Attendees.......Grade.... ....

1.......PHP............Lecturer-1....... user-1............user-1........user-1: 5.......
........................................ ........user-2............user-2........user-2: 3........

2......Python.........Lecturer-2.......user-2..............user-2.......user-2: 4.........
........................................ .......user-3..............user-3.......user-3: 4.........


3........C++..........Lecturer-1.......user-1..............user-1........user-1: 5........
........................................ .......user-2....................................... ............



Связь многие - ко- многим.

Subscribers,Attendees,Grade это ArrayList ?
Нужно сделать классы ( и соответственно таблицы ) Subscribers,Attendees,Grade и сделать связь один - ко - многим с Courses ?

А что нам дает связь многие ко многим между Users и Courses ?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 16:08
goldenhawk, то что вы написали трудно читать.
https://www.draw.io/
нарисуйте схему тут (только схему без данных)
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 16:10  [ТС]
KEKCoGEN, немного подправил выше , чтоб лучше читалось
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 16:19
goldenhawk, в чем разница между Attendees и Subscribers?
Grades это чьи оценки?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 16:31
Вот так должна выглядеть схема если я правильно понял что вам нужно.

0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 16:37  [ТС]
KEKCoGEN, Subscribers - подписчики курса . Нажимаешь Subscribe - становишься подписчиком, и появляется кнопка Attende

Attendees - посетители курса, Нажимаешь Attende- становишься посетителем курса, и появляется кнопка Evaluate.

Нажимаешь кнопку Evaluate появляется форма, где ставишь оценку курса.

Grades -это оценка о курсе , которую ставит пользователь, который посещал курс.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 16:48
Цитата Сообщение от goldenhawk Посмотреть сообщение
Нажимаешь Subscribe - становишься подписчиком
зачем? Что может подписчик сделать? Только кнопку Attend нажать? Зачем тогда этот функционал нужен вообще?
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 17:40  [ТС]
KEKCoGEN, ну можно attendes убрать .

Вот такая схема получается. Пользователи подписываются на курсы, и выставляют оценки о курсе .

Users
Id......Login............Email.......... ...Password..........Role..........

1........user-1...........user-1.mail.ru........123............User.... ....
2........user-2...........user-2.mail.ru........123............User.... ....
3........user-3...........user-3.mail.ru....... 123............User........
4........Lecturer-1....lecturer-1.mail.ru.....123...........Lecturer.... .
5........Lecturer-2.....lecturer-2.mail.ru.....123..........Lecturer.....

Courses

Id.....Name............Owner........Subs cribers.......Grade........

1.......PHP............Lecturer-1....... user-1..........user-1: 5.......
........................................ ........user-2..........user-2: 3......

2......Python.........Lecturer-2.......user-2............user-2: 4......
........................................ .......user-3...........user-3: 4.......


3........C++..........Lecturer-1.......user-1............user-1: 5......
........................................ .......user-2............user-2: 5......
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 17:46
goldenhawk, тогда схема которую я выше написал вполне подойдет. Оценки можно вынести отдельно а можно не выносить.
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 20:19  [ТС]
KEKCoGEN, но это получается связи один к одному?

Вот у меня так реализовано.

User.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 @Entity
@Table(name="USERS")
public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID_USER")
    private int id;
    @Column(name="login")
    private String login;
    @Column(name="eMail")
    private String eMail;
    @Column(name="password")
    private String password;
    @Column(name="role")
    private String role;
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "username")
    private Set<UserCourse> userCourses = new HashSet<UserCourse>(0);
Course.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
@Entity
@Table(name="COURSES")
public class Course implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID_COURSE")
    private int id;
    @Column(name="name")
    private String name;
    @Column(name="owner")
    private String owner;
    @Column(name="category")
    private String category;
    @Column(name="description")
    private String description;
    @Column(name="links")
    private String links;
    @Column(name="stateCourse")
    private String state;
    @Column(name="minSubscribers")
    private Integer minSubscribers;
    @Column(name="minAttendes")
    private Integer minAttendes;
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "course")
    private Set<UserCourse> userCourses = new HashSet<UserCourse>(0);
UserCourse.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Entity
@Table(name="USER_COURSE")
public class UserCourse  implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    @Column(name="ID")
    private int id;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_USER", nullable = true)
    private User username;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "ID_COURSE", nullable = true)
    private Course course;
    @Column(name="state")
    private String state;
    @Column(name="grade")
    private int grade;

А нужно както через связи мноигие ко многим реализовать.
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
25.07.2015, 20:27
goldenhawk, че та я не совсем вник...
на сколько я знаю что в БД "нельзя" реализовать (*)---(*) вместо этого (1)--(*)--(1) или наподобие этого будет или я ошибаюсь?
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
25.07.2015, 20:42  [ТС]
Так а для чего тогда связи many to many нужны?
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
25.07.2015, 20:56
интересно я пока что нигде не использовал этот связь...
но посмотрите вот эти ссылки тынц и тынц
я бы лучше сделал бы как Кексоген сказал...
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2015, 21:06
Цитата Сообщение от goldenhawk Посмотреть сообщение
Так а для чего тогда связи many to many нужны?
они создают доп. таблицу в БД.

goldenhawk, последний вариант вроде как рабочий несмотря на то что много кривого кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2015, 21:06
Помогаю со студенческими работами здесь

Связь многие-ко-многим
Здравствуйте. Подскажите, пожалуйста, для организации связи &quot;многие-ко-многим&quot; обязательна дополнительная таблица, или можно без...

Связь многие ко многим
День добрый. Есть 2 таблицы &quot;описание&quot; и &quot;адрес&quot; и связь многое ко многим. При выполнении запроса, вместо необходимых адресов выдает весь...

Связь многие ко многим
Подскажите, тут есть связь многие-ко-многим,если да, то где?

Связь многие ко многим
Здравствуйте, нужно сделать выборку по жанрам. Для этого нужно реализовать связь многие ко многим(чтобы у каждого фильма могло быть...

Связь многие ко многим
Ребят, привет! Продолжаю писать веб-сервис. Есть следующий код: class MyContext : DbContext { public DbSet&lt;Post&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru