Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
Expand All @@ -47,6 +46,5 @@
<artifactId>hibernate-core</artifactId>
<version>4.3.10.Final</version>
</dependency>
</dependencies>

</dependencies>
</project>
28 changes: 27 additions & 1 deletion src/main/java/jm/task/core/jdbc/Main.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,33 @@
package jm.task.core.jdbc;
import jm.task.core.jdbc.model.User;
import jm.task.core.jdbc.service.UserService;
import jm.task.core.jdbc.service.UserServiceImpl;

import java.util.ArrayList;
import java.util.List;

public class Main {
public static void main(String[] args) {
// реализуйте алгоритм здесь
UserService userService = new UserServiceImpl();
userService.createUsersTable();

User user = new User("a", "aa", (byte) 00);
User user0 = new User("b", "bb", (byte) 11);
User user1 = new User("c", "cc", (byte) 22);
User user2 = new User("d", "dd", (byte) 33);
userService.saveUser(user.getName(), user.getLastName(), user.getAge());
userService.saveUser(user0.getName(), user0.getLastName(), user0.getAge());
userService.saveUser(user1.getName(), user1.getLastName(), user1.getAge());
userService.saveUser(user2.getName(), user2.getLastName(), user2.getAge());

List<User> list = userService.getAllUsers();
for (User a : list) {
System.out.print(a.toString());
}

userService.removeUserById(3);

userService.cleanUsersTable();
userService.dropUsersTable();
}
}
93 changes: 83 additions & 10 deletions src/main/java/jm/task/core/jdbc/dao/UserDaoHibernateImpl.java
Original file line number Diff line number Diff line change
@@ -1,42 +1,115 @@
package jm.task.core.jdbc.dao;

import jm.task.core.jdbc.model.User;

import jm.task.core.jdbc.util.Util;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import javax.persistence.criteria.CriteriaBuilder;
import java.util.ArrayList;
import java.util.List;

public class UserDaoHibernateImpl implements UserDao {
public UserDaoHibernateImpl() {

}


SessionFactory sessionFactory = Util.getSession();
@Override
public void createUsersTable() {

Session session = null;
try {
session = sessionFactory.openSession();
session.createSQLQuery("CREATE TABLE users.users" +
"(id int not null auto_increment," +
"name VARCHAR(50), " +
"lastname VARCHAR(50), " +
"age INT, " +
"PRIMARY KEY (id))").executeUpdate();
session.beginTransaction().commit();
System.out.println("Таблица создана");
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}

@Override
public void dropUsersTable() {

Session session = null;
try {
session = sessionFactory.openSession();
session.createSQLQuery("DROP TABLE users.users").executeUpdate();
session.beginTransaction().commit();
System.out.println("Таблица удалена");
} catch (Exception e) {
e.getStackTrace();
} finally {
session.close();
}
}

@Override
public void saveUser(String name, String lastName, byte age) {

Session session = null;
try {
session = sessionFactory.openSession();
session.save(new User(name, lastName, age));
session.beginTransaction().commit();
System.out.print(String.format("Пользователь-%s добавлен!%n", name));
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}

@Override
public void removeUserById(long id) {

Session session = null;
User user = null;
try {
session = sessionFactory.openSession();
user = (User) session.get(User.class, id);
session.delete(user);
session.beginTransaction().commit();
System.out.print(String.format("Пользователь под номером %d - удален!%n", id));
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}

@Override
public List<User> getAllUsers() {
return null;
Session session = null;
List<User> list = new ArrayList<>();
try {
session = sessionFactory.openSession();
Query qu = session.createSQLQuery("select id, name, lastName, age from users.users").addEntity(User.class);
list = qu.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
return list;
}

@Override
public void cleanUsersTable() {

Session session = null;
try {
session = sessionFactory.openSession();
session.createSQLQuery("DELETE FROM users.users").executeUpdate();
session.beginTransaction().commit();
System.out.println("Все пользователи удалены!");
} catch (Exception a) {
a.printStackTrace();
} finally {
session.close();
}
}
}
70 changes: 62 additions & 8 deletions src/main/java/jm/task/core/jdbc/dao/UserDaoJDBCImpl.java
Original file line number Diff line number Diff line change
@@ -1,35 +1,89 @@
package jm.task.core.jdbc.dao;

import jm.task.core.jdbc.model.User;
import jm.task.core.jdbc.util.Util;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class UserDaoJDBCImpl implements UserDao {
public UserDaoJDBCImpl() {

}
Connection conn = Util.getConnection();

public void createUsersTable() {

try (Statement statement = conn.createStatement()) {
statement.executeUpdate("CREATE TABLE users.users" +
"(id int not null auto_increment," +
"name VARCHAR(50), " +
"lastname VARCHAR(50), " +
"age INT, " +
"PRIMARY KEY (id))");
System.out.println("Таблица создана");
} catch (SQLException e) {
e.printStackTrace();
}
}

public void dropUsersTable() {

}
try (Statement statement = conn.createStatement()) {
statement.executeUpdate("DROP TABLE users.users");
System.out.println("Таблица удалена");
} catch (SQLException e) {
e.printStackTrace();
}
}

public void saveUser(String name, String lastName, byte age) {

try (PreparedStatement prepareStatement = conn.prepareStatement("insert into users.users " +
"(name, lastname, age) values(?, ?, ?)")) {
prepareStatement.setString(1, name);
prepareStatement.setString(2, lastName);
prepareStatement.setInt(3, age);
prepareStatement.executeUpdate();
System.out.printf("Пользователь-%s, добавлен!%n", name);
} catch (SQLException e) {
e.printStackTrace();
}
}

public void removeUserById(long id) {

try (PreparedStatement preparedStatement = conn.prepareStatement("DELETE FROM" +
" users.users where id = ?")) {
preparedStatement.setInt(1, (int) id);
preparedStatement.executeUpdate();
System.out.println("Пользователь удалён!");
} catch (SQLException e) {
e.printStackTrace();
}
}

public List<User> getAllUsers() {
return null;
List<User> alluser = new ArrayList<>();
try (Statement statement = conn.createStatement()) {
ResultSet resultSet = statement.executeQuery("SELECT id, name, lastName, age from users.users");
while (resultSet.next()) {
User user = new User();
user.setId(resultSet.getLong("id"));
user.setName(resultSet.getString("name"));
user.setLastName(resultSet.getString("lastName"));
user.setAge(resultSet.getByte("age"));
alluser.add(user);
}
System.out.println("Пользователи получены");
} catch (SQLException e) {
e.printStackTrace();
}
return alluser;
}

public void cleanUsersTable() {

try (Statement statement = conn.createStatement()) {
statement.executeUpdate("DELETE FROM users.users");
System.out.println("Все пользователи удалены");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
13 changes: 9 additions & 4 deletions src/main/java/jm/task/core/jdbc/model/User.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package jm.task.core.jdbc.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;

@Table
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column
Expand All @@ -19,7 +19,11 @@ public class User {
private Byte age;

public User() {
}

@Override
public String toString() {
return String.format("имя-%s, фамилия-%s, возраст-%d%n", name, lastName, age);
}

public User(String name, String lastName, Byte age) {
Expand Down Expand Up @@ -59,4 +63,5 @@ public Byte getAge() {
public void setAge(Byte age) {
this.age = age;
}

}
16 changes: 10 additions & 6 deletions src/main/java/jm/task/core/jdbc/service/UserServiceImpl.java
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
package jm.task.core.jdbc.service;

import jm.task.core.jdbc.dao.UserDao;
import jm.task.core.jdbc.dao.UserDaoHibernateImpl;
import jm.task.core.jdbc.dao.UserDaoJDBCImpl;
import jm.task.core.jdbc.model.User;

import java.util.List;

public class UserServiceImpl implements UserService {
UserDao userDao = new UserDaoHibernateImpl();
public void createUsersTable() {

userDao.createUsersTable();
}

public void dropUsersTable() {

userDao.dropUsersTable();
}

public void saveUser(String name, String lastName, byte age) {

userDao.saveUser(name, lastName, age);
}

public void removeUserById(long id) {

userDao.removeUserById(id);
}

public List<User> getAllUsers() {
return null;
return userDao.getAllUsers();
}

public void cleanUsersTable() {

userDao.cleanUsersTable();
}
}
Loading