Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JAVA лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
86.26 Кб
Скачать

Вопрос 12. Апплеты с многопоточностью.

Создание апплета с многопоточностью.

public class MyApplet extends Applet implements Runnable

{ Thread t; int count.String d=”0”;

public void start( );

{ t = new Thread(this); t.start( ); }

public void run( )

{ while (count<1000) {++count; d=String.valueOf(count); repaint( );

try { sleep(1000);} catch (exception e {. . .}

} }

public void paint(Graphics g) {g.drawString (this.d, 50, 50);}

}

Вопрос 14. Библиотека jdbc. Подключение к базе данных.

JDBC – стандарт взаимодействия JAVA приложений с различными СУБД, реализованный в виде пакета java.sql. Работа с БД через JDBC выполняется в 3 этапа:

  1. Установка связи между Java программой и диспетчером БД. Включает в себя:

  • подключение драйвера.

  • установление подсоединения к БД.

  1. Передача SQL команд в БД с помощью объекта statement или prepareStatement.

  2. Чтение полученных результатов из БД и использование их в программе.

Select * from tab1

Select name from * tab1

where id=5

public class Db

{

try{

class.forname(“org.gjt.mm.mysql.Driver”);

//установка полдключения к БД

сon = Drivermanager.getconnection(“jdbc:mysql://localhost:3306/VUS”)}

public class Db

{ Arraylist a = new Arraylist( );

connection con;

. . .

public Arraylist getNeme.VUS( );

{

Statement st = con.createStatement( );

Resultset rs = st.exequteQuerry(“SELECT name FROM vuss”);

While (rs.next( ))

{

String name = rs.getString(1);

a.add(name);

}

return a;

}

Объект ResultSet функционирует как курсор. Для перехода к следующей строке необходимо вызвать метод next, который возвращает логическое значение. Например, False возвратится после перебора всех строк.

Если известно, что sql команда возвращает целое число, например, в виде количества задействованых строк, то вместо executeQuerry можно использовать executeUpdate (возвращает целое число). Если sql команда выполняется много раз, то есть смысл использовать PrepareStatement, создаваемый методом PrepareStatement объекта connection. Этот метод берет sql строку и передает ее в СУБД. Строка проходит через стадии синтаксического анализа, оптимизации и генерирования плана выполнения. Работа с таким объектом выполняется гораздо быстрее.

public class Db

{

connection con;

. . .

String us = “Update vuss set id = ? where id = ?”;

pst = con.prepareStatement(us);

pst.setString(1, “10”);

pst.setString(2,”11”);

int res = pst.executeUpdate( );

pst.close( );

Вопрос 16. Работа с сетью. Классы InetAddress, Socket, ServeSocket.

Работа с сетью

Java.net – для работы с сетью

состоит из следующих классов:

InetAddress

Socket

ServerSocket

DatagramSocket

DatagramPacket

Классы InetAddress, Socket, ServerSocket

InetAddress – предназначен для определения адресов в сети интернет.

методы класса:

public static InetAddress getlocalHost( ) – возвращает адрес локального хоста компьютера.

public String getHostName( ) – выполняет поиск доменного имени машины.

public String getHostAddress( ) – выводи IP адрес хоста.

public static InetAddress getByName(String host) – определяет IP адрес по имени хоста.

Пример:

public static void main(String[ ] a)

{

try{

System.out.println(“localhost= “+InetAddress.getLocalHost( ));

System.out.println(“host= “+InetAddress.getLocalHost( ).getHostName( ));

System.out.println

Класс Socket.

класс Socket позволяет установить клиентское соединение.

методы класса:

public OutputStream getOutputStream( ) – используется для допуска к потоку вывода.

public InputStream getInputStream( ) – используется для допуска к потоку ввода.

public InetAddress getInetAddress( ) – для определения IP адреса.

public synchronized void close( ) – закрытие сокета.

У класса Socket два конструктора:

  1. Socket(String host, int port)

  2. Socket(InetAddress adress, int port)

Класс ServerSocket.

реализует серверный socket протокола TCP.

методы:

public Socket accept( ) – возвращает объект типа socket. Используется для включения серверного Socket в режим прослушивания (т.е. ожидание соединения клиентов). Рекомендуется выполнять в отдельном потоке, иначе приложение не сможет продолжить работу.

public InetAddress getInetAddress( ) – возвращает адрес хоста

есть два конструктора:

  1. ServerSocket(int port)

  2. ServerSocket(int port, int count)

Если порт занят, то второй конструктор будет ждать его освобождения максимум count миллисекунд.

Пример серверной части:

public void ServerSocket( )

{ try{

ServerSocket ss = new ServerSocket(65000)

Socket client = ss.accept( );

BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream( )));

String tt = client.getInetAddress( ).getHostName( );

String s = br.readLine( );

System.out.println(“Получено от “+ tt +”сообщение: “+s);

String answer = “OK”;

client.getOutputStream( ).write(s.getBytes( )); client.close( );

Пример клиентской части

public Client( )

{ try{

Socket sock = new Socket(“localhost”,65000);

byte[ ] b = new byte[1024];

System.out.println(“введите сообщение: “);

int l = System.in.read(b);

String ss = new String(b,0,l);

sock.getOutputStream( ).write(ss.getBytes( ));

BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream( ));

while(true)

{

String s = br.readLine( );

if (s = = null) break;

System.out.println(“Полученное сообщение: “+s);

System.out.println(“отправитель: “+sock.getInetAddress( ).getHostAddress( ));

sock.close( );

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]