Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 2
Регистрация: 11.03.2014
Сообщений: 162

Java и jdbc

22.04.2015, 20:55. Показов 960. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работающая программа, но мне сказали переделать чтобы открытие соединения - закрытие было в отдельном классе, вот проблема только что не получается никак, на init() ругается, как это все организовать нормально?

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
public class Student {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // TODO code application logic here
        
        Scanner sc = new Scanner(System.in);
        LessonDAO lesson = new LessonDAO();
        StudentDAO student = new StudentDAO();
     
                   int menuItem;
        //Главный цикл
        do {
            System.out.println("--------------Меню---------------");
            System.out.println("1. Вывод записей из таблицы студент");
            System.out.println("2. Вывод записей из таблицы предмет");
            System.out.println("3. Добавление записи в таблицу студент");
            System.out.println("4. Добавление записи в таблицу предмет");
            System.out.println("5. Редактирование записи в таблице студент");
            System.out.println("6. Редактирование записи в таблице предмет");
            System.out.println("7. Удаление записи в таблице студент");
            System.out.println("0. Выход");
            menuItem = sc.nextInt();
            switch (menuItem){
                case 1:{
                 
                    student.viewStudent();
                    break;
                }
                case 2:{
                lesson.viewLesson();
                    break;
                }
                case 3:{
      
                    student.insertIntoStudent("Bobr", 90, 6);
                    break;
                }
                case 4:{
    
                    lesson.insertIntoStudent("oaip", "pr");
                    break;
                }   
                case 5:{
  
                    student.updateBallStudent(20,100);
                break;
            }
            case 6:{
 
                lesson.updateCodeLesson("oaip", "pr1");
                break;
                }
            case 7:{
        int ID;
      
        student.deleteStudentOnId(9);
                break;
                }            
                }
            
        } while(menuItem != 0);
        } 
 
       
    }
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
public class LessonDAO {
    MyDBConnection connect = new MyDBConnection();
    static final String Select_all_leson = "select *from lesson";
    static final String Insert = "INSERT INTO lesson  (SUBJECT,CODE) Values(?,?)";
    static final String updateStr = "UPDATE lesson SET CODE=? WHERE CODE =?";
    Scanner sc = new Scanner(System.in);
  //  MyDBConnection mdbc = new MyDBConnection();
    // Connection conn = mdbc.getMyConnection(); 
    Statement stmt = null;
    ResultSet rs = null;
    PreparedStatement preparedStatement = null;
    private Connection connection = null;
 
    public LessonDAO() {
        try {
           Driver driver = new FabricMySQLDriver();
            DriverManager.registerDriver(driver);
           connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "root");      
            stmt = connection.createStatement();
            if (!connection.isClosed()) {
                System.out.println("Соединение с БД установлено!");
            }
        } catch (SQLException e) {
            System.out.println("Не удалось загрузить драйвер!");
        }
    }
 
    public void viewLesson() throws SQLException {
 
        try {
            //              mdbc.init();                   
            rs = stmt.executeQuery(Select_all_leson);
            while (rs.next()) {
                Lesson lesson = new Lesson();
                lesson.setId(rs.getInt("Id"));
                lesson.setSubject(rs.getString("Subject"));
                lesson.setCode(rs.getString("Code"));
                System.out.println(lesson);
            }
        } catch (Exception e) {
            System.err.println("Ошибка!!!");
            e.printStackTrace();
        }
 
    }
 
    public void insertIntoStudent(String Subject, String code) throws SQLException {
        preparedStatement = getConnection().prepareStatement(Insert);
        preparedStatement.setString(1, Subject);
        preparedStatement.setString(2, code);
        preparedStatement.execute();
    }
 
    public void updateCodeLesson(String code1, String code2) throws SQLException {
        preparedStatement = getConnection().prepareStatement(updateStr);
        preparedStatement.setString(1, code2);
        preparedStatement.setString(2, code1);
        preparedStatement.executeUpdate();
    }
 
    private Connection getConnection() {
        return connection;
    }
}
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
public class StudentDAO {
    static final  String Select_all_leson="select *from student";
    static final String Insert="INSERT INTO student  (FIO,BALL,Lesson_id) Values(?,?,?)";
    static final String deleteStr = "DELETE FROM student WHERE ID=?";
    static final String updateStr = "UPDATE student SET BALL=? WHERE BALL =?";
    Scanner sc = new Scanner(System.in);
  //  MyDBConnection mdbc = new MyDBConnection();
   // Connection conn = mdbc.getMyConnection(); 
     Statement stmt = null;     
     ResultSet rs = null;
     private Connection connection=null;
    PreparedStatement preparedStatement=null;
         public StudentDAO(){
        try {
            Driver driver = new FabricMySQLDriver();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "root");
            stmt = getConnection().createStatement();
            if (!connection.isClosed()) {
                System.out.println("Соединение с БД установлено!");
            }
        }catch (SQLException e) {
                System.out.println("Не удалось загрузить драйвер!");
            }
    }
         public Connection getConnection() {
        return connection;
    }
        public void viewStudent() throws SQLException {
                   
       try{ 
     //              mdbc.init();                   
                       rs = stmt.executeQuery(Select_all_leson);
                while (rs.next()) {
                Student student = new Student();
                student.setId(rs.getInt("Id"));
                student.setFio(rs.getString("fio"));
                student.setBall(rs.getInt("ball"));
                student.setLesson_id(rs.getInt("lesson_id"));
                System.out.println(student);
            }
       }catch(Exception e)
       {
           System.err.println("Ошибка!!!");
           e.printStackTrace();
       }
       
    }
        
        public void deleteStudentOnId(int id) throws SQLException {
        preparedStatement=getConnection().prepareStatement(deleteStr);
        preparedStatement.setInt(1,id);
        preparedStatement.executeUpdate();
    }
      
       public void insertIntoStudent(String FIO ,int ball,int lesson_id) throws SQLException {
        preparedStatement=getConnection().prepareStatement(Insert);
        preparedStatement.setString(1,FIO);
        preparedStatement.setInt(2, ball);
        preparedStatement.setInt(3, lesson_id);
        preparedStatement.execute();
    } 
       
       public void updateBallStudent(int ball1,int ball2) throws SQLException {
        preparedStatement=getConnection().prepareStatement(updateStr);
        preparedStatement.setInt(1, ball2);
        preparedStatement.setInt(2, ball1);
        preparedStatement.executeUpdate();
    }
   
}
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
public class Lesson {
        private int id;
    private String subject;
    private String code;
 
    public Lesson() {
        
    }
 
    public int getId() {
        return id;
    }
 
    public String getSubject() {
        return subject;
    }
 
    public String getCode() {
        return code;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public void setSubject(String subject) {
        this.subject = subject;
    }
 
    public void setCode(String code) {
        this.code = code;
    }
 
    public Lesson(int id, String subject, String code) {
        this.id = id;
        this.subject = subject;
        this.code = code;
    }
 
    @Override
    public String toString() {
        return "Lesson{" + "id=" + id + ", subject=" + subject + ", code=" + code + '}';
    }
    
}
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
public class Student {
 
    private int id;
    private String fio;
    private int ball;
    private int lesson_id;
 
    public Student(int id, String fio, int ball, int lesson_id) {
        this.id = id;
        this.fio = fio;
        this.ball = ball;
        this.lesson_id = lesson_id;
    }
 
    public Student() {
 
    }
 
    public int getId() {
        return id;
    }
 
    public String getFio() {
        return fio;
    }
 
    public int getBall() {
        return ball;
    }
 
    public int getLesson_id() {
        return lesson_id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public void setFio(String fio) {
        this.fio = fio;
    }
 
    public void setBall(int ball) {
        this.ball = ball;
    }
 
    public void setLesson_id(int lesson_id) {
        this.lesson_id = lesson_id;
    }
 
    @Override
    public String toString() {
        return "Student{" + "id=" + id + ", fio=" + fio + ", ball=" + ball + ", lesson_id=" + lesson_id + '}';
    }
 
}
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
public class MyDBConnection {
 
    private Connection myConnection;
 
    public MyDBConnection() {
    }
 
    public void init() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            myConnection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "root");
        } catch (ClassNotFoundException | SQLException e) {
            System.out.println(e);
        }
    }
 
    public Connection getMyConnection() {
        return myConnection;
    }
 
    public void close(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (Exception e) {
            }
        }
    }
 
    public void close(java.sql.Statement stmt) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (Exception e) {
            }
        }
    }
 
    public void destroy() {
        if (myConnection != null) {
            try {
                myConnection.close();
            } catch (Exception e) {
            }
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2015, 20:55
Ответы с готовыми решениями:

Ошибка в jdbc+oracle: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Вот такой трабл: на Class.forName('oracle.jdbc.driver.OracleDriver'); отвечает java.lang.ClassNotFoundException:...

Java web JDBC
Пытаюсь с помощью сервлет подключиться к базе данных. Есть java-класс public static Connection con=null; public static void qwe()...

JDBC и Dao Java
всем привет. пытаюсь понять dao и sql. такой вопрос. у меня есть в проекте: 1) файл класс Departament - в нем просто описаны поля...

5
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.04.2015, 21:29
я особо не вникал в код и не ясно что именно ругается, но мне кажется строка подключения
Java
1
myConnection = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "root");
должна выглядеть как-то так
Java
1
myConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/имя_базы", "root", "root");
возможно номер порта будет не 3306, там надо будет в админке mysql посмотреть на какой порт он встал
0
3 / 3 / 2
Регистрация: 11.03.2014
Сообщений: 162
22.04.2015, 22:02  [ТС]
Паблито, идентично же, у меня база так и называется mysql, то что сейчас у меня все работает, только надо соединение - разъединение сделать в отдельном классе, класс у меня есть.

MyDBConnection mdbc = new MyDBConnection();

в конструкторе mdbc.init();
в конструкторе и во всех методах.
mdbc.getconnection();
Выдает ошибку
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.04.2015, 22:17
что хоть за ошибка?
0
3 / 3 / 2
Регистрация: 11.03.2014
Сообщений: 162
22.04.2015, 22:25  [ТС]
Паблито,
Exception in thread "main" java.lang.NullPointerException
at dao.LessonDAO.<init>(LessonDAO.java:44)
at student.Student.main(Student.java:37)
Java Result: 1

Добавлено через 24 секунды
Когда вместо всего в конструктор пишу connect.init()

Добавлено через 1 минуту
Есть может какой-нибудь пример, с дао, и через отдельный класс с подключение-отключение БД mysql?
0
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
23.04.2015, 00:11
это может быть связано с фабрикой пропишите порт и имя базы и попробуйте.
у вас возможно драйвер не нашло. Поэтому Null выкинуло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2015, 00:11
Помогаю со студенческими работами здесь

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

Java+JDBC+ORACLE не возвращает запрос
Подключение к Oracle проходит нормально через этот код public Connection getConnection(){ Connection connection = null; ...

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

Как правильно применять Java Servlets и JDBC?
У меня есть программа которая терзает базу данных берёт оттуда данные и помещает их в html отчёт (моя программа т.е можно всё там менять) и...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru