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

Java и jdbc

22.04.2015, 20:55. Показов 970. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
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