Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance();
DriverManager.registerDriver(driver);
Strin...
public interface ResultHandler {
void handle(ResultSet result) throws SQLException;
}
public static int execUpdate(Connection connection, String update) {
Statement stmt = connection.createStatement();
stmt.e...
public interface ResultHandler {
void handle(ResultSet result) throws SQLException;
}
private static void execQuery(Connec...
String query = “select * from users where name = ‘tully’”;
execQuery(connection, query, new ResultHandler(){
public void h...
public void execUpdate(Connection connection, String[] updates) {
try {
connection.setAutoCommit(false);
for(String update...
public void execUpdate(Connection connection, Map<Integer, String> idToName) {
try{
String update = "insert into users(id,...
public interface TResultHandler<T> {
T handle(ResultSet resultSet) throws SQLException;
}
public class TExecutor {
public ...
TExecutor execT = new TExecutor();
String query = “select user_name from users where id=1”;
String name = execT.execQuery(...
―
public class UsersDataSet {
private long id;
private String name;
public UsersDataSet(long id, String name){ this.id = id;...
public interface UsersDAO {
UsersDataSet get(long id) throws SQLException;
UsersDataSet getByName(String name) throws SQLE...
―
―
―
―
―
―
―
―
―
public UsersDAO(Connection connection){…}
―
―
38. JDBC API.
39. class Connection из JDBC API. Задачи которые решает Connection.
40. Dependency Injection. Использование ...
1. История и особенности языка Java.
2. Платформа Java. Java Editions. GC, JVM, JDK, JRE. ByteCode.
3. Правила наименовани...
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Java весна 2013 лекция 8
Upcoming SlideShare
Loading in …5
×

Java весна 2013 лекция 8

338 views
221 views

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
338
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java весна 2013 лекция 8

  1. 1. Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); DriverManager.registerDriver(driver); StringBuilder url = new StringBuilder(); url. append("jdbc:mysql://"). //db type append("localhost:"). //host name append("3306/"). //port append("lecture_db?"). //db name append("user=tully&"). //login append("password=tully"); //password // URL: “jdbc:mysql://localhost:3306/lecture_db?user=tully&password=tully” Connection connection = DriverManager.getConnection(url.toString());
  2. 2. public interface ResultHandler { void handle(ResultSet result) throws SQLException; }
  3. 3. public static int execUpdate(Connection connection, String update) { Statement stmt = connection.createStatement(); stmt.execute(update); int updated = stmt.getUpdateCount(); stmt.close(); return updated; } execUpdate(connection, "create table users (id bigint auto_increment, name varchar(256), primary key (id))"); execUpdate(connection, "insert into users (name) values ('tully')");
  4. 4. public interface ResultHandler { void handle(ResultSet result) throws SQLException; } private static void execQuery(Connection connection, String query, ResultHandler handler){ Statement stmt = connection.createStatement(); stmt.execute(query); ResultSet result = stmt.getResultSet(); handler.handle(result); result.close(); stmt.close(); }
  5. 5. String query = “select * from users where name = ‘tully’”; execQuery(connection, query, new ResultHandler(){ public void handle(ResultSet result) throws SQLException { result.next(); System.out.append("User: " + result.getString("name") + 'n'); } });
  6. 6. public void execUpdate(Connection connection, String[] updates) { try { connection.setAutoCommit(false); for(String update: updates){ Statement stmt = connection.createStatement(); stmt.execute(update); stmt.close(); } connection.commit(); } catch (SQLException e) { try { connection.rollback(); connection.setAutoCommit(true); } catch (SQLException ignore) {} } }
  7. 7. public void execUpdate(Connection connection, Map<Integer, String> idToName) { try{ String update = "insert into users(id, user_name) values(?, ?)"; PreparedStatement stmt = connection.prepareStatement(update); for(Integer id: idToName.keySet()){ stmt.setInt(1, id); stmt.setString(2, idToName.get(id)); stmt.executeUpdate(); } stmt.close(); } catch (SQLException e) { e.printStackTrace(); } }
  8. 8. public interface TResultHandler<T> { T handle(ResultSet resultSet) throws SQLException; } public class TExecutor { public <T> T execQuery(Connection connection, String query, TResultHandler<T> handler) throws SQLException { Statement stmt = connection.createStatement(); stmt.execute(query); ResultSet result = stmt.getResultSet(); T value = handler.handle(result); result.close(); stmt.close(); return value; } }
  9. 9. TExecutor execT = new TExecutor(); String query = “select user_name from users where id=1”; String name = execT.execQuery( connection, query, new TResultHandler<String>(){ public String handle(ResultSet result) throws SQLException { result.next(); return result.getString("user_name"); } }); System.out.append("User: " + name + 'n');
  10. 10.
  11. 11. public class UsersDataSet { private long id; private String name; public UsersDataSet(long id, String name){ this.id = id; this.name = name; } public UsersDataSet(String name){ this.id = -1; this.name = name; } public String getName() { return name; } public long getId() { return id; } }
  12. 12. public interface UsersDAO { UsersDataSet get(long id) throws SQLException; UsersDataSet getByName(String name) throws SQLException; void add(UsersDataSet dataSet) throws SQLException; void delete(long id) throws SQLException; }
  13. 13. ― ― ― ―
  14. 14. ― ―
  15. 15.
  16. 16. ― ― public UsersDAO(Connection connection){…} ― ―
  17. 17. 38. JDBC API. 39. class Connection из JDBC API. Задачи которые решает Connection. 40. Dependency Injection. Использование при работе с базами данных. 41. class Statement из JDBC API. Задачи которые решает Statement. 42. class ResultSet из JDBC API. Обработка ответа от базы. 43. DataSet (элемент ORM). 44. DAO (элемент ORM).
  18. 18. 1. История и особенности языка Java. 2. Платформа Java. Java Editions. GC, JVM, JDK, JRE. ByteCode. 3. Правила наименований. Запуск java приложений. 4. class Object и class Class<?>. 5. Простые типы в Java. Классы обертки простых типов. 6. Generic programming в Java. 7. Коллекции в Java. Iterator, Iterable. 8. Processes and Threads. 9. Interface Runnable. class Thread. Методы start() и run(). 10. Методы класса Thread: sleep(), interrupt(), join(). 11. Ключевые слова volatile и synchronized. 12. Atomic variables. 13. Проблемы многопоточного доступа к данным. Race condition. 14. Методы класса Object: wait(), notify() и notifyAll(). 15. Плюсы и минусы многопоточных приложений. 16. Способы взаимодействия потоков. 17. java.util.concurrent 18. MessageSystem. Address и Abonent. 19. Распределение классов по пакетам. Циклические зависимости. 20. Архитектура игрового сервера. 21. Процесс работы игрового сервера, репликация. 22. Виды тестирования. 23. GC. Виды GC. Параметры GC. 24. Работа со случайными числами. 25. Singleton и Context. 26. Events, подписка на события. 27. Exception и Throwable. 28. Передача функции в библиотеку. Callback. 29. Анонимные классы. 30. Работа со временем и датой. Unix time. Locale. 31. I/O Streams. Потоки байт и потоки символов. 32. Сериализация/десериализация. Interface Serializable. 33. Ключевое слово transient. 34. Reflection. Роль reflection в сериализации. 35. SAX парсер. 36. DOM парсер. 37. ResourceFactory. Роль ресурсов в игре. 38. JDBC API. 39. class Connection. 40. Statement. 41. ResultSet. 42. DataSet. 43. DAO. 44. Annotation. 45. Object Relational Mapping. 46. Frontend. 47. MessageSystem иерархия наследования. 48. Game Mechanics. 49. Resource System. 50. Database System.

×