Lecture 13 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Java Course 12: XML & XSL, Web & ServletsAnton Keks
This document provides an overview of XML, XSL, and Java technologies for working with XML. It discusses XML syntax and structure, validation, namespaces, DTDs and XML Schema for validation. It also covers XPath for querying XML, XSLT for transforming XML, and Java APIs including JAXP, JDOM, DOM4J, and JAXB for processing XML using Java.
Lecture 15 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Gives an overview of more advanced Java topics.
Lecture 1 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Java Course 7: Text processing, Charsets & EncodingsAnton Keks
Lecture 7 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Do you know the difference between charset & encoding? Every programmer nowadays MUST understand these terms, how they work, and how to use them. Otherwise we constantly face broken software refusing to work with international characters properly.
Lecture 14 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Lecture 2 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Lecture 6 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Gives an overview how a software developer should organize their daily work, apart from technical skills.
Introduces Agile software development practices from XP and Scrum.
Lecture 3 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Discusses more Java basics and Object Oriented Programming.
The document provides an overview of Java collections and exceptions. It discusses core collection interfaces like Collection, Set, List, Queue, and Map. It also covers exception handling in Java and common exception classes. The document contains examples and tips for using collections and exceptions in code. Key collection implementations like ArrayList, HashSet, and HashMap are described.
Lecture 11 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Describes goods and bads of software architecture as well as common design patterns.
The document discusses JPA/Hibernate, object-relational mapping, and web services. It defines Hibernate as an open source ORM for Java that makes data persistent by storing it in a database. It notes that Hibernate automatically generates SQL queries and reduces development time compared to manually handling data with JDBC. The architecture of Hibernate and web services is described, including how Hibernate sits between code and the database to map objects to tables. Common web service types like SOAP and REST are also summarized.
Core Java introduction | Basics | free course Kernel Training
http://kerneltraining.com/core-java/
Learn the basics of Java and gain practical experience that is required to begin your career in java programming. Kernel Training has designed classroom and online course to upgrade your knowledge and skills in core Java.
Course Curriculum:
Introduction to Java
JDK and practical applications
Java Basic Data Types and Operators
Programming Constructs, Classes and Methods, constructor and Finalizer
Polymorphism
Inheritance
Method overriding and abstract classes
Packages and Interfaces
Strings and Arrays
Enums
Java Class 6 | Java Class 6 |Threads in Java| Applets | Swing GUI | JDBC | Ac...Sagar Verma
16. Threads in Java
Non-Threaded Applications
Threaded Applications
Process based multitasking Vs Thread based multitasking
Thread API in Java
Creating Threads
States of a Thread
Synchronization for threads; static and non-static synchronized methods; blocks; concept of object and class locks
Coordination between threads - wait, notify and notifyAll methods for inter-thread communication
17. Applets
What are applets?
Need for Applets
Different ways of running an applet program
Applet API hierarchy
Life Cycle of an applet
Even Handlers for applets, mouse events, click events
18. Swing GUI
Introduction to AWT
Introduction to Swing GUI
Advantages of Swing over AWT
Swing API
Swing GUI Components
Event Handlers for Swing
Sample Calculator application using Swing GUI and Swing Event handling
19. JDBC
What is JDBC; introduction
JDBC features
JDBC Drivers
Setting up a database and creating a schema
Writing JDBC code to connect to DB
CRUD Operations with JDBC
Statement types in JDBC
Types of Rowset, ResultSet in JDBC
20. Access Modifiers in Java
What are access modifiers?
Default
Protected
Private
Public
The document provides an overview of core Java basics. It discusses that Java was originally developed by Sun Microsystems and the latest release is Java SE 8. It also explains that Java is object-oriented, platform independent, simple, architecture neutral, portable, robust, multithreaded, interpreted and distributed. The document then discusses Java environment setup, basic syntax including classes, objects and methods. It also covers primitive data types, constructors, OOP concepts like abstraction, encapsulation, inheritance and polymorphism.
This document discusses the evolution of Java, including new features introduced in Java 5, 6, and 7. It provides a review of 10 key features in Java 5 such as generics, autoboxing/unboxing, annotations, and new utility classes. It then describes 9 new features in Java 6, including pluggable annotation processing, common annotations, JAXB, JAX-WS, StAX, digital signatures, and the compiler API. Finally, it briefly mentions new features planned for Java 7.
This document provides an overview of core Java basics. It discusses:
- The origins and evolution of Java from its initial release in 1995 to current versions.
- Key characteristics of Java including being object-oriented, platform independent, simple, robust, and distributed.
- The Java environment setup and basic syntax including classes, objects, and methods.
- A simple "Hello World" example Java program.
- Primitive data types in Java like int, float, boolean and how they differ.
- Object-oriented programming concepts in Java such as abstraction, encapsulation, inheritance and polymorphism.
This document provides an overview of key concepts in the Java programming language including classes, objects, inheritance, interfaces, packages, exceptions, threads, and more. It discusses how to build standalone Java programs and applets, and covers basic syntax and structures like primitive data types, expressions, control statements, and comments. Methods, constructors, and access modifiers are also explained at a high level.
This document provides a quick reference guide for J2SE (Core Java). It covers various topics related to Java programming including Java history, features, programming structure, data types, control structures, OOP concepts, exceptions, threads, GUI programming and more. The guide was written by A.R. Kishore Kumar and is intended to be a concise yet comprehensive overview of the Java language.
The document provides an overview of the Java programming language. It discusses that Java was developed in the early 1990s by Sun Microsystems. It then summarizes some of Java's main features, including that it is a simple, object-oriented, robust, distributed, platform independent, secured, architecture-neutral, portable, high-performance, multi-threaded, and dynamic language. It also briefly discusses the Java Virtual Machine, Java Runtime Environment, Java Development Kit, Java bytecode, and the main method.
Core Java Tutorial. In case you want to get trained in Spring Framework you can refer here:
<a href="https://www.emexotechnologies.com/courses/java-development-training/core-java-training/">Java Training</a>
In this presentation we introduce topic of core java that is required to learn if you want to be good java programmer. i provide all concept in detail.
Java 9 includes several new features such as JShell (Java Shell), JPMS (Java Platform Module System), and reactive streams. JShell allows interacting with Java from the command line without compiling. JPMS modularizes the JDK and allows for better encapsulation. Reactive streams use a publish-subscribe model and support asynchronous and non-blocking code. Other features include HTTP/2 client support, process API updates, and improvements to the stream API, diamond operator, and try-with-resources. Java 9 aims to improve performance, security, and scalability through these new capabilities.
Java is an object-oriented programming language that was initially developed by James Gosling at Sun Microsystems in 1991. It is free to use, runs on all platforms, and is widely used for both desktop and mobile applications as well as large systems. Java code is compiled to bytecode that runs on a Java Virtual Machine, making Java programs platform independent. Key features of Java include being object-oriented, robust, secure, portable, high performance, and having a simple syntax. Java is commonly used to develop web applications, mobile apps, games, and for big data processing.
Learn JAVA tutorial -This Java tutorial is specially prepared for the Beginners who wants to learn Java programming language from the basics. This tutorial is prepared by Easy Web Solutions by PSK Technologies located in Nagpur that provides best training in Java,PHP,Web Development Hardware and Networking and also provide Internship on all mentioned courses
Java was created to address issues with C/C++ by being portable, platform-independent, and secure. It was developed by James Gosling at Sun Microsystems in 1995. Key features of Java include being object-oriented, portable, robust, secure, and having automatic memory management. Java is different from C/C++ in that it does not support pointers, structures, unions, or multiple inheritance.
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
This document provides a history and overview of the Java programming language. It discusses:
1. James Gosling developed Java in 1991 at Sun Microsystems. The first public release was in 1995. Java is an object-oriented language similar to C and C++ but without pointers.
2. Java is widely used for desktop applications, web applications, mobile apps, embedded systems, smart cards, robotics, and games. It is popular due to being platform-independent, distributed, secure, robust, high-performance, and multithreaded.
3. The document provides examples of Java code, including "Hello World" and code demonstrating if/else statements, for loops, methods, and classes.
The document discusses JDBC (Java Database Connectivity). It describes the key components of JDBC including the architecture with application and driver layers, the different types of drivers, and how to use the JDBC API to connect to a database and execute SQL statements. The steps to create a JDBC application are also outlined, such as loading a driver, connecting to the database, creating statements, and handling exceptions.
The document provides an introduction to using JDBC (Java Database Connectivity) to connect to and query databases. It outlines the key components of JDBC including drivers, the basic 7 steps to using JDBC (load driver, define connection URL, establish connection, create statement, execute query, process results, close connection), and examples of connecting to Oracle and Microsoft SQL Server databases and retrieving and displaying data from the result set.
The document provides an overview of Java collections and exceptions. It discusses core collection interfaces like Collection, Set, List, Queue, and Map. It also covers exception handling in Java and common exception classes. The document contains examples and tips for using collections and exceptions in code. Key collection implementations like ArrayList, HashSet, and HashMap are described.
Lecture 11 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Describes goods and bads of software architecture as well as common design patterns.
The document discusses JPA/Hibernate, object-relational mapping, and web services. It defines Hibernate as an open source ORM for Java that makes data persistent by storing it in a database. It notes that Hibernate automatically generates SQL queries and reduces development time compared to manually handling data with JDBC. The architecture of Hibernate and web services is described, including how Hibernate sits between code and the database to map objects to tables. Common web service types like SOAP and REST are also summarized.
Core Java introduction | Basics | free course Kernel Training
http://kerneltraining.com/core-java/
Learn the basics of Java and gain practical experience that is required to begin your career in java programming. Kernel Training has designed classroom and online course to upgrade your knowledge and skills in core Java.
Course Curriculum:
Introduction to Java
JDK and practical applications
Java Basic Data Types and Operators
Programming Constructs, Classes and Methods, constructor and Finalizer
Polymorphism
Inheritance
Method overriding and abstract classes
Packages and Interfaces
Strings and Arrays
Enums
Java Class 6 | Java Class 6 |Threads in Java| Applets | Swing GUI | JDBC | Ac...Sagar Verma
16. Threads in Java
Non-Threaded Applications
Threaded Applications
Process based multitasking Vs Thread based multitasking
Thread API in Java
Creating Threads
States of a Thread
Synchronization for threads; static and non-static synchronized methods; blocks; concept of object and class locks
Coordination between threads - wait, notify and notifyAll methods for inter-thread communication
17. Applets
What are applets?
Need for Applets
Different ways of running an applet program
Applet API hierarchy
Life Cycle of an applet
Even Handlers for applets, mouse events, click events
18. Swing GUI
Introduction to AWT
Introduction to Swing GUI
Advantages of Swing over AWT
Swing API
Swing GUI Components
Event Handlers for Swing
Sample Calculator application using Swing GUI and Swing Event handling
19. JDBC
What is JDBC; introduction
JDBC features
JDBC Drivers
Setting up a database and creating a schema
Writing JDBC code to connect to DB
CRUD Operations with JDBC
Statement types in JDBC
Types of Rowset, ResultSet in JDBC
20. Access Modifiers in Java
What are access modifiers?
Default
Protected
Private
Public
The document provides an overview of core Java basics. It discusses that Java was originally developed by Sun Microsystems and the latest release is Java SE 8. It also explains that Java is object-oriented, platform independent, simple, architecture neutral, portable, robust, multithreaded, interpreted and distributed. The document then discusses Java environment setup, basic syntax including classes, objects and methods. It also covers primitive data types, constructors, OOP concepts like abstraction, encapsulation, inheritance and polymorphism.
This document discusses the evolution of Java, including new features introduced in Java 5, 6, and 7. It provides a review of 10 key features in Java 5 such as generics, autoboxing/unboxing, annotations, and new utility classes. It then describes 9 new features in Java 6, including pluggable annotation processing, common annotations, JAXB, JAX-WS, StAX, digital signatures, and the compiler API. Finally, it briefly mentions new features planned for Java 7.
This document provides an overview of core Java basics. It discusses:
- The origins and evolution of Java from its initial release in 1995 to current versions.
- Key characteristics of Java including being object-oriented, platform independent, simple, robust, and distributed.
- The Java environment setup and basic syntax including classes, objects, and methods.
- A simple "Hello World" example Java program.
- Primitive data types in Java like int, float, boolean and how they differ.
- Object-oriented programming concepts in Java such as abstraction, encapsulation, inheritance and polymorphism.
This document provides an overview of key concepts in the Java programming language including classes, objects, inheritance, interfaces, packages, exceptions, threads, and more. It discusses how to build standalone Java programs and applets, and covers basic syntax and structures like primitive data types, expressions, control statements, and comments. Methods, constructors, and access modifiers are also explained at a high level.
This document provides a quick reference guide for J2SE (Core Java). It covers various topics related to Java programming including Java history, features, programming structure, data types, control structures, OOP concepts, exceptions, threads, GUI programming and more. The guide was written by A.R. Kishore Kumar and is intended to be a concise yet comprehensive overview of the Java language.
The document provides an overview of the Java programming language. It discusses that Java was developed in the early 1990s by Sun Microsystems. It then summarizes some of Java's main features, including that it is a simple, object-oriented, robust, distributed, platform independent, secured, architecture-neutral, portable, high-performance, multi-threaded, and dynamic language. It also briefly discusses the Java Virtual Machine, Java Runtime Environment, Java Development Kit, Java bytecode, and the main method.
Core Java Tutorial. In case you want to get trained in Spring Framework you can refer here:
<a href="https://www.emexotechnologies.com/courses/java-development-training/core-java-training/">Java Training</a>
In this presentation we introduce topic of core java that is required to learn if you want to be good java programmer. i provide all concept in detail.
Java 9 includes several new features such as JShell (Java Shell), JPMS (Java Platform Module System), and reactive streams. JShell allows interacting with Java from the command line without compiling. JPMS modularizes the JDK and allows for better encapsulation. Reactive streams use a publish-subscribe model and support asynchronous and non-blocking code. Other features include HTTP/2 client support, process API updates, and improvements to the stream API, diamond operator, and try-with-resources. Java 9 aims to improve performance, security, and scalability through these new capabilities.
Java is an object-oriented programming language that was initially developed by James Gosling at Sun Microsystems in 1991. It is free to use, runs on all platforms, and is widely used for both desktop and mobile applications as well as large systems. Java code is compiled to bytecode that runs on a Java Virtual Machine, making Java programs platform independent. Key features of Java include being object-oriented, robust, secure, portable, high performance, and having a simple syntax. Java is commonly used to develop web applications, mobile apps, games, and for big data processing.
Learn JAVA tutorial -This Java tutorial is specially prepared for the Beginners who wants to learn Java programming language from the basics. This tutorial is prepared by Easy Web Solutions by PSK Technologies located in Nagpur that provides best training in Java,PHP,Web Development Hardware and Networking and also provide Internship on all mentioned courses
Java was created to address issues with C/C++ by being portable, platform-independent, and secure. It was developed by James Gosling at Sun Microsystems in 1995. Key features of Java include being object-oriented, portable, robust, secure, and having automatic memory management. Java is different from C/C++ in that it does not support pointers, structures, unions, or multiple inheritance.
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
This document provides a history and overview of the Java programming language. It discusses:
1. James Gosling developed Java in 1991 at Sun Microsystems. The first public release was in 1995. Java is an object-oriented language similar to C and C++ but without pointers.
2. Java is widely used for desktop applications, web applications, mobile apps, embedded systems, smart cards, robotics, and games. It is popular due to being platform-independent, distributed, secure, robust, high-performance, and multithreaded.
3. The document provides examples of Java code, including "Hello World" and code demonstrating if/else statements, for loops, methods, and classes.
The document discusses JDBC (Java Database Connectivity). It describes the key components of JDBC including the architecture with application and driver layers, the different types of drivers, and how to use the JDBC API to connect to a database and execute SQL statements. The steps to create a JDBC application are also outlined, such as loading a driver, connecting to the database, creating statements, and handling exceptions.
The document provides an introduction to using JDBC (Java Database Connectivity) to connect to and query databases. It outlines the key components of JDBC including drivers, the basic 7 steps to using JDBC (load driver, define connection URL, establish connection, create statement, execute query, process results, close connection), and examples of connecting to Oracle and Microsoft SQL Server databases and retrieving and displaying data from the result set.
The document introduces JDBC and its key concepts. It discusses the JDBC architecture with two layers - the application layer and driver layer. It describes the four types of JDBC drivers and how they work. The document outlines the classes and interfaces that make up the JDBC API and the basic steps to create a JDBC application, including loading a driver, connecting to a database, executing statements, and handling exceptions. It provides examples of using JDBC to perform common database operations like querying, inserting, updating, and deleting data.
This document provides an overview of JDBC (Java Database Connectivity):
- JDBC provides a Java API for updating and querying relational databases using SQL. It allows Java applications to connect to and execute SQL statements on a database.
- Every JDBC program follows a 4 step approach: 1) open a connection to the database, 2) execute a SQL statement, 3) process the result, and 4) close the connection.
- Key JDBC concepts include Statements, ResultSets, PreparedStatements, and the different types of drivers that can be used to connect to databases from Java applications.
This document provides an overview of using JDBC (Java Database Connectivity) to connect to and query databases. It discusses the basic 7 steps to using JDBC including loading drivers, establishing a connection, creating statements, executing queries, processing result sets, and closing connections. It also covers more advanced topics like using prepared statements, callable statements, metadata, transactions, and defining data sources using JNDI. Examples are provided using the Microsoft Access Northwind sample database accessed via JDBC-ODBC bridge.
This document discusses Java Database Connectivity (JDBC) which provides Java applications with an API for accessing databases. It describes the four types of JDBC drivers: Type 1 uses JDBC-ODBC bridge, Type 2 uses native database APIs, Type 3 communicates through a middle-tier server, and Type 4 communicates directly via sockets. The document also outlines the basic steps to use JDBC for database connectivity including loading a driver, establishing a connection, creating statements, executing SQL, and processing result sets.
JDBC is a Java API that provides interfaces for connecting to and working with databases. It allows Java applications to execute SQL statements and process the results by providing a standard interface for database access that is independent of database vendors. The key classes and interfaces in JDBC include Connection, Statement, PreparedStatement, CallableStatement, and ResultSet. JDBC drivers convert JDBC calls into database-specific protocols to communicate with the database.
The document discusses Java Database Connectivity (JDBC) and how it allows Java code to execute SQL statements inside relational databases. It covers the JDBC API and how it provides a standard interface to different databases. It also discusses the JDBC-ODBC bridge which allows Java code to access databases via ODBC. The document provides an example of JDBC code to connect to a database, execute a query, and access the result set. It discusses using connection pooling and JNDI lookups in J2EE applications to connect to databases.
Java Web Programming [3/9] : Servlet AdvancedIMC Institute
This document provides an overview of servlet advanced topics including including, forwarding to, and redirecting to other web resources. It discusses servlet and JDBC integration including using prepared statements and callable statements. It also covers session tracking APIs and how they can be used to maintain state across HTTP requests through different mechanisms like cookies or URL rewriting. Finally, it briefly introduces servlet scopes, listeners, and filters.
This document provides an overview and summary of the book "Java Database Programming with JDBC" by Pratik Patel. The summary includes:
1) An introduction to JDBC (Java Database Connectivity), which is an API that allows Java programs to connect to and interact with databases.
2) An overview of the structure of JDBC, which separates low-level driver programming from a high-level application interface. Vendors supply JDBC drivers to connect to different databases.
3) A list of database vendors that have endorsed the JDBC specification.
The document discusses JDBC and provides information on its objectives, architecture, drivers, API, and how to create JDBC applications. The key points covered are that JDBC has two layers - the application layer and driver layer; there are four types of JDBC drivers; and the main steps to create a JDBC application are to load a driver, connect to a database, create and execute statements, and handle exceptions.
The document describes Java Database Connectivity (JDBC), which provides Java applications with access to most database systems via SQL. It outlines the JDBC architecture and classes in the java.sql package. JDBC drivers allow applications to connect to databases without using proprietary APIs. There are four types of JDBC drivers. The document also provides an example of how to load a driver, connect to a database, execute a query, and retrieve and display results.
This document provides an overview of Java Database Connectivity (JDBC). It discusses how JDBC allows Java programs to connect to and interact with databases. It describes the key components of JDBC, including the JDBC API, driver manager, drivers, and JDBC-ODBC bridge. It also covers basic SQL queries and how to install and set up JDBC.
JDBC provides an API for accessing databases from Java that simplifies development, supports metadata access, and allows connection pooling. It includes interfaces for application writers and driver writers, with popular drivers available for databases like Oracle, MySQL, and SQL Server. JDBC drivers can be Type 1 (JDBC-ODBC bridge), Type 2 (partial JDBC), Type 3 (pure Java for middleware), or Type 4 (direct connection).
JDBC is the Java API for connecting to and interacting with relational databases. It includes interfaces and classes that allow Java programs to establish a connection with a database, execute SQL statements, process results, and retrieve metadata. The key interfaces are Driver, Connection, Statement, and ResultSet. A JDBC program loads a JDBC driver, obtains a Connection, uses it to create Statements for querying or updating the database, processes the ResultSet, and closes the connection.
This document provides an overview of JDBC (Java Database Connectivity) including:
- JDBC allows Java applications to connect to databases using SQL and handles vendor differences through drivers.
- There are 4 types of JDBC drivers that handle database connections differently.
- Key JDBC interfaces like Connection, Statement, PreparedStatement, CallableStatement, ResultSet allow executing queries and accessing results.
- Stored procedures can be executed through CallableStatements. Transactions ensure atomic execution across databases. Connections must be closed in the proper sequence.
The document provides an overview of Core JDBC basics, including:
- JDBC defines interfaces and classes for connecting to databases and executing SQL statements from Java code. It standardizes connecting to databases, executing queries, navigating results, and updates.
- There are four main types of JDBC drivers: JDBC-ODBC bridge, native API, network protocol, and thin drivers. Thin drivers provide the best performance by directly converting JDBC calls to database protocols.
- The basic steps to connect using JDBC are: register the driver, get a connection, create statements to execute queries and updates, handle result sets, and close the connection. Transactions allow grouping statements
This document summarizes a presentation given by Anton Keks on being a professional software tester in the 21st century. The presentation discusses that professionalism involves continuous learning and improvement. It advocates for agile practices like test-driven development, automation, and collaboration between testers and developers. The presentation argues that strict roles inhibit effectiveness and that organizations should focus on craftsmanship, simplicity, and delivering working software incrementally.
Lecture 10 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Java Course 9: Networking and ReflectionAnton Keks
Lecture 9 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Lecture 8 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Lecture 5 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
This document summarizes an Agile Saturday event focused on design patterns. It introduces common pattern types and examples like Decorator, Strategy, and Factory. It then presents 8 problems that could benefit from patterns, such as allowing custom pizza orders or multi-volume file decompression. The document promotes extreme programming and invites attendees to consider jobs at Codeborne.
The document discusses issues with over-engineering and complexity in typical Java web applications and recommends focusing on simplicity, avoiding unnecessary abstractions and frameworks, following principles like the Single Responsibility Principle and YAGNI, and using proven open-source tools instead of too many Java standards and technologies. It also provides suggestions for code style, proper application structure, web UI development, and testing to develop applications in a simpler and more productive way.
Talk from Agile Saturday 3 event in Estonia.
It is about being professional in general as well as following agile best practices, such as build automation and continuous integration.
Top 25 AI Coding Agents for Vibe Coders to Use in 2025.pdfSOFTTECHHUB
I've tested over 50 AI coding tools in the past year, and I'm about to share the 25 that actually work. Not the ones with flashy marketing or VC backing – the ones that will make you code faster, smarter, and with way less frustration.
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMAnchore
Over 70% of any given software application consumes open source software (most likely not even from the original source) and only 15% of organizations feel confident in their risk management practices.
With the newly announced Anchore SBOM feature, teams can start safely consuming OSS while mitigating security and compliance risks. Learn how to import SBOMs in industry-standard formats (SPDX, CycloneDX, Syft), validate their integrity, and proactively address vulnerabilities within your software ecosystem.
If You Use Databricks, You Definitely Need FMESafe Software
DataBricks makes it easy to use Apache Spark. It provides a platform with the potential to analyze and process huge volumes of data. Sounds awesome. The sales brochure reads as if it is a can-do-all data integration platform. Does it replace our beloved FME platform or does it provide opportunities for FME to shine? Challenge accepted
Exploring the advantages of on-premises Dell PowerEdge servers with AMD EPYC processors vs. the cloud for small to medium businesses’ AI workloads
AI initiatives can bring tremendous value to your business, but you need to support your new AI workloads effectively. That means choosing the best possible infrastructure for your needs—and many companies are finding that the cloud isn’t right for them. According to a recent Rackspace survey of IT executives, 69 percent of companies have moved some of their applications on-premises from the cloud, with half of those citing security and compliance as the reason and 44 percent citing cost.
On-premises solutions provide a number of advantages. With full control over your security infrastructure, you can be certain that all compliance requirements remain firmly in the hands of your IT team. Opting for on-premises also gives you the ability to design your infrastructure to the precise needs of that team and your new AI workloads. Depending on the workload, you may also see performance benefits, along with more predictable costs. As you start to build your next AI initiative, consider an on-premises solution utilizing AMD EPYC processor-powered Dell PowerEdge servers.
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfAlkin Tezuysal
As the demand for vector databases and Generative AI continues to rise, integrating vector storage and search capabilities into traditional databases has become increasingly important. This session introduces the *MyVector Plugin*, a project that brings native vector storage and similarity search to MySQL. Unlike PostgreSQL, which offers interfaces for adding new data types and index methods, MySQL lacks such extensibility. However, by utilizing MySQL's server component plugin and UDF, the *MyVector Plugin* successfully adds a fully functional vector search feature within the existing MySQL + InnoDB infrastructure, eliminating the need for a separate vector database. The session explains the technical aspects of integrating vector support into MySQL, the challenges posed by its architecture, and real-world use cases that showcase the advantages of combining vector search with MySQL's robust features. Attendees will leave with practical insights on how to add vector search capabilities to their MySQL systems.
In this talk, Elliott explores how developers can embrace AI not as a threat, but as a collaborative partner.
We’ll examine the shift from routine coding to creative leadership, highlighting the new developer superpowers of vision, integration, and innovation.
We'll touch on security, legacy code, and the future of democratized development.
Whether you're AI-curious or already a prompt engineering, this session will help you find your rhythm in the new dance of modern development.
Co-Constructing Explanations for AI Systems using ProvenancePaul Groth
Explanation is not a one off - it's a process where people and systems work together to gain understanding. This idea of co-constructing explanations or explanation by exploration is powerful way to frame the problem of explanation. In this talk, I discuss our first experiments with this approach for explaining complex AI systems by using provenance. Importantly, I discuss the difficulty of evaluation and discuss some of our first approaches to evaluating these systems at scale. Finally, I touch on the importance of explanation to the comprehensive evaluation of AI systems.
MCP vs A2A vs ACP: Choosing the Right Protocol | BluebashBluebash
Understand the differences between MCP vs A2A vs ACP agent communication protocols and how they impact AI agent interactions. Get expert insights to choose the right protocol for your system. To learn more, click here: https://www.bluebash.co/blog/mcp-vs-a2a-vs-acp-agent-communication-protocols/
6th Power Grid Model Meetup
Join the Power Grid Model community for an exciting day of sharing experiences, learning from each other, planning, and collaborating.
This hybrid in-person/online event will include a full day agenda, with the opportunity to socialize afterwards for in-person attendees.
If you have a hackathon proposal, tell us when you register!
About Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to KnowSMACT Works
In today's fast-paced business landscape, financial planning and performance management demand powerful tools that deliver accurate insights. Oracle EPM (Enterprise Performance Management) stands as a leading solution for organizations seeking to transform their financial processes. This comprehensive guide explores what Oracle EPM is, its key benefits, and how partnering with the right Oracle EPM consulting team can maximize your investment.
Create Your First AI Agent with UiPath Agent BuilderDianaGray10
Join us for an exciting virtual event where you'll learn how to create your first AI Agent using UiPath Agent Builder. This session will cover everything you need to know about what an agent is and how easy it is to create one using the powerful AI-driven UiPath platform. You'll also discover the steps to successfully publish your AI agent. This is a wonderful opportunity for beginners and enthusiasts to gain hands-on insights and kickstart their journey in AI-powered automation.
Interested in leveling up your JavaScript skills? Join us for our Introduction to TypeScript workshop.
Learn how TypeScript can improve your code with dynamic typing, better tooling, and cleaner architecture. Whether you're a beginner or have some experience with JavaScript, this session will give you a solid foundation in TypeScript and how to integrate it into your projects.
Workshop content:
- What is TypeScript?
- What is the problem with JavaScript?
- Why TypeScript is the solution
- Coding demo
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Anish Kumar
Presented by: Anish Kumar
LinkedIn: https://www.linkedin.com/in/anishkumar/
This lightning talk dives into real-world GenAI projects that scaled from prototype to production using Databricks’ fully managed tools. Facing cost and time constraints, we leveraged four key Databricks features—Workflows, Model Serving, Serverless Compute, and Notebooks—to build an AI inference pipeline processing millions of documents (text and audiobooks).
This approach enables rapid experimentation, easy tuning of GenAI prompts and compute settings, seamless data iteration and efficient quality testing—allowing Data Scientists and Engineers to collaborate effectively. Learn how to design modular, parameterized notebooks that run concurrently, manage dependencies and accelerate AI-driven insights.
Whether you're optimizing AI inference, automating complex data workflows or architecting next-gen serverless AI systems, this session delivers actionable strategies to maximize performance while keeping costs low.
Data Virtualization: Bringing the Power of FME to Any ApplicationSafe Software
Imagine building web applications or dashboards on top of all your systems. With FME’s new Data Virtualization feature, you can deliver the full CRUD (create, read, update, and delete) capabilities on top of all your data that exploit the full power of FME’s all data, any AI capabilities. Data Virtualization enables you to build OpenAPI compliant API endpoints using FME Form’s no-code development platform.
In this webinar, you’ll see how easy it is to turn complex data into real-time, usable REST API based services. We’ll walk through a real example of building a map-based app using FME’s Data Virtualization, and show you how to get started in your own environment – no dev team required.
What you’ll take away:
-How to build live applications and dashboards with federated data
-Ways to control what’s exposed: filter, transform, and secure responses
-How to scale access with caching, asynchronous web call support, with API endpoint level security.
-Where this fits in your stack: from web apps, to AI, to automation
Whether you’re building internal tools, public portals, or powering automation – this webinar is your starting point to real-time data delivery.
2. JDBC
●
Java DataBase Connectivity
– The API for DB access from Java
– Oriented towards relational databases
– java.sql package
– JDBC is DB vendor neutral
● Versions
– Exists since Java 1.1
– Java 1.4 & 1.5 ships with JDBC 3
– Java 1.6 introduced JDBC 4
Java course - IAG0040 Lecture 13
Anton Keks Slide 2
3. JDBC drivers
●
java.sql.Driver - the driver side of the JDBC
layer is the part that interfaces with the
actual database, and therefore is generally
written by database vendors
●
Most developers only need to know how to
install and use drivers. The JDBC Driver API
defines a set of interfaces which have to be
implemented by a vendor
Java course - IAG0040 Lecture 13
Anton Keks Slide 3
4. JDBC driver types
●
Type 1 use a bridge technology to connect a Java client to
ODBC system. The JDBC-ODBC bridge from Sun is one example
of a Type 1 driver
● Type 2 use native code library to access a database, wrapping
a thin layer of Java around the native library, e.g. Oracle OCI
driver
● Type 3 drivers define a generic network protocol that
interfaces with a piece of custom middleware. The
middleware component might use any other type of driver to
provide the actual database access.
● Type 4 drivers are implemented entirely in Java. They
understand database-specific networking protocols and can
access the database directly without any additional software.
Java course - IAG0040 Lecture 13
Anton Keks Slide 4
5. JDBC driver summary
Type 1 ODBC
ODBC bridge diver
Type 2 Native API
Native API
Type 3 Middleware
DB
Network server
Type 4
Pure Java
Java course - IAG0040 Lecture 13
Anton Keks Slide 5
6. JDBC API basics
ResultSet
Statement PreparedStatement CallableStatement
Connection
Application
DriverManager
Oracle, MySQL,
Concrete Driver PostgreSQL,
HSQLDB, etc
Concrete DB
Java course - IAG0040 Lecture 13
Anton Keks Slide 6
7. JDBC basic usage
●
Load the driver (was needed before JDBC 4)
– Class.forName(“driverClassName”);
– System property -Djdbc.drivers=driverClassName
●
Use DriverManager to create connection
– DriverManager.getConnection(url, user, password);
●
Create statement for execution
– connection.createStatement();
●
Execute the query and get a ResultSet
– statement.executeQuery(sql);
● Iterate over ResultSet: rs.next() and rs.getXXX()
● Free resources with close() methods
Java course - IAG0040 Lecture 13
Anton Keks Slide 7
8. Connection
●
java.sql.Connection
● Represents an open connection to the DB
● Obtained via a DriverManager
– DriverManager.getConnection(url, user, password)
●
URL starts with jdbc:
– The exact format depends on the vendor
– jdbc:mysql://server:port/dbname
– jdbc:hsqldb:mem:dbname
– jdbc:oracle:thin:@server:port:sid
Java course - IAG0040 Lecture 13
Anton Keks Slide 8
9. Statement & PreparedStatement
●
java.sql.Statement
– for execution of simple statements without
parameters
– s = conn.createStatement();
s.execute(“CREATE TABLE ..”);
●
java.sql.PreparedStatement
– for execution of parametrized statements via
'parameter binding'
– s = conn.prepareStatement(“SELECT .. WHERE ID = ?”)
s.setInt(1, value); ResultSet rs = s.executeQuery();
– allows for reuse of pre-compiled statements
Java course - IAG0040 Lecture 13
Anton Keks Slide 9
10. ResultSet
●
java.sql.ResultSet
– represents result of a SQL query, containing
multiple rows, similar to an Iterator
– ResultSet rs = s.executeQuery(“SELECT ...”);
while (rs.next()) {
rs.getString(1); or rs.getString(“COLUMN”);
}
rs.close();
– cursor movement by default is
ResultSet.TYPE_FORWARD_ONLY
● Some drivers may support bidirectional
movement
Java course - IAG0040 Lecture 13
Anton Keks Slide 10
11. CallableStatement
●
java.sql.CallableStatement
– extends PreparedStatement
– intended for calling stored procedures in the DB
– allows reading of OUT parameters instead of
getting a ResultSet
– s = conn.prepareCall(“{call SOME_PROC(?, ?, ?)}”);
s.setString(1, “some value”);
s.registerOutParameter(2, Types.VARCHAR);
s.registerOutParameter(3, Types.NUMERIC);
s.execute();
String result1 = s.getString(2);
int result2 = s.getInt(3);
Java course - IAG0040 Lecture 13
Anton Keks Slide 11
12. Resourse Management
●
All DB objects have the close() method
– higher-level DB objects automatically close the
lower-level ones
– conn.close() will close all underlying statements
● Don't forget proper closing
– same pattern applies as with java.io
– it is a good idea to put close() into a finally block!
Java course - IAG0040 Lecture 13
Anton Keks Slide 12
13. Metadata
●
DatabaseMetaData, ResultSetMetaData,
ParameterMetaData
– Metadata provides additional information about
the respective DB objects
– Can be used for discovering of DB structure and
other 'advanced' or non-standard code
– DatabaseMetaData metadata = conn.getMetaData();
String name = metadata.getDatabaseProductName();
– ResultSet rs = s.executeQuery(“SELECT ...”);
ResultSetMetaData metadata = rs.getMetaData();
int columns = metadata.getColumnCount();
Java course - IAG0040 Lecture 13
Anton Keks Slide 13
14. Transactions
●
Connection auto-commit is ON by default
– Use conn.setAutoCommit(false) to control
transactions manually
●
Transaction control
– connection.commit() persists the changes
– connection.rollback() cancels the changes
– connection.setSavepoint() bookmarks transactions
– exact behaviour depends on the concrete DB
Java course - IAG0040 Lecture 13
Anton Keks Slide 14
15. DataSource
●
java.sql.DataSource
– a bean-style alternative to DriverManager
– implemented by a DB vendor
● Is usually initialized in a vendor-specific way in
the application container
– provides getConnection() method
● Spring Framework and Commons-DBCP have
useful implementations, e.g. for connection
pooling
Java course - IAG0040 Lecture 13
Anton Keks Slide 15
16. Data Access Patterns
●
Define where to put the JDBC-related code in
an application
● In general:
– Isolate and encapsulate JDBC code
– Very few classes should know where the data
comes from
– Pass data around as domain objects, not ResultSets
or a mix of Strings or primitive types
Java course - IAG0040 Lecture 13
Anton Keks Slide 16
17. Active Domain Object Pattern
●
aka ActiveRecord
● Wraps a row in a table or view, encapsulates
DB access, and adds domain logic
– JDBC only used internally, not visible from the
outside
– Person person = Person.create();
person.setName(“John Doe”);
person.save();
– Person person = Person.load(“John Doe”);
Java course - IAG0040 Lecture 13
Anton Keks Slide 17
18. Data Accessor Pattern
●
aka Data Access Object (DAO)
● Encapsulates physical data access in a single
component, exposing logical operations
– Application code maintains knowledge about the
underlying data model, but is decoupled from the
data access possibilities
– Domain objects know nothing about the DB
– PersonAccessor dao = new JDBCPersonAccessor();
Person person = dao.loadPerson(“John Doe”);
person.setName(“John Smith”);
dao.save(person);
Java course - IAG0040 Lecture 13
Anton Keks Slide 18
19. Testing
●
Clear separation of DB access logic from
business logic makes testing and maintenance
a lot easier
●
All JDBC interfaces can be easily mocked
– Connection conn = createMock(Connection.class);
●
Sometimes it is wise to test the full-cycle
– Use in-memory database, e.g. HSQLDB
– Initialize the data there and substitute DB
connection with the fake in-memory one
– DBUnit can help with that
Java course - IAG0040 Lecture 13
Anton Keks Slide 19
20. Logging
● When writing more complex applications, you need logging in
your code
– you don't want to show low-level crash info to end-users
– debugging of bugs on production is usually not possible
● There are many possibilities to implement logging:
– System.out / System.err or other java.io classes – usually
primitive and not flexible solution
– java.util.logging, e.g. Logger class – logging API included in Java
since 1.4, configurable and extensible
– Log4J – very popular de-facto standard framework, very
powerful, has a very good API
– Jakarta commons-logging – the facade for different logging APIs
Java course - IAG0040 Lecture 13
Anton Keks Slide 20
21. java.util.logging
● Logger LOG = Logger.getLogger(this.getClass().getName());
– Loggers have hierarchical structure ('.' separated), it is a good idea to use
full class name as a logger name
– Logger often used as a static member (for convenience)
● Loggers can be used for logging information with various levels
– SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
– LOG.severe(“We have a problem!”);
– LOG.log(Level.SEVERE, “We have a problem”, exception);
● java.util.logging is configurable
– by default it uses $JAVA_HOME/jre/lib/logging.properties
– specific file is specified with sys. property java.util.logging.config.file
Java course - IAG0040 Lecture 13
Anton Keks Slide 21
22. java.util.logging (cont)
● Logger is used to produce LogRecords
– every LogRecord has a specified logging Level
– every Logger may have its own Level assigned
– or they inherit Level from their parent
● LogRecords are passed to one or more Handlers
– e.g. ConsoleHandler, FileHandler, MemoryHandler, SocketHandler, etc
– every handler writes logs greater or equal to their assigned Level
● Formatters are used for formatting of LogRecords
– SimpleFormatter or XMLFormatter
● a LogRecord is written only if its Level is greater than of its Logger's and if
there is a Handler configured to write at this Level
● Filters may be used for more fine-grained control of what should be logged
Java course - IAG0040 Lecture 13
Anton Keks Slide 22
23. Log4J (org.apache.log4j)
● Logger LOG = Logger.getLogger(this.getClass());
– Loggers have hierarchical structure ('.' separated), same as util.logging
● Loggers can be used for logging information with various levels
– FATAL, ERROR, WARN, INFO, DEBUG are default levels
– LOG.error(“We have a problem!”, exception);
● Log4J is fully configurable with external files
– there is no default configuration
– it automatically looks for log4j.xml or log4j.properties in classpath
– can be overriden with log4j.configuration system property
– every named logger can have its own configuration
– different appenders can be used for writing the actual data
Java course - IAG0040 Lecture 13
Anton Keks Slide 23