<prompt> Andika mpango wa Java unaounganishwa na hifadhidata ya PostgreSQL, upate data kutoka kwa jedwali linaloitwa wafanyakazi, kukokotoa jumla ya mishahara inayolipwa kwa kila idara, na kutoa ripoti ya CSV yenye safu wima za jina la idara na jumla ya mshahara.  <response>: Ili kuunda programu ya Java inayounganishwa na hifadhidata ya PostgreSQL, kupata data kutoka kwa jedwali linaloitwa wafanyakazi, kukokotoa jumla ya mishahara inayolipwa kwa kila idara, na kutoa ripoti ya CSV yenye safu wima za jina la idara na jumla ya mshahara, fuata hatua hizi:1. Kwanza, hakikisha kuwa una kiendeshi cha PostgreSQL JDBC katika njia ya darasa la mradi wako. Unaweza kuipakua kutoka hapa au uiongeze kama tegemezi kwa kutumia Maven au Gradle.2. Unda faili mpya ya Java inayoitwa SalaryReportGenerator.java na uongeze nambari ifuatayo: javaagiza java.io.FileWriter;agiza java.io.IOException;kuagiza java.sql.Connection;agiza java.sql.DriverManager;agiza java.sql.ResultSet;agiza java.sql.SQLException;agiza java.sql.Statement;agiza java.util.HashMap;agiza java.util.Map;darasa la umma SalaryReportGenerator utupu tuli wa umma String args Url ya kamba jdbc:postgresql:localhost:5432name_ya_database_yako; Mtumiaji wa kamba jina_lako; Nenosiri la kamba nenosiri_lako; jaribu Muunganisho wa muunganisho DriverManager.getConnectionurl, mtumiaji, nenosiri Ramani departmentMishahara getDepartmentSalariesconnection; kuzalishaCSVRreportidaraMishahara; catch SQLException e System.err.printlnHitilafu ya kuunganisha kwenye hifadhidata: e.getMessage; Ramani tuli ya faragha getDepartmentSalariesConnection connection hutupa SQLException Swali la kamba CHAGUA idara, SUMmshahara KUTOKA kwa wafanyakazi KUNDI KWA idara; Ramani departmentMishahara HashMap mpya; jaribu Taarifa ya taarifa connection.createStatement; ResultSet resultSet statement.executeQueryswali wakati resultSet.next Idara ya kamba resultSet.getString1; mara mbili ya jumlaMshahara resultSet.getDouble2; idaraMishahara.wekaidara, jumla ya Mshahara; idara ya kurudi Mishahara; private static void generateCSVReportRamani departmentMishahara String fileName department_salaries.csv; jaribu FileWriter fileWriter FileWriter mpyafileName fileWriter.writeIdara,Jumla ya Mshaharan; kwa Map.Entry ingizo : departmentSalaries.entrySet fileWriter.writeentry.getKey , entry.getValue n; System.out.printlnRipoti ya CSV imetolewa kwa mafanikio: fileName; kukamata IOException e System.err.printlnHitilafu katika kuzalisha ripoti ya CSV: e.getMessage; 3. Badilisha jina_la_data_yako, jina_la_la_la_la_lako, na nenosiri_lako kwa thamani zinazofaa kwa hifadhidata yako ya PostgreSQL.4. Tekeleza programu, na itazalisha ripoti ya CSV iitwayo department_salaries.csv katika saraka ya msingi ya mradi iliyo na jumla ya mshahara unaolipwa kwa kila idara.Kumbuka kuwa nambari hii inadhania kuwa una jedwali la wafanyakazi na safu wima idara na mshahara. Hakikisha umerekebisha hoja na majina ya safu kama inahitajika. 