0 / 0 / 1
Регистрация: 08.06.2015
Сообщений: 39

Подключение JDBC

12.07.2016, 16:05. Показов 1753. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытке кое-чего сделать с БД выкидвает ошибку, вот код
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
package JDBC.CRUD;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class ConnectionUtils {
    static java.sql.Connection  connect;
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        String url = "jdbc:mysql://localhost:3306/users_and_music";
        String user = "root";
        String password = "toor";
        try {
            connect = DriverManager.getConnection(url, user, password);
            //connect.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
 
    public static java.sql.Connection  getConnection() {
        return connect;
    }
}
А вот кусочек кода, который чего-то делает с бд:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public Address create(Address obj) {
        String requestMysql = "INSER INTO address (country,street,zip) VALUES (?,?,?,?);";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setString(1, obj.getCountry());
            ps.setString(2, obj.getCountry());
            ps.setInt(3, obj.getZipCode());
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
Ну а вот и сама ошибка:
Tue Jul 12 16:02:03 EEST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.07.2016, 16:05
Ответы с готовыми решениями:

Подключение драйвера JDBC
Доброе утро спецы) Имеется программа на .jar. Как запустить ее я разобрался. Вот скрипт ее запуска. #!/bin/sh MAC=$(ifconfig...

Подключение oracle через jdbc
Как подключиться к oracle через jdbc? Пишу в Intellij Idea, использую фреймворк wicket.

Подключение JDBC драйвера к проекту Java FX
Знаю, что тема очень заезженная, все гуглил, читал похожие темы на CyberForum, однако проблему не удалось устранить. package...

8
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
12.07.2016, 17:09
Цитата Сообщение от zarpom Посмотреть сообщение
Ну а вот и сама ошибка:
Это не ошибка, а предупреждение.
что бы убрать добавьте
Code
1
jdbc:mysql://localhost:3306/users_and_music?useSSL=false
1
0 / 0 / 1
Регистрация: 08.06.2015
Сообщений: 39
12.07.2016, 17:22  [ТС]
Цитата Сообщение от reisal78 Посмотреть сообщение
Это не ошибка, а предупреждение.
что бы убрать добавьте
Code
1
jdbc:mysql://localhost:3306/users_and_music?useSSL=false
изменил, и теперь после запуска программы ничего не происходит, ни ошибок, ни предупреждений, ни создание чего-либо
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
12.07.2016, 17:44
zarpom, ну вы же понимаете что по "кусочку кода" крайне сложно понять что там происходит....
как минимум
Java
1
2
3
catch (SQLException e) {
            e.printStackTrace();
        }
1
0 / 0 / 1
Регистрация: 08.06.2015
Сообщений: 39
12.07.2016, 18:48  [ТС]
Окей, вот код.
Cоздаем конекшн
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
package JDBC.CRUD;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class ConnectionUtils {
    static java.sql.Connection  connect;
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        String url = "jdbc:mysql://localhost:3306/users_and_music?useSSL=false";
        String user = "root";
        String password = "toor";
        try {
            connect = DriverManager.getConnection(url, user, password);
            //connect.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
 
    public static java.sql.Connection  getConnection() {
        return connect;
    }
}
Дженерик для CRUD операций над сущностями
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package JDBC.CRUD;
 
import java.util.List;
 
public interface GenericDAO<T> {
    T create(T obj);
 
    T read(int id);
 
    T update(T obj);
 
    void delete(int id);
 
    List<T> getAll();
}
СУБД для сущности музыкальные типа
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
package JDBC.CRUD;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import JDBC.Users.MusicType;
 
public class MusicTypeDAO implements GenericDAO<MusicType> {
    
    @Override
    public MusicType create(MusicType obj) {
        String requestMysql = "INSERT INTO music_type (type_name) VALUES (?)";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, obj.getId());
            ps.executeUpdate();
            ResultSet rs = ps.getGeneratedKeys();
            while (rs.next()) {
                int id = rs.getInt(1);
                obj.setId(id);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return null;
    }
 
    @Override
    public MusicType read(int id) {
        String requestMysql = "SELECT * FROM music_type WHERE id = ?;";
        PreparedStatement ps;
        MusicType musicType = new MusicType();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ResultSet rs = ps.executeQuery();
            musicType.setId(id);
            musicType.setTypeName(rs.getString("type_name"));
        } catch (SQLException e) {
            // TODO: handle exception
        }
 
        return musicType;
    }
 
    @Override
    public MusicType update(MusicType obj) {
        String requestMysql = "UPDATE music_type SET type_name = ? WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setString(1, obj.getTypeName());
            ps.setInt(2, obj.getId());
            ps.executeUpdate();
            ResultSet rs = ps.getGeneratedKeys();
            while (rs.next()) {
                int id = rs.getInt(1);
                obj.setId(id);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
 
    @Override
    public void delete(int id) {
        String requestMysql = "DELETE FROM music_type WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
    }
 
    @Override
    public List<MusicType> getAll() {
        String requestMysql = "SELECT * FROM music_type;";
        List<MusicType> musicTypes = new ArrayList();
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ResultSet rs = ps.executeQuery();
            while(rs.next()){
                MusicType musicType = new MusicType(rs.getInt("id"),rs.getString(rs.getString("type_name")));
                musicTypes.add(musicType);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return musicTypes;
    }
}
Тоже самое для Ролей (модер, админ, юзвель)
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
package JDBC.CRUD;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import JDBC.Users.Role;
 
public class RoleDAO implements GenericDAO<Role> {
 
    @Override
    public Role create(Role obj) {
        String requestMysql = "INSERT INTO role(role_name) VALUES (?);";
        try {
            PreparedStatement ps = ConnectionUtils.getConnection()
                    .prepareStatement(requestMysql);
            ps.setString(1, obj.getRoleName());
            ps.executeUpdate();
 
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
 
    @Override
    public Role read(int id) {
        String requestMysql = "SELECT * FROM role WHERE id = ?;";
        PreparedStatement ps;
        Role role = new Role();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                role.setRoleName(rs.getString("role_name"));
                role.setId(rs.getInt("id"));
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return role;
    }
 
    @Override
    public Role update(Role obj) {
        String requestMysql = "UPDATE role SET role_name = ? WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setString(1, obj.getRoleName());
            ps.setInt(2, obj.getId());
            ps.executeUpdate(requestMysql);
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
 
    @Override
    public void delete(int id) {
        String requestMysql = "DELETE FROM role WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
    }
 
    @Override
    public List<Role> getAll() {
        String requestMysql = "SELECT * FROM role";
        PreparedStatement ps;
        List<Role> roles = new<Role> ArrayList();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Role role = new Role(rs.getInt("id"), rs.getString("role_name"));
                roles.add(role);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return roles;
    }
 
}
Вот то же с адрессом
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
package JDBC.CRUD;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
 
import JDBC.Users.Address;
 
public class AddressDAO implements GenericDAO<Address> {
 
    @Override
    public Address create(Address obj) {
        String requestMysql = "INSER INTO address (country,street,zip) VALUES (?,?,?,?);";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setString(1, obj.getCountry());
            ps.setString(2, obj.getCountry());
            ps.setInt(3, obj.getZipCode());
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
 
    @Override
    public Address read(int id) {
        String requestMysql = "SELECT * FROM address WHERE id = ?;";
        PreparedStatement ps;
        Address address = new Address();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                address.setCountry(rs.getString("country"));
                address.setId(id);
                address.setStreet(rs.getString("street"));
                address.setZipCode(rs.getInt("zip"));
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return address;
    }
 
    @Override
    public Address update(Address obj) {
        String requestMysql = "UPDATE address SET country = ?, street = ?, zip = ? WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setString(1, obj.getCountry());
            ps.setString(2, obj.getStreet());
            ps.setInt(3, obj.getZipCode());
            ps.setInt(4, obj.getId());
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return obj;
    }
 
    @Override
    public void delete(int id) {
        String requestMysql = "DELETE FROM address WHERE id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
    }
 
    @Override
    public List<Address> getAll() {
        // TODO Auto-generated method stub
        return null;
    }
}
Для связи "многие к многим" мы создали отдельную таблицу, и конечно же вот СУБД к ней
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
package JDBC.CRUD;
 
import JDBC.Users.MusicType;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
import com.mysql.jdbc.SQLError;
 
import JDBC.Users.User;
 
public class User_music_typeDAO {
 
    public User create(User user) {
        String requestMySql = "INSERT INTO user_music_type(user_id,music_type_id) VALUES(?,?);";
        Set<MusicType> musicTypes = user.getMusicTypes();
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMySql);
            for (MusicType musicType : musicTypes) {
                ps.setInt(1, user.getId());
                ps.setInt(2, musicType.getId());
                ps.executeUpdate();
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
 
        return user;
    }
 
    public Set<MusicType> read(int UserId) {
        String requestMySql = "SELECT * FROM user_music_type WHERE user_id = ?;";
        Set<MusicType> musicTypesId = new HashSet();
        PreparedStatement ps;
        ResultSet rs;
        try {
            ps = ConnectionUtils.getConnection().prepareCall(requestMySql);
            ps.setInt(1, UserId);
            rs = ps.executeQuery();
            while (rs.next()) {
                MusicType musicTypeId = new MusicType();
                musicTypeId.setId(rs.getInt("music_type_id"));
                musicTypesId.add(musicTypeId);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return musicTypesId;
    }
 
    public User update(User user) {
        String requestMySql = "UPDATE user_music_type SET music_type_id = ? WHERE user_id = ? ;";
        Set<MusicType> musicTypes = user.getMusicTypes();
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMySql);
            for (MusicType musicType : musicTypes) {
                ps.setInt(1, musicType.getId());
                ps.setInt(2, user.getId());
                ps.executeUpdate();
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return user;
    }
 
    public void delete(int id) {
        String requestMySql = "DELETE FROM user_music_type WHERE user_id = ?;";
        PreparedStatement ps;
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMySql);        
            ps.setInt(1, id);
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO: handle exception
        }
 
    }
 
    public List<User> getAll() {
        String requestMySql = "SELECT * FROM user_music_type;";
        PreparedStatement ps;
        ResultSet rs;
        Set<MusicType> musicTypesId = new HashSet();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMySql);
            rs = ps.executeQuery();
            while (rs.next()) {
 
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return null;
    }
 
}
0
0 / 0 / 1
Регистрация: 08.06.2015
Сообщений: 39
12.07.2016, 18:49  [ТС]
Ну а вот код для создание пользователей
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
package JDBC.CRUD;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
import JDBC.Users.MusicType;
import JDBC.Users.User;
 
public class UserDAO implements GenericDAO<User> {
 
    @Override
    public User create(User user) {
        //"INSERT INTO user ( firstName, lastName, login, userpassword, age, role_id) VALUES(?,?, ?, ?, ?, ?);"
        String requestMysql = "INSERT INTO user ( firstName, lastName, login, userpassword, age, role_id) VALUES(?,?, ?, ?, ?, ?);";
        PreparedStatement ps;
        AddressDAO addressDAO = new AddressDAO();
        User_music_typeDAO user_music_typeDAO = new User_music_typeDAO();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, user.getRole().getId());
            ps.setString(2, user.getFirstName());
            ps.setString(3, user.getLastName());
            ps.setString(4, user.getLogin());
            ps.setString(5, user.getPassword());
            ps.setInt(6, user.getAge());
            ps.executeUpdate();
            ResultSet rs = ps.getGeneratedKeys();
            while (rs.next()) {
                int id = rs.getInt(1);
                user.setId(id);
            }
            addressDAO.create(user.getAddress());
            user.getAddress().setId(user.getId());
            user_music_typeDAO.create(user);
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return user;
    }
 
    @Override
    public User read(int id) {
        String requestMysql = "SELECT * FROM user WHERE id = ?;";
        PreparedStatement ps;
        ResultSet rs;
        User user = new User();
        Set<MusicType> musicTypes = new HashSet();
        AddressDAO addressDAO = new AddressDAO();
        RoleDAO roleDAO = new RoleDAO();
        User_music_typeDAO user_music_typeDAO = new User_music_typeDAO();
        MusicTypeDAO musicTypeDAO = new MusicTypeDAO();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            rs = ps.executeQuery();
            while (rs.next()) {
                user.setId(id);
                user.setAge(rs.getInt("age"));
                user.setFirstName(rs.getString("firstName"));
                user.setLastName(rs.getString("lastName"));
                user.setLogin(rs.getString("login"));
                user.setPassword(rs.getString("userpassword"));
                user.setRole(roleDAO.read(rs.getInt("role_id")));
                user.setAddress(addressDAO.read(id));
                for (MusicType musicTypeId : user_music_typeDAO.read(id)) {
                    musicTypes.add(musicTypeDAO.read(musicTypeId.getId()));
                }
                user.setMusicTypes(musicTypes);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return user;
    }
 
    /*
     * id INT NOT NULL AUTO_INCREMENT, r ole_id INT NOT NULL, firstName
     * VARCHAR(15) DEFAULT NULL, lastName VARCHAR(15) DEFAULT NULL, login
     * VARCHAR(15) DEFAULT NULL, userpassword VARCHAR(20) DEFAULT NULL, age
     * SMALLINT(3) DEFAULT NULL, PRIMARY KEY (`id`), FOREIGN KEY (role_id)
     * REFERENCES role (id)
     */
    @Override
    public User update(User user) {
        String requestMysql = "UPDATE user SET role_id = ?,firstName = ?,lastName = ?,login = ?,userpassword = ?,age = ?, WHERE id = ?;";
        PreparedStatement ps;
        AddressDAO addressDAO = new AddressDAO();
        User_music_typeDAO user_music_typeDAO = new User_music_typeDAO();
        Set<MusicType> musicTypes = new HashSet();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, user.getRole().getId());
            ps.setString(2, user.getFirstName());
            ps.setString(3, user.getLastName());
            ps.setString(4, user.getLogin());
            ps.setString(5, user.getPassword());
            ps.setInt(6, user.getAge());
            ps.setInt(7, user.getId());
            addressDAO.update(user.getAddress());
            user_music_typeDAO.update(user);
            ps.executeUpdate(requestMysql);
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return user;
    }
 
    @Override
    public void delete(int id) {
        String requestMysql = "DELETE user WHERE id = ?;";
        PreparedStatement ps;
        AddressDAO addressDAO = new AddressDAO();
        User_music_typeDAO user_music_typeDAO = new User_music_typeDAO();
        try {
            ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
            ps.setInt(1, id);
            ps.executeUpdate();
            addressDAO.delete(id);
            user_music_typeDAO.delete(id);
        } catch (SQLException e) {
            // TODO: handle exception
        }
    }
 
    @Override
    public List<User> getAll() {
        String requestMysql = "SELECT * FROM user;";
        PreparedStatement ps;
        ResultSet rs;
        User user;
        AddressDAO  addressDAO = new AddressDAO();
        RoleDAO roleDAO = new RoleDAO();
        User_music_typeDAO user_music_typeDAO = new User_music_typeDAO();
        List<User> usersList = new ArrayList();
        try {
            ps = ConnectionUtils.getConnection().prepareCall(requestMysql);
            rs = ps.executeQuery();
            while(rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setFirstName(rs.getString("firstName"));
                user.setLastName(rs.getString("lastName"));
                user.setLogin(rs.getString("login"));
                user.setPassword(rs.getString("userpassword"));
                user.setAge(rs.getInt("age"));
 
                user.setAddress(addressDAO.read(user.getId()));
                user.setRole(roleDAO.read(rs.getInt("role_id")));
                user.setMusicTypes(user_music_typeDAO.read(user.getId()));
                usersList.add(user);
            }
        } catch (SQLException e) {
            // TODO: handle exception
        }
        return usersList;
    }
 
}
Ну и вот код самой БД:
SQL
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
CREATE DATABASE  IF NOT EXISTS `users_and_music` ;
USE users_and_music;
 
CREATE TABLE address (
    id INT PRIMARY KEY AUTO_INCREMENT,
    country VARCHAR(256),
    street VARCHAR(256),
    zip INT
);
CREATE TABLE ROLE (
     id  INT PRIMARY KEY AUTO_INCREMENT,
    role_name VARCHAR(256)
);
CREATE TABLE music_type (
    id INT PRIMARY KEY AUTO_INCREMENT,
    type_name VARCHAR(256)
);
 
CREATE TABLE USER (
    id INT NOT NULL AUTO_INCREMENT,
    role_id  INT NOT NULL,
    firstName VARCHAR(15) DEFAULT NULL,
    lastName VARCHAR(15) DEFAULT NULL,
    login VARCHAR(15) DEFAULT NULL,
    userpassword VARCHAR(20) DEFAULT NULL,
    age SMALLINT(3) DEFAULT NULL,
       PRIMARY KEY (`id`),
    FOREIGN KEY (role_id)
        REFERENCES ROLE (id)
);
 
CREATE TABLE user_music_type (
    user_id INT NOT NULL,
    music_type_id INT NOT NULL,
    FOREIGN KEY (user_id) 
        REFERENCES USER (id),
    FOREIGN KEY (music_type_id)
        REFERENCES music_type (id)
);
 
 
INSERT INTO user_music_type (id_music, id_users) VALUES(85,33);
 
INSERT INTO music_type (type_name) VALUES('Rock');
INSERT INTO music_type (type_name) VALUES('Rap');
INSERT INTO music_type (type_name) VALUES('Folk');
INSERT INTO music_type (type_name) VALUES('Jazz');
INSERT INTO music_type (type_name) VALUES('indie rock');
 
INSERT INTO ROLE (role_name) VALUES('Admin');
INSERT INTO ROLE (role_name) VALUES('Moderator');
INSERT INTO ROLE (role_name) VALUES('User');
 
DROP TABLE address; 
DROP TABLE music_type; 
DROP TABLE ROLE; 
DROP TABLE user_music_type; 
DROP TABLE USER;
Ну а вот код, на котором я тестирую:
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
package JDBC.Users;
 
import java.util.HashSet;
import java.util.List;
 
import JDBC.CRUD.AddressDAO;
import JDBC.CRUD.UserDAO;
 
public class Main {
    public static void main(String[] args) {
        Role role = new Role();
        Address address = new Address(1, "Украина", 9, "Горького");
        MusicType musicType = new MusicType(1, "Rock");
        MusicType musicType2 = new MusicType(2, "Rap");
 
        HashSet<MusicType> musicTypes = new HashSet();
        musicTypes.add(musicType);
        musicTypes.add(musicType2);
 
        UserDAO userDAO = new UserDAO();
        AddressDAO addressDAO = new AddressDAO();
        User user = new User(1, "zarpom", "qwerty", "Vitaly", "Litvinov", 20,
                address, role, musicTypes);
        userDAO.create(user);
        System.out.println(userDAO.read(user.getId()));
        
        addressDAO.create(address);
        System.out.println(addressDAO.read(address.getId()));
    }
}
Вот как-то так
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
12.07.2016, 20:00
Лучший ответ Сообщение было отмечено zarpom как решение

Решение

zarpom, дубль два...
Цитата Сообщение от zarpom Посмотреть сообщение
теперь после запуска программы ничего не происходит, ни ошибок, ни предупреждений, ни создание чего-либо
Java
1
2
3
catch (SQLException e) {
            // TODO: handle exception
        }
замените на
Java
1
2
3
catch (SQLException e) {
            e.printStackTrace();
        }
если сообщений об ошибках не появиться то будем код посмотреть
1
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
12.07.2016, 20:56
Цитата Сообщение от zarpom Посмотреть сообщение
ни ошибок, ни предупреждений, ни создание чего-либо
А отладчик что показывает? Всё что нужно вызывается без ошибок?
1
0 / 0 / 1
Регистрация: 08.06.2015
Сообщений: 39
14.07.2016, 01:52  [ТС]
com.mysql.jdbc.exceptions.jdbc4.MySQLInt egrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`users_and_music`.`user`, CONSTRAINT `user_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`))

Решил предыдущую проблему, но возникла новая

Добавлено через 1 час 22 минуты
вроде как решил предыдущую проблему, возникла новая:
Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate(), Statement.executeLargeUpdate() or Connection.prepareStatement().

Добавлено через 1 час 25 минут
Все проблемы решены, спасибо всем, кто принимал участие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.07.2016, 01:52
Помогаю со студенческими работами здесь

Подключение драйверов для JDBC динамически
Есть такое желание: не зависеть от СУБД и загружать драйверы для работы с каждой динамически. Вопрос: как реализовать и возможно ли...

Подключение Java -> Access через JDBC
Доброго времени суток, подскажите пожалуйста, в чем может быть дело. Имеется некоторое приложение на java. Хочу подключить к нему БД...

Подключение JDBC в Eclipse (java.lang.ClassNotFoundException)
Добрый день. Прошу помощи в подключении Драйвера JDBC для MySQL в Eclipse Выкидывает ошибку, java.lang.ClassNotFoundException, вот сам...

Как сделать подключение драйвера jdbc в netbeans?
Как сделать подключение драйвера jdbc в netbeans?

Ошbбка при подключение oracle с помощью jdbc
Добрый вечере. Пытаюсь подключить oracle с помощью jdbc, получаю такую ошибку: Listener refused the connection with the following...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru