+ All Categories
Home > Documents > Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX 1/ 34 Database...

Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX 1/ 34 Database...

Date post: 14-Aug-2020
Category:
Upload: others
View: 14 times
Download: 0 times
Share this document with a friend
34
12/26/2019 Database Operations in JavaFX https://www.swtestacademy.com/database-operations-javafx/ 1/34 Database Operations in JavaFX Before started Database Operations in JavaFX section, please check the rst article and learn How to Start JAVAFX! Getting Started with JAVAFX http://www.swtestacademy.com/getting-started- with-javafx/ At rst, part of JavaFX tutorial series, we created a sample JavaFX project, designed the draft version of the UI and set up an Oracle XE database. In this post, we will create controller, model, DAO, and Util classes to do DB operations. Before starting to code, I want to give more information about our example project. The latest version of the UI is shown in the gure below. Previous Next Create a Free Website Today You’re the Boss. Create a Professional Website or Online Store With Weebly Today. Weebly Join our Newsletter! Enter your email Join Categories Agile Tutorials DevOps Tutorials Interview Questions Performance Testing Gatling Tutorials JMeter Tutorials Programming Tutorials Java Tutorials Security Testing Tutorials Software Conferences Test Automation Api Testing Cucumber Tutorials Mobile Automation Appium Tutorials Espresso Tutorials Robot Framework Test Reporting Allure Report Extent Reports Testing Frameworks JUnit Tutorials TestNG Tutorials UI Automation Selenium Tutorials Visual Testing Test Masters Testing Tutorials Tools and Technologies zed attack proxy(2) aws(3) azure(4) capybara(2) cucumber(5) device farm(3) docker(5) elasticsearch(2) espresso(2) extent reports(3) gatling(6) git(4) github(2) gitlab(3) java(15) javafx(2) javascript(4) jenkins(8) jmeter(12) junit(14) karate(2) locust(2) log4j(1) logging(2) mocha(1) mockito(1) node.js(2) octopus deploy(2) packer(1) powershell(2) rancher(1) rest assured(3) robot framework(2) ruby(2) selenium(66) sonarqube(3) testng(12) testrail(3) tesults(3) vagrant(3) wiremock(1) zed attack proxy(2) Tag Cloud agile(2) algorithms(3) allure(2) appium(13) Recent Posts How to Install MongoDB on MacOS Catalina Microservices Testing Strategies Selenoid on Google Cloud Selenium 4 – Chrome Dev Tools Samples Selenium 4 Relative Locators | Friendly Locators Search ... Home About Test Automation Performance Testing DevOps More Contact
Transcript
Page 1: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 1/34

Database Operations in JavaFX

Before started Database Operations in JavaFX section, pleasecheck the �rst article and learn How to Start JAVAFX!

Getting Started with JAVAFXhttp://www.swtestacademy.com/getting-started-with-javafx/

At �rst, part of JavaFX tutorial series, we created a sample JavaFXproject, designed the draft version of the UI and set up an OracleXE database. In this post, we will create controller, model, DAO,and Util classes to do DB operations. Before starting to code, Iwant to give more information about our example project.  Thelatest version of the UI is shown in the �gure below.

Previous Next

Create a Free WebsiteTodayYou’re the Boss. Create aProfessional Website or OnlineStore With Weebly Today.Weebly

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Home About Test Automation Performance Testing DevOps More Contact

Page 2: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 2/34

You can design UI using SceneBuilder. After drag and drop anyelement to the anchor pane, you need to set their fx:id properties.These properties must be unique and you can use elements inyour code with their unique fx:id properties. Also, you can copypaste any element into anchor pane then change its name andfx:id value. I demonstrated how to design a GUI in the �gurebelow.

I listed details of the example below:

Search an employee using employee’s id and show theresult on table view and text area. (SELECT)Search all employees and show them on the table view.(SELECT * FROM)Update the e-mail address of an employee by usingemployee’s id. (UPDATE)Delete an employee by using employee’s id. (DELETE)Insert a new employee in the “employee table”. (INSERT)Show results of all operations on the Text Area (Print onResult Console)

We will use Oracle XE database and its default HR schema. Inorder to connect Oracle DB, we will use JDBC driver. JDBC driveris a software component enabling a Java application to interactwith a database. To add JDBC driver in our project:

1) Go to your project, right-click, and then click Open ModuleSettings.

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 3: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 3/34

2) Click Libraries then click “+” sign, click “From Maven”

3) Write “odjbc” on the search bar and enter. Then, select the“oracle:ojdbc6:11.2.0.3” and select sources and JavaDocs clickOK.

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 4: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 4/34

4) Now, we can see ojdbc6:11.2.0.3 library in lib folder on IntelliJ.

Finally, we are ready to start coding. As shown the picture below, Icreated 4 packages: controller, model, view and util.

I used DAO Design Pattern to perform Employee operations. Iwant to explain DAO Pattern brie�y, for more information, Isuggest that you check Jakop Jenkov’s DAO tutorial. In DAOpattern, domain (business) logic does not directly communicatewith the DB. It communicates with DAO layer and DAO layerhandles DB operations and sends the results to the business layer.

The philosophy under DAO pattern is that if you need to changethe underlying persistence mechanism, you can do it in DAO layer,not all the places in the business layer. It is also very importantthat no details of underlying DB related mechanism leak out ofDAO layer to business layer.

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 5: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 5/34

DBUtil ClassI want to start to explain the code to DBUtil class. In our example,DBUtil class is responsible for DB connection, DB disconnection,database query and update operations. DAO Class (EmployeeDAO)uses DBUtil class’s methods to do higher-level DB operations.

In DBUtil Class:

– dbConnect() method connects to DB.

– dbDisconnect() method closes DB connection.

– dbExecuteQuery(String queryStmt) method executes given SQLstatement and returns cachedRowSet set. In order to eliminate“java.sql.SQLRecoverableException: Closed Connection: next” error wereturn cachedRowSet instead of ResultSet. Thus, we can usecachedRowSet in other classes and manipulate that data.

– dbExecuteUpdate(String sqlStmt) method executes given Update,Insert, Delete SQL operations.

I tried to write explanatory comments in the code below. If youhave questions please don’t hesitate to write a comment. I will tryto answer your questions.

DBUtil Class Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

1234567891011121314151617181920212223242526272829303132333435363738394041424344

package sample.util; import com.sun.rowset.CachedRowSetImpl; import java.sql.*; /** * Created by ONUR BASKIRT on 22.02.2016. */public class DBUtil { //Declare JDBC Driver private static final String JDBC_DRIVER = "oracle.jdbc.driv //Connection private static Connection conn = null; //Connection String //String connStr = "jdbc:oracle:thin:Username/Password@IP:P //Username=HR, Password=HR, IP=localhost, IP=1521, SID=xe private static final String connStr = "jdbc:oracle:thin:HR/ //Connect to DB public static void dbConnect() throws SQLException, ClassNo //Setting Oracle JDBC Driver try { Class.forName(JDBC_DRIVER); } catch (ClassNotFoundException e) { System.out.println("Where is your Oracle JDBC Drive e.printStackTrace(); throw e; } System.out.println("Oracle JDBC Driver Registered!"); //Establish the Oracle Connection using Connection Stri try { conn = DriverManager.getConnection(connStr); } catch (SQLException e) { System.out.println("Connection Failed! Check output e.printStackTrace(); throw e; } }

DBUtil Java

Page 6: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 6/34

Employee Class (Model)We need a model class to hold information about the employee.Add a new class to the model package and called it Employee.

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

45464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

//Close Connection public static void dbDisconnect() throws SQLException { try { if (conn != null && !conn.isClosed()) { conn.close(); } } catch (Exception e){ throw e; } } //DB Execute Query Operation public static ResultSet dbExecuteQuery(String queryStmt) th //Declare statement, resultSet and CachedResultSet as n Statement stmt = null; ResultSet resultSet = null; CachedRowSetImpl crs = null; try { //Connect to DB (Establish Oracle Connection) dbConnect(); System.out.println("Select statement: " + queryStmt //Create statement stmt = conn.createStatement(); //Execute select (query) operation resultSet = stmt.executeQuery(queryStmt); //CachedRowSet Implementation //In order to prevent "java.sql.SQLRecoverableExcep //We are using CachedRowSet crs = new CachedRowSetImpl(); crs.populate(resultSet); } catch (SQLException e) { System.out.println("Problem occurred at executeQuer throw e; } finally { if (resultSet != null) { //Close resultSet resultSet.close(); } if (stmt != null) { //Close Statement stmt.close(); } //Close connection dbDisconnect(); } //Return CachedRowSet return crs; } //DB Execute Update (For Update/Insert/Delete) Operation public static void dbExecuteUpdate(String sqlStmt) throws S //Declare statement as null Statement stmt = null; try { //Connect to DB (Establish Oracle Connection) dbConnect(); //Create Statement stmt = conn.createStatement(); //Run executeUpdate operation with given sql statem stmt.executeUpdate(sqlStmt); } catch (SQLException e) { System.out.println("Problem occurred at executeUpda throw e; } finally { if (stmt != null) { //Close statement stmt.close(); } //Close connection dbDisconnect(); } }}

Page 7: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 7/34

This class holds all �elds of the Employee such as name, lastname, email, etc. It contains set and get methods and propertiesfor all �elds of a model class. A Property noti�es us when anyvariable such as name, last name, etc. is changed. This helps uskeep the view in sync with the data.

You can see the all �elds of the employee from database asshown below.

Employee Class Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

package sample.model; import javafx.beans.property.*;import java.sql.Date; /** * Created by ONUR BASKIRT on 27.02.2016. */public class Employee { //Declare Employees Table Columns private IntegerProperty employee_id; private StringProperty first_name; private StringProperty last_name; private StringProperty email; private StringProperty phone_number; private SimpleObjectProperty<Date> hire_date; private StringProperty job_id; private IntegerProperty salary; private DoubleProperty commission_pct; private IntegerProperty manager_id; private IntegerProperty department_id; //Constructor public Employee() { this.employee_id = new SimpleIntegerProperty(); this.first_name = new SimpleStringProperty(); this.last_name = new SimpleStringProperty(); this.email = new SimpleStringProperty(); this.phone_number = new SimpleStringProperty(); this.hire_date = new SimpleObjectProperty<>(); this.job_id = new SimpleStringProperty(); this.salary = new SimpleIntegerProperty(); this.commission_pct = new SimpleDoubleProperty(); this.manager_id = new SimpleIntegerProperty(); this.department_id = new SimpleIntegerProperty(); } //employee_id public int getEmployeeId() { return employee_id.get(); } public void setEmployeeId(int employeeId){ this.employee_id.set(employeeId); } public IntegerProperty employeeIdProperty(){ return employee_id; } //first_name

bli St i tFi tN () {

Employee Java

Page 8: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 8/34

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

136137

public String getFirstName () { return first_name.get(); } public void setFirstName(String firstName){ this.first_name.set(firstName); } public StringProperty firstNameProperty() { return first_name; } //last_name public String getLastName () { return last_name.get(); } public void setLastName(String lastName){ this.last_name.set(lastName); } public StringProperty lastNameProperty() { return last_name; } //email public String getEmail () { return email.get(); } public void setEmail (String email){ this.email.set(email); } public StringProperty emailProperty() { return email; } //phone_number public String getPhoneNumber () { return phone_number.get(); } public void setPhoneNumber (String phoneNumber){ this.phone_number.set(phoneNumber); } public StringProperty phoneNumberProperty() { return phone_number; } //hire_date public Object getHireDate(){ return hire_date.get(); } public void setHireDate(Date hireDate){ this.hire_date.set(hireDate); } public SimpleObjectProperty<Date> hireDateProperty(){ return hire_date; } //job_id public String getJobId () { return job_id.get(); } public void setJobId (String jobId){ this.job_id.set(jobId); } public StringProperty jobIdProperty() { return job_id; } //salary public int getSalary() { return salary.get(); } public void setSalary(int salary){ this.salary.set(salary);

}

Page 9: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 9/34

Employee DAO Class (Data Access Object)Employee DAO class handles employee related databaseoperations such as searching, deleting, updating employee withdeclared SQL statements.

JavaFX view classes need to be informed about any changes madeto the list of employees. It is important for the view to besynchronized with the data. For this purpose, we useObservableList collection and hold the employee in this list.

searchEmployee and searchEmployees methods use DBUtilclass’s dbExecuteQuery() method.The other methods (update/delete/insert), use DBUtilclass’s dbExecuteUpdate() method.

I tried to add descriptive inline comments in the code shownbelow.

EmployeeDAO Class Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180

public IntegerProperty salaryProperty(){ return salary; } //commission_pct public double getCommissionPct() { return commission_pct.get(); } public void setCommissionPct(double commissionPct){ this.commission_pct.set(commissionPct); } public DoubleProperty commissionPctProperty(){ return commission_pct; } //manager_id public int getManagerId() { return manager_id.get(); } public void setManagerId(int managerId){ this.manager_id.set(managerId); } public IntegerProperty managerIdProperty(){ return manager_id; } //department_id public int getDepartmanId() { return department_id.get(); } public void setDepartmantId(int departmentId){ this.manager_id.set(departmentId); } public IntegerProperty departmentIdProperty(){ return department_id; }}

123456789

package sample.model;import javafx.collections.FXCollections;import javafx.collections.ObservableList;import sample.util.DBUtil; import java.sql.ResultSet;import java.sql.SQLException; public class EmployeeDAO {

EmployeeDAO Java

Page 10: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 10/34

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

10111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394

//******************************* //SELECT an Employee //******************************* public static Employee searchEmployee (String empId) throws //Declare a SELECT statement String selectStmt = "SELECT * FROM employees WHERE empl //Execute SELECT statement try { //Get ResultSet from dbExecuteQuery method ResultSet rsEmp = DBUtil.dbExecuteQuery(selectStmt) //Send ResultSet to the getEmployeeFromResultSet me Employee employee = getEmployeeFromResultSet(rsEmp) //Return employee object return employee; } catch (SQLException e) { System.out.println("While searching an employee wit //Return exception throw e; } } //Use ResultSet from DB as parameter and set Employee Objec private static Employee getEmployeeFromResultSet(ResultSet { Employee emp = null; if (rs.next()) { emp = new Employee(); emp.setEmployeeId(rs.getInt("EMPLOYEE_ID")); emp.setFirstName(rs.getString("FIRST_NAME")); emp.setLastName(rs.getString("LAST_NAME")); emp.setEmail(rs.getString("EMAIL")); emp.setPhoneNumber(rs.getString("PHONE_NUMBER")); emp.setHireDate(rs.getDate("HIRE_DATE")); emp.setJobId(rs.getString("JOB_ID")); emp.setSalary(rs.getInt("SALARY")); emp.setCommissionPct(rs.getDouble("COMMISSION_PCT") emp.setManagerId(rs.getInt("MANAGER_ID")); emp.setDepartmantId(rs.getInt("DEPARTMENT_ID")); } return emp; } //******************************* //SELECT Employees //******************************* public static ObservableList<Employee> searchEmployees () t //Declare a SELECT statement String selectStmt = "SELECT * FROM employees"; //Execute SELECT statement try { //Get ResultSet from dbExecuteQuery method ResultSet rsEmps = DBUtil.dbExecuteQuery(selectStmt //Send ResultSet to the getEmployeeList method and ObservableList<Employee> empList = getEmployeeList( //Return employee object return empList; } catch (SQLException e) { System.out.println("SQL select operation has been f //Return exception throw e; } } //Select * from employees operation private static ObservableList<Employee> getEmployeeList(Res //Declare a observable List which comprises of Employee ObservableList<Employee> empList = FXCollections.observ while (rs.next()) { Employee emp = new Employee(); emp.setEmployeeId(rs.getInt("EMPLOYEE_ID")); emp.setFirstName(rs.getString("FIRST_NAME")); emp.setLastName(rs.getString("LAST_NAME")); emp.setEmail(rs.getString("EMAIL")); emp.setPhoneNumber(rs.getString("PHONE_NUMBER")); emp.setHireDate(rs.getDate("HIRE_DATE")); emp.setJobId(rs.getString("JOB_ID")); emp.setSalary(rs.getInt("SALARY"));

Page 11: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 11/34

RootLayout FXMLRootLayout contains a border pane and menu items. We need tobind it with RootLayoutController class.

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

9596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169

emp.setCommissionPct(rs.getDouble("COMMISSION_PCT") emp.setManagerId(rs.getInt("MANAGER_ID")); emp.setDepartmantId(rs.getInt("DEPARTMENT_ID")); //Add employee to the ObservableList empList.add(emp); } //return empList (ObservableList of Employees) return empList; } //************************************* //UPDATE an employee's email address //************************************* public static void updateEmpEmail (String empId, String emp //Declare a UPDATE statement String updateStmt = "BEGIN\n" + " UPDATE employees\n" + " SET EMAIL = '" + empEmail + "'\n " WHERE EMPLOYEE_ID = " + empId + "; " COMMIT;\n" + "END;"; //Execute UPDATE operation try { DBUtil.dbExecuteUpdate(updateStmt); } catch (SQLException e) { System.out.print("Error occurred while UPDATE Opera throw e; } } //************************************* //DELETE an employee //************************************* public static void deleteEmpWithId (String empId) throws SQ //Declare a DELETE statement String updateStmt = "BEGIN\n" + " DELETE FROM employees\n" + " WHERE employee_id ="+ empId + " COMMIT;\n" + "END;"; //Execute UPDATE operation try { DBUtil.dbExecuteUpdate(updateStmt); } catch (SQLException e) { System.out.print("Error occurred while DELETE Opera throw e; } } //************************************* //INSERT an employee //************************************* public static void insertEmp (String name, String lastname, //Declare a DELETE statement String updateStmt = "BEGIN\n" + "INSERT INTO employees\n" + "(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, E "VALUES\n" + "(sequence_employee.nextval, '"+name+"' "END;"; //Execute DELETE operation try { DBUtil.dbExecuteUpdate(updateStmt); } catch (SQLException e) { System.out.print("Error occurred while DELETE Opera throw e; } }}

Page 12: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 12/34

We have three menus: File, Operations, and Help.

File Menu has Close option to exit the program. Operations menuhas “New Menu Item” option.  Help Menu has “About” option toshow information about program.

RootLayout View Code:

EmployeeView FXMLEmployeeView fxml �le comprises of text �elds, buttons, tableview and text area for employee-related operations. We need tobind it with EmployeeController class.

As you see the picture below, we need to declare fx:id values,these values are unique for each element and we can bindmethods with these elements by OnAction tag. Methods muststart with “#” sign.

Employee View Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

12345678910111213141516171819202122232425262728293031

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Menu?><?import javafx.scene.control.MenuBar?><?import javafx.scene.control.MenuItem?><?import javafx.scene.layout.BorderPane?> <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight <top> <MenuBar BorderPane.alignment="CENTER"> <menus> <Menu mnemonicParsing="false" text="File"> <items> <MenuItem mnemonicParsing="false" onAction="#handl </items> </Menu> <Menu mnemonicParsing="false" text="Edit"> <items> <MenuItem mnemonicParsing="false" text="New Menu I </items> </Menu> <Menu mnemonicParsing="false" text="Help"> <items> <MenuItem mnemonicParsing="false" onAction="#handl </items> </Menu> </menus> </MenuBar> </top></BorderPane>

RootLayout fxml XHTML

EmployeeView fxml XHTML

Page 13: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 13/34

RootLayoutController ClassIn RootLayoutController class, we handle exit and help methods.Exit method closes program and help method gives informationabout the program by using Alert class.

RootLayoutController Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?><?import javafx.scene.layout.*?><?import javafx.scene.text.*?> <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight <children> <TextField fx:id="empIdText" layoutX="193.0" layoutY="41.0 <Label layoutX="194.0" layoutY="21.0" text="Employee ID" / <Button fx:id="searchEmpBtn" layoutX="194.0" layoutY="70.0 <Button fx:id="deleteEmpBtn" layoutX="332.0" layoutY="70.0 <Button fx:id="updateEmpBtn" layoutX="263.0" layoutY="70.0 <Button fx:id="addEmpBtn" layoutX="82.0" layoutY="114.0" m <TextArea fx:id="resultArea" layoutX="7.0" layoutY="250.0" <Label layoutX="9.0" layoutY="231.0" text="Result Console" <font> <Font name="System Bold" size="12.0" /> </font></Label> <TextField fx:id="newEmailText" layoutX="268.0" layoutY="4 <Label layoutX="270.0" layoutY="21.0" text="New Email" /> <VBox layoutX="97.0" layoutY="24.0" spacing="4.0"> <children> <TextField fx:id="nameText" prefHeight="25.0" prefWi <TextField fx:id="surnameText" prefHeight="25.0" pre <TextField fx:id="emailText" prefHeight="25.0" prefW </children> </VBox> <VBox layoutX="9.0" layoutY="28.0" prefWidth="67.0" spacin <children> <Label text="Name" /> <Label text="Surname" /> <Label text="Email" /> </children> </VBox> <Separator layoutY="14.0" prefHeight="4.0" prefWidth="600. <Separator layoutX="180.0" layoutY="14.0" orientation="VER <TableView fx:id="employeeTable" editable="true" layoutX=" <columns> <TableColumn fx:id="empIdColumn" prefWidth="57.0" te <TableColumn fx:id="empNameColumn" prefWidth="75.0" te <TableColumn fx:id="empLastNameColumn" prefWidth="73.0 <TableColumn fx:id="empEmailColumn" prefWidth="79.0" <TableColumn fx:id="empPhoneNumberColumn" prefWidth= <TableColumn fx:id="empHireDateColumn" prefWidth="93 </columns> </TableView> <Button fx:id="searchEmpsBtn" layoutX="396.0" layoutY="70. </children></AnchorPane>

12345678910111213141516171819

package sample.controller; import javafx.event.ActionEvent;import javafx.scene.control.Alert;import sample.Main; public class RootLayoutController { //Exit the program public void handleExit(ActionEvent actionEvent) { System.exit(0); } //Help Menu button behavior public void handleHelp(ActionEvent actionEvent) { Alert alert = new Alert (Alert.AlertType.INFORMATION); alert.setTitle("Program Information"); alert.setHeaderText("This is a sample JAVAFX application alert.setContentText("You can search, delete, update, in

RootLayoutController Java

Page 14: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 14/34

EmployeeController ClassIn EmployeeController class, �elds and methods have special@FXML annotation. We need this annotation because fxml �leneeds to access private �elds and private methods. After thesesettings, the application will automatically �ll the variables whenthe fxml �le is loaded.

EmployeeController Class handles below operations:

– searchEmployee() – Searches an employee with givenemployee id. Then, populate employee’s information on tableview and print the result on text area.

– searchEmployees() – Gets all employees information andpopulates them on the table view.

– initialize() – Handles initialization. When the fxml �le isloaded, it will be called automatically.

– populateEmployee(Employee) – Populates employee on thetable view.

– setEmpInfoToTextArea(Employee) – Prints employeeinformation on text area.

– populateEmployees(ObservableList<Employee>) – Populatesemployees.

– updateEmployeeEmail() – Updates employee email by usingemployee id

– insertEmployee() – Insert a new employee into employee table.

– deleteEmployee() – Deletes an employee with employee’s id.

Extra Explanations:

– Private �elds and methods where the fxml �le needs to accessmust be annotated with @FXML annotation.

– After the fxml �le has been loaded, the initialize() method willbe called automatically.

– The setCellValueFactory(…) that we set on the table columnsare used to determine which �eld inside the Employee objectsshould be used for the particular column. The arrow -> indicatesthat we are using a Java 8 feature called Lambdas. (Anotheroption would be to use a PropertyValueFactory).

– If you use a property which is different than StringProperty,such as IntegerProperty, DoubleProperty, etc. thesetCellValueFactory(…) must have an additional asObject()method:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

202122

alert.show(); }}

empIdColumn.setCellValueFactory(cellData -> cellData.getValue().empl

Page 15: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 15/34

Note: Always use the javafx imports, NOT awt orswing!

EmployeeController Class Code:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374

package sample.controller; import javafx.collections.FXCollections;import javafx.collections.ObservableList;import javafx.event.ActionEvent;import javafx.fxml.FXML;import javafx.scene.control.TableColumn;import javafx.scene.control.TableView;import javafx.scene.control.TextArea;import javafx.scene.control.TextField;import sample.model.Employee;import sample.model.EmployeeDAO; import java.sql.Date;import java.sql.SQLException; /** * Created by ONUR BASKIRT on 23.02.2016. */public class EmployeeController { @FXML private TextField empIdText; @FXML private TextArea resultArea; @FXML private TextField newEmailText; @FXML private TextField nameText; @FXML private TextField surnameText; @FXML private TextField emailText; @FXML private TableView employeeTable; @FXML private TableColumn<Employee, Integer> empIdColumn; @FXML private TableColumn<Employee, String> empNameColumn; @FXML private TableColumn<Employee, String> empLastNameColumn; @FXML private TableColumn<Employee, String> empEmailColumn; @FXML private TableColumn<Employee, String> empPhoneNumberColumn; @FXML private TableColumn<Employee, Date> empHireDateColumn; //Search an employee @FXML private void searchEmployee (ActionEvent actionEvent) throw try { //Get Employee information Employee emp = EmployeeDAO.searchEmployee(empIdText //Populate Employee on TableView and Display on Tex populateAndShowEmployee(emp); } catch (SQLException e) { e.printStackTrace(); resultArea.setText("Error occurred while getting em throw e; } } //Search all employees @FXML private void searchEmployees(ActionEvent actionEvent) throw try { //Get all Employees information ObservableList<Employee> empData = EmployeeDAO.sear //Populate Employees on TableView populateEmployees(empData); } catch (SQLException e){ System.out.println("Error occurred while getting em throw e;

EmployeeController Java

Page 16: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 16/34

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

75767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159

} } //Initializing the controller class. //This method is automatically called after the fxml file h @FXML private void initialize () { /* The setCellValueFactory(...) that we set on the table c which field inside the Employee objects should be used The arrow -> indicates that we're using a Java 8 featur (Another option would be to use a PropertyValueFactory, We're only using StringProperty values for our table co When you want to use IntegerProperty or DoubleProperty, must have an additional asObject(): */ empIdColumn.setCellValueFactory(cellData -> cellData.ge empNameColumn.setCellValueFactory(cellData -> cellData. empLastNameColumn.setCellValueFactory(cellData -> cellD empEmailColumn.setCellValueFactory(cellData -> cellData empPhoneNumberColumn.setCellValueFactory(cellData -> ce empHireDateColumn.setCellValueFactory(cellData -> cellD } //Populate Employee @FXML private void populateEmployee (Employee emp) throws ClassNo //Declare and ObservableList for table view ObservableList<Employee> empData = FXCollections.observ //Add employee to the ObservableList empData.add(emp); //Set items to the employeeTable employeeTable.setItems(empData); } //Set Employee information to Text Area @FXML private void setEmpInfoToTextArea ( Employee emp) { resultArea.setText("First Name: " + emp.getFirstName() "Last Name: " + emp.getLastName()); } //Populate Employee for TableView and Display Employee on T @FXML private void populateAndShowEmployee(Employee emp) throws C if (emp != null) { populateEmployee(emp); setEmpInfoToTextArea(emp); } else { resultArea.setText("This employee does not exist!\n } } //Populate Employees for TableView @FXML private void populateEmployees (ObservableList<Employee> em //Set items to the employeeTable employeeTable.setItems(empData); } //Update employee's email with the email which is written o @FXML private void updateEmployeeEmail (ActionEvent actionEvent) try { EmployeeDAO.updateEmpEmail(empIdText.getText(),newE resultArea.setText("Email has been updated for, emp } catch (SQLException e) { resultArea.setText("Problem occurred while updating } } //Insert an employee to the DB @FXML private void insertEmployee (ActionEvent actionEvent) throw try { EmployeeDAO.insertEmp(nameText.getText(),surnameTex resultArea.setText("Employee inserted! \n"); } catch (SQLException e) { resultArea.setText("Problem occurred while insertin throw e; } } //Delete an employee with a given employee Id from DB

Page 17: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 17/34

Main ClassAt the end of the �rst JavaFX article, I described details of themain method. In here, I want to explain it brie�y. It starts theprimary stage, sets its title, initializes the root layout and thendisplays the “employee view”.

Main Class Code:Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

160161162163164165166167168169170

@FXML private void deleteEmployee (ActionEvent actionEvent) throw try { EmployeeDAO.deleteEmpWithId(empIdText.getText()); resultArea.setText("Employee deleted! Employee id: } catch (SQLException e) { resultArea.setText("Problem occurred while deleting throw e; } }}

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

package sample; import javafx.application.Application;import javafx.fxml.FXMLLoader;import javafx.scene.Scene;import javafx.scene.layout.AnchorPane;import javafx.scene.layout.BorderPane;import javafx.stage.Stage; import java.io.IOException; //Main class which extends from Application Classpublic class Main extends Application { //This is our PrimaryStage (It contains everything) private Stage primaryStage; //This is the BorderPane of RootLayout private BorderPane rootLayout; @Override public void start(Stage primaryStage) { //1) Declare a primary stage (Everything will be on this this.primaryStage = primaryStage; //Optional: Set a title for primary stage this.primaryStage.setTitle("SW Test Academy - Sample Jav //2) Initialize RootLayout initRootLayout(); //3) Display the EmployeeOperations View showEmployeeView(); } //Initializes the root layout. public void initRootLayout() { try { //First, load root layout from RootLayout.fxml FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("view/Root rootLayout = (BorderPane) loader.load(); //Second, show the scene containing the root layout. Scene scene = new Scene(rootLayout); //We are sendin primaryStage.setScene(scene); //Set the scene in pri /*//Give the controller access to the main. RootLayoutController controller = loader.getControll controller.setMain(this);*/ //Third, show the primary stage primaryStage.show(); //Display the primary stage } catch (IOException e) { e.printStackTrace(); } }

Main Java

Page 18: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 18/34

We �nished coding. It is time to run the code.

The result of the program is shown below.

Github: https://github.com/swtestacademy/javafxexample

Bonus Information (Multi-threaded JavaFX DatabaseOperations)

Sometimes big queries take too much time and GUI is frozen untilthe query �nishes. In order to solve this problem, we need towrite our code in a multi-threaded way. In this example, you cansearch all employees with multi-threaded way as follows:

First, you need to add an Executor variable and add below codesnippet in EmployeeController Class’s initialize method:

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

59606162636465666768697071727374757677

//Shows the employee operations view inside the root layout. public void showEmployeeView() { try { //First, load EmployeeView from EmployeeView.fxml FXMLLoader loader = new FXMLLoader(); loader.setLocation(Main.class.getResource("view/Empl AnchorPane employeeOperationsView = (AnchorPane) loa // Set Employee Operations view into the center of r rootLayout.setCenter(employeeOperationsView); } catch (IOException e) { e.printStackTrace(); } } public static void main(String args) { launch(args); }}

// l i h di h d h d

Java

Page 19: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 19/34

Then, you can use JAVA Task class to handle data table populateoperations with below code.

You can use the �llEmployeeTable method instead of thepopulateEmployees method. In this example, our data is not toobig so I don’t need to use the multi-threaded function for datapopulate operation but if you work with the data-intensiveproject, you may need to use multi-threaded functions toeliminate Frozen GUI  problems.

The End 🙂

Java FX Tutorial SeriesJavaFX – Part 1: Getting Started with JavaFX

JavaFX – Part 2: JavaFX Database Operations (This Post)

You Don't Understand

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

123456

//For multithreading: Create executor that uses daemon threads:exec = Executors.newCachedThreadPool((runnable) -> { Thread t = new Thread (runnable); t.setDaemon(true); return t;});

12345678910111213

//Populate Employees for TableView with MultiThreading (This is private void fillEmployeeTable(ActionEvent event) throws SQL Task<List<Employee>> task = new Task<List<Employee>>(){ @Override public ObservableList<Employee> call() throws Except return EmployeeDAO.searchEmployees(); } }; task.setOnFailed(e-> task.getException().printStackTrace task.setOnSucceeded(e-> employeeTable.setItems((Observab exec.execute(task); }

Java

Page 20: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 20/34

Money Yet

Ad FUMoney.com

Roland Fantom X6Sounds And Samples...

Ad eBay

Getting Started withJavaFX

swtestacademy.com

60 Unbelievable Photos

Ad History Daily

Data Driven Testing withExcel in Selenium (2019Update)

swtestacademy.com

Selenium Webdriver waitfor JavaScript JQuery andAngular

swtestacademy.com

Run ADB Commands inJava Code for DeviceManipulation

swtestacademy.com

Read Con�gurationsfrom a Property File inSelenium

swtestacademy.com

Calling Custom Java Codein Karate API Tests

swtestacademy.com

Appium Tutorial (2019Update) Step by StepAppium Automation

swtestacademy.com

JUnit 5 Parallel TestExecution

swtestacademy.com

Selenium 4 - Sample

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 21: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 21/34

By Onur Baskirt | April 1st, 2016 | Programming Tutorials | 75 Comments

Share This Story, Choose YourPlatform!

About the Author: Onur Baskirt

Onur Baskirt is a senior IT professional with 10+years of experience. Now, he is working as a SeniorTechnical Consultant at Emirates Airlines in Dubai.

75 Comments

ariesta June 12, 2016 at 6:58 am - Reply

good tutorial i have many study from this website , cani have source code project for make me easy study ?

Onur Baskirt June 16, 2016 at 11:11 pm - Reply

I will put it on github and let you know here. 🙂

ariesta June 18, 2016 at 10:09 pm - Reply

ok 🙂 i see , im newbie for javafx becausejava usually so diffrent with javafx . javafxuse implementation mvc all of code.

i want to make diffrent design for dekstop,website and mobile in one projectapplication when i running in dekstop it’slarge and when i running in mobile itsimple , could you teach me how to makelike that or give me advice where i canstudy more deep about javafx ? becausegood website like that about javafx it’sseldom

pCodes for New Features

swtestacademy.com

Unit Testing withMockito

swtestacademy.com

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 22: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 22/34

Onur Baskirt June 18, 2016 at 11:54 pm - Reply

I suggest you to check jenkov.comhttp://tutorials.jenkov.com/javafx/index.html

Onur Baskirt June 19, 2016 at 12:25 am - Reply

Here you can �nd the codeshttps://github.com/swtestacademy/javafxexample

ariesta June 24, 2016 at 10:14 pm

thank you so much sir 🙂 foryour information …

KyleMtl June 22, 2016 at 6:54 pm - Reply

Hi from Canada,Your tutorial is very useful to me !I have googleing a lot about DAO and Javafx and I havefound some real bad code only.Could you make a tutorial about the best practices onJavaFx.Could you go deeper with the use of DAO and MVC ?Thanks

Onur Baskirt June 23, 2016 at 12:18 am - Reply

First, thank you very much for your comments.Actually, I am not an ultimate JavaFX expert. Atmy former company, I needed to write a programwhich handles DB operations and I did thatprogram the way that I described in this article. Isuggest you to check Jakop Jenkov’s DAO tutorialseries. (http://tutorials.jenkov.com/java-persistence/dao-design-pattern.html) I hope thatseries will address your problems and needs.Thanks.

aryaman October 7, 2016 at 1:47 pm - Reply

hey you are very goof in programming i am new tojavafx can please tell me i am not able to fetvch thedata from my database using a button and the button ihave made is from the scene builder can you suggestsomething i can share my piece of code with yu if youwant

Onur Baskirt October 8, 2016 at 8:41 pm - Reply

Check the code which I shared on github https://github.com/swtestacademy/RestAssuredExample

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 23: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 23/34

guilherme brandão October 26, 2016 at 10:14 pm - Reply

Greetings! I just started JavaFX after a while using java,followed your example and saw some others whichbrings to my doubt:

On model class should I useprivate String name;

or

private �nal StringProperty name;

and, if the second way is the right one, how to handlewith my own classes as atributes?class Person {private �nal ObjectProperty car; ?}

Onur Baskirt October 27, 2016 at 12:21 am - Reply

When to use StringProperty firstNameover String firstName?

Use it when this �rstName variable is going to beobserved by others. You also can observe it byattaching a listener. You can use this variable inbindings with other observable objects of JavaFX.In some circumstances it is mandatory to useJavaFX Property, like Person list rendered withtableView which is editable. To re�ect thechanges immediately in edited cell, theunderlying bound �eld should be a property.

Reference:http://stackover�ow.com/questions/31266498/when-to-use-stringproperty-over-string

Jon November 22, 2016 at 4:50 pm - Reply

Excellent! Thank you. Is that a global search — tosearch all �elds?

Onur Baskirt November 22, 2016 at 11:10 pm - Reply

You can write any kind of search for all �elds in atable.

Jon November 25, 2016 at 4:10 am - Reply

Hello, Mr. Baskirt.

Wonderful and Excellent tutorial!

Wow!

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 24: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 24/34

My focus is to take your incredible code and convert itto JSF web app.

Thank you.

Onur Baskirt November 26, 2016 at 5:52 pm - Reply

Thank you @Jon. Have a good luck for your JSFproject!

Vinod November 27, 2016 at 2:07 pm - Reply

Mr.Onur,I am an new user of JavaFX. Your tutorial is very goodand self explanatory. I tried the code and it worked afterfew attempts.. thank you very much for this excellentstep by step detail.

Onur Baskirt November 27, 2016 at 3:26 pm - Reply

Hi Vinod,I am so happy that my article helped you. Have agood luck to your projects. Thank you!

Sabaya November 29, 2016 at 11:25 pm - Reply

Hi Baskirt, thank you for your efforts to help others.Do you have any example or tutorial for populating theData to javaFX TableView dynamically from Oracle DB.Without going throw DAO or bean class. Where I wouldissue (SELECT * FROM tName), pass the table name anditerate throw the column MetaData and table rows anddisplay the content in a tableview. I get somethingworked from MySQL DB, when tried to get it workingfor Oracle I got some error. I will share my code ifwould be able to look at it.

Thank you again.

Onur Baskirt November 30, 2016 at 2:44 pm - Reply

Hi Sabaya, I do not have that kind of example. Ithink only difference between Oracle and MySQLDB is connection code. It is better to checkstackover�ow. Maybe other people also got sameproblem and �xed it. Also you can share the errorhere. Maybe other ppl also comment about yourproblem.

yuen December 3, 2016 at 4:11 pm - Reply

can I ask is your code applicable for NetBeans IDE?…Itry to import your GitHub into NetBeans butunsuccessfully…I currently have a database project

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 25: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 25/34

assign by lecture and me not sure need use java swingor JavaFX better?…

Onur Baskirt December 4, 2016 at 6:52 pm - Reply

Hello, it is written on IntelliJ. You can use thesource code �les and try to create a project withthose �les in NetBeans. I have never used swingbut I could say that JavaFX is next generation UI

It is better to use JavaFX for me.

Sudhakar Krishnan February 28, 2017 at 10:43 am - Reply

Thank you very much. I tried with JavaDB. First it throwsome error. The errors are JavaDB Query. The query inyour code not supported. Also in New Screenbuilder ,your view code not align properly. A small tweak – then�ne. JavaDB code is slightly different from your(I thinkoracle) code.

It worked, I learned JavaFX8. Next going to create a realapp for my customer.

SW Test Academy February 28, 2017 at 8:09 pm - Reply

Hi Sudhakar, I am happy that you solved all theisaues. I wrote this code last year. As you said, itmay need somemodi�cations and i am glad to see that you did allrequired modi�cations without any problem. Iused Oracle instead of JAVADB maybe because ofthis reason queries did not work for you. I wishyou a good luck for your commercial project.

baaka young man March 27, 2017 at 1:49 pm - Reply

thank you this was what i were looking for

Onur Baskirt March 28, 2017 at 11:55 pm - Reply

You are welcome

nutsack April 7, 2017 at 11:00 am - Reply

It’s amazing to pay a quick visit this web site andreading the views of all friends about this piece ofwriting, whileI am also keen of getting know-how.

John May 2, 2017 at 11:09 pm - Reply

Hi,

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 26: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 26/34

Nice tutorial, i’m now starting to learn JavaFX and redidwhat you build here but in some other design, and ikeep getting these errors:

Exception in Application start methodjava.lang.re�ect.InvocationTargetExceptionat sun.re�ect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.re�ect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.re�ect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.re�ect.Method.invoke(Method.java:498)atcom.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)atcom.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)at sun.re�ect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.re�ect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.re�ect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.re�ect.Method.invoke(Method.java:498)atsun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)Caused by: java.lang.RuntimeException: Exception inApplication start methodatcom.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)atcom.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:1at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.ClassCastException:javafx.scene.layout.AnchorPane cannot be cast tojavafx.scene.layout.BorderPaneat sample.Main.initRootLayout(Main.java:41)at sample.Main.start(Main.java:29)atcom.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:atcom.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)atcom.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)at java.security.AccessController.doPrivileged(NativeMethod)atcom.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)atcom.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)at com.sun.glass.ui.win.WinApplication._runLoop(NativeMethod)atcom.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)… 1 moreException running application sample.Main

Could you help?

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 27: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 27/34

Onur Baskirt May 3, 2017 at 12:33 am - Reply

Hi John,I don’t know your code but I believe that belowlinks help you a lot.

http://stackover�ow.com/questions/35956527/javafx-javafx-scene-layout-anchorpane-cannot-be-cast-to-javafx-scene-layout-bohttp://stackover�ow.com/questions/27556536/javafx-scene-layout-pane-cannot-be-cast-to-javafx-fxml-fxmlloaderhttp://stackover�ow.com/questions/35956527/javafx-javafx-scene-layout-anchorpane-cannot-be-cast-to-javafx-scene-layout-bo/35956548

John May 3, 2017 at 9:44 pm - Reply

Hi,

Found the error, thank you very much!

Kevin November 4, 2017 at 10:08 pm - Reply

Hi John,

I have the same mistake. Which solution solvedthe issue for you?(I have the same code what we can reach fromthis tutorial)

John May 3, 2017 at 9:53 pm - Reply

Hi again,

Now i’m having another problem, i cannot get to showthe menu bar from the BorderPane when i set thescene.Do you know what could be the problem?

Thank you,John

John May 3, 2017 at 10:02 pm - Reply

Solved that one too, sorry for all the questions, i’mpretty at Java too 🙂

Onur Baskirt May 4, 2017 at 11:39 am - Reply

I am happy that you solved all your problems

Cloudsnight May 7, 2017 at 7:25 pm - Reply

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 28: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 28/34

Hello Mr. Onur, i feel happy to see your method, in myopinion it is using DAO and MVC, wanna ask, how aboutusing MySQL database, is the query statement is stillsame use as this Oracle XE ? i’m using netbeans andMySQL.

Onur Baskirt May 7, 2017 at 11:13 pm - Reply

Hello Uchin, Thanks for your kind words. You canuse also MYSQL as well. I remember that somechanged the code for an another DB. It is better tolook at JAVA & MYSQL connection on the web andchange the DB connection sections of the code.

Connel Evalsam Asikong May 11, 2017 at 5:33 pm - Reply

Hello. Great tutorials. Don’t get a lot of tutorials outthere about FX. I have a school project to design anexam app for a school. I’ve been studying this tutorialfor 3 days now. Although haven’t really understood it. Ihave a problem with your codes in ypur Employee class:

empHireDateColumn.setCellValueFactory(cellData ->cellData.getValue().hireDateProperty());

throws this exception:

java: incompatible types: bad return type in lambdaexpression javafx.beans.property.SimpleObjectPropertycannot be converted tojavafx.beans.value.ObservableValue

although I won’t be needing that �eld but would love toget it right.Thanks

Onur Baskirt May 11, 2017 at 8:13 pm - Reply

Would you try below code, please?

empHireDateColumn.setCellFactory(cellData ->cellData.getValue().hireDateProperty());

Now, I don’t have Oracle DB on my PC so I cannottry this change. Please, try it, let me know theresult. I hope it will �x the problem.

Connel Evalsam Asikong May 12, 2017 at 3:19 pm - Reply

just wanted to �nd out too if you’ve got ayoutube handle

Connel Evalsam Asikong May 12, 2017 at 1:37 am - Reply

it doesn’t recognize the ‘getValue()’ method on it. Andit’s not giving me any good explanation. I’m using

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 29: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 29/34

MySql.

Onur Baskirt May 13, 2017 at 3:28 pm - Reply

This links may be helpful.http://stackover�ow.com/questions/2400955/how-to-store-java-date-to-mysql-datetimehttp://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversionhttp://stackover�ow.com/questions/32435096/mysql-date-format-in-javafx-tableviewhttp://stackover�ow.com/questions/25651641/javafx-mysql-connection-example-please

Dawit August 16, 2017 at 6:41 pm - Reply

Hi sir, your tutorial helped me a lot but i have aproblem with the menu’s, i added submenu ’employee’under the operation menu i have a problem of showingthe Employee form the menu is clicked can you pleasetell me how to solve this issue

Onur Baskirt August 17, 2017 at 11:51 pm - Reply

You should check your fxml �le. RootLayout ViewCode part

Svetlana August 28, 2017 at 8:08 pm - Reply

Hello. How to associate two tables in JavaFX in oneвиндов(тне same) so that when you click on one tableyou see lines of another table on an foreign key?

Onur Baskirt August 30, 2017 at 5:18 pm - Reply

Privet Svetlana, I did not tried that. But you can�nd a solution on google.

Svetlana August 29, 2017 at 12:32 am - Reply

I have 2 table vopros otvet. How to connect them?https://github.com/svil1502/Test_Exam27.git

Rizal September 3, 2017 at 1:23 pm - Reply

Halo Mr. Onur..Thank you for sharing a very usefularticle for us. There are things I want to ask aboutJAVAFX. Is Hibernate ORM applicable to JavaFXproperties? Or in other words, is the object in JavaFXproperties can be mapped to the database usingHibernate ORM? Or, is Hbernate only for ordinary javabeans (POJO), not for JavaFX Properties (JavaFX Beans)?.Thank you..

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 30: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 30/34

Onur Baskirt September 5, 2017 at 3:39 pm - Reply

I have not tried that but I found this article foryou. http://www.devx.com/Java/Article/48193Using Hibernate is a wise decision.

Sara September 5, 2017 at 7:45 am - Reply

Thank You so much. The best tutorial about JavaFX!

Onur Baskirt September 5, 2017 at 3:23 pm - Reply

You are welcome Sara 🙂

Oussama September 16, 2017 at 6:11 am - Reply

Thank you so much sir.Can you uploade the Employees.sql ?

Onur Baskirt September 16, 2017 at 5:29 pm - Reply

Please, check the �rst article.http://www.swtestacademy.com/getting-started-with-javafx/

Oussama September 19, 2017 at 3:39 am - Reply

Thank you sir. For your help.I didn’t got it

RAUF MOHAMMED September 29, 2017 at 4:14 am - Reply

THANKS SO MUCH. PLEASE HELP ME ADD EMPLOYEEIMAGE

Onur Baskirt September 30, 2017 at 2:24 am - Reply

Check here: http://fdegrelle.over-blog.com/article-992927.html

RAUF MOHAMMED October 4, 2017 at 11:48 pm - Reply

thank you very much for the prompt response. what iwanted is how to save the image in the database usingthe mvc as in you ably demonstrated in your example.please bear with me because i am new to javakind regards

Onur Baskirt October 5, 2017 at 1:40 pm - Reply

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 31: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 31/34

You should try to �nd a solution on the web. I didnot write saving an image to DB Code.Please check below links:https://stackover�ow.com/questions/15426714/mysql-blob-to-netbeans-jlabel/15599684#15599684https://www.javatpoint.com/storing-image-in-oracle-database

Tufan October 26, 2017 at 7:51 pm - Reply

Hello Onur,I am planning to develop an application with licensingin javaFX. But i am not sure how actually i need to do itwithout using a database and yet strong and secured.Can you please show me the right direction so that ican make my project no matter it is a hello worldalerting application but with a license with expiryperiod of 3, 6 months and 1 year.

Thank you in advance.

Onur Baskirt October 26, 2017 at 10:18 pm - Reply

I am not very professional on that but it is betterto write a license service (API) and connect yourJavaFX UI.https://developers.google.com/api-client-library/java/apis/licensing/v1License Server Example:https://alvinalexander.com/java/true-license-java-software-license-serverJAVA Trial Version Example:https://stackover�ow.com/questions/2769384/how-to-create-a-trial-version-of-a-java-programLicensing Module in Java:http://afewguyscoding.com/2012/02/licensing-module-java/

Dima January 2, 2018 at 5:12 pm - Reply

Just I ran across the article and reviews.As soon as the time comes, I will begin to study thisarticle in more detail.

What can I say right now – you, Onur Baskirt verysympathetic person. Everyone who asked for your help,received an answer.Only for that, I may say: – many thanks!

Onur Baskirt January 2, 2018 at 11:35 pm - Reply

Thank you, Dima. You are more sympathetic thanme. 🙂 you are welcome! I am also learning alot of things and I am also an ordinary humanfrom the planet earth. 🙂 By the way, you can

Join ourNewsletter!

Enter your email

Join

Categories

Agile Tutorials

DevOps Tutorials

InterviewQuestions

PerformanceTesting

GatlingTutorials

JMeterTutorials

ProgrammingTutorials

Java Tutorials

Security TestingTutorials

SoftwareConferences

Test Automation

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 32: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 32/34

also improve that code by using hibernate etc.Good luck!

Dima February 2, 2018 at 12:22 pm - Reply

So, had a time to inspect code and article in details.What i may say – Really Very useful! A lot of commentshelps a lot. A quite transparent and clean code.It help me a lot. Thank you for that!

But i have one question, and would be very thankfulwith tips.

I have a table where should be saved images as well weother string data.Say, table is Person and there are �elds:id(integer), name(string), image(blob)

So in Person class, id is an IntegerProperty, nameStringProperty and what about image?? There is noblob property or something like that (??)

Onur Baskirt February 2, 2018 at 11:28 pm - Reply

Thank you. I hope this answer addresses yourquestion.https://stackover�ow.com/questions/43685670/how-to-show-my-photo-from-mysql-in-javafx

Dima February 5, 2018 at 2:19 pm - Reply

Thank you. I have seen this post, andinvestigated it. A quite useful info there, buti still have spend around 3 hours to make itworking. have solved issue only when i havecreated a new test table with two �elds(one of then Blob) and made a direct “write”of image to database. As it turned out, issuewas in the FileInputStream object which i’vesent from one class to another.

Onur Baskirt February 5, 2018 at 3:46 pm - Reply

I am glad that you solved theproblem.

VM February 26, 2018 at 2:23 am - Reply

Hello Onur,

It is a really good tutorial and very useful to Me !Thank You very much for ther sharing.

Onur Baskirt February 26, 2018 at 9:34 am - Reply

Api Testing

CucumberTutorials

MobileAutomation

AppiumTutorials

EspressoTutorials

RobotFramework

Test Reporting

AllureReport

ExtentReports

TestingFrameworks

JUnitTutorials

TestNGTutorials

UI Automation

SeleniumTutorials

Visual Testing

Test Masters

Testing Tutorials

Tools andTechnologies

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Tag Cloud

agile(2)

algorithms(3)

allure(2)

appium(13)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 33: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 33/34

You are welcome. 🙂

Orange April 18, 2018 at 11:59 am - Reply

Why in EmployeeDAO class you giving Stringsparameters to methods?I think would be much convinient to give Employeeobject as parameter and then take his attributes byusing getters.

Onur Baskirt April 18, 2018 at 2:19 pm - Reply

Hi, I implemented in this way but you can also tryin your way. You can improve the code by alsousing hibernate or another ORM. This is just asimple example project. Thanks for your valuablecomment.

Mohan August 16, 2018 at 9:25 am - Reply

Problem occurred while inserting employeejava.sql.SQLRecoverableException: IO Error: TheNetwork Adapter could not establish the connectionany solution for these error

Onur Baskirt August 20, 2018 at 4:31 pm - Reply

It looks like a connection error. Network relatederror message has been given to you.

Thomas Schlicher February 5, 2019 at 10:40 pm - Reply

Hey Onur,

I have similarly set up a project like this except mytableView does not populate with any data. I am notsure which area I went wrong with, I am getting allnulls from inside the intialize method in the controllerclass when trying to set each cell…. I am assuming theString propertys are not getting data…

any advice would be greatly appreciated, I can sendcode sample, but it’s similar to what you have.

Thanks!

Onur Baskirt February 6, 2019 at 11:00 pm - Reply

Hi Thomas, nowadays I have some serious healthproblems. I can not focus on the site much. Isuggest you debug the problem. I think theremight be sth wrong when u are setting the data?Are u sure you are retrieving not null data? Did uput any breakpoints at those parts to evaluate

zed attack proxy(2)aws(3) azure(4)

capybara(2)

cucumber(5)

device farm(3)

docker(5)

elasticsearch(2)

espresso(2)

extent reports(3)

gatling(6) git(4)

github(2)

gitlab(3) java(15)

javafx(2)

javascript(4)

jenkins(8)

jmeter(12)

junit(14) karate(2)

locust(2) log4j(1)

logging(2)

mocha(1)

mockito(1)

node.js(2)

octopus deploy(2)

packer(1)

powershell(2)

rancher(1)

rest assured(3)

robot framework(2)

ruby(2)

selenium(66)

sonarqube(3)

testng(12)

testrail(3)

tesults(3)

vagrant(3)

wiremock(1)

zed attack proxy(2)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Search ...

Page 34: Database Operations in JavaFX€¦ · 12/26/2019 Database Operations in JavaFX  1/ 34 Database Operations in JavaFX Before star ted Database ...

12/26/2019 Database Operations in JavaFX

https://www.swtestacademy.com/database-operations-javafx/ 34/34

Name (required) Email (required) Website

each expression with IntelliJ? Today at work Ifaced a similar problem and I caught that problemin debug mode.

Bala July 27, 2019 at 7:25 pm - Reply

Please send database images display in javafx only sir

Onur Baskirt August 1, 2019 at 9:28 am - Reply

https://stackover�ow.com/questions/53342022/how-to-get-an-blob-from-database-and-display-it-like-an-image

Leave A Comment

Save my name, email, and website in this browser for the nexttime I comment.

Notify me of followup comments via e-mail.You can also subscribe without commenting.

This site uses Akismet to reduce spam. Learn how your commentdata is processed.

Comment...

POST COMMENT

zed attack proxy(2)

Recent Posts

How to InstallMongoDB onMacOS Catalina

MicroservicesTesting Strategies

Selenoid onGoogle Cloud

Selenium 4 –Chrome Dev ToolsSamples

Selenium 4Relative Locators |Friendly Locators

Copyright 2019 | All Rights Reserved | SW Test Academy


Recommended