<prompt> Tengeneza programu ya Java inayoingiliana na hifadhidata ya Cassandra ili kuhifadhi na kurejesha maelezo ya mtumiaji kama vile jina la mtumiaji, barua pepe na tarehe ya kuzaliwa. Programu inapaswa kutoa mbinu za kuongeza watumiaji wapya, kusasisha taarifa zilizopo za mtumiaji, na kutafuta watumiaji kwa jina la mtumiaji au barua pepe.PLINFORMAT  <response>: agiza com.datastax.driver.core.Cluster;agiza com.datastax.driver.core.ResultSet;agiza com.datastax.driver.core.Row;agiza com.datastax.driver.core.Session;Hifadhi ya Mtumiaji ya darasa la umma nguzo binafsi ya Nguzo; kikao cha Kikao cha faragha; Public UserRepositoryString contactPoint, String keyspace unganisha contactPoint, keyspace; muunganisho wa utupu wa faragha String contactPoint, String keyspace nguzo Cluster.builder.addContactPointcontactPoint.build; kikao cluster.connectkeyspace; utupu wa umma close kikao.funga; cluster.close; public void addUserjina la mtumiaji la kamba, Barua pepe ya kamba, String dateOfBirth String query INGIZA KWA watumiaji jina la mtumiaji, barua pepe, tarehe_ya_kuzaliwa THAMANI jina la mtumiaji , barua pepe , dateOfBirth ; session.executeswali; sasisho la utupu la ummaMtumiajijina la mtumiaji la kamba, Barua pepe mpya ya Kamba, Kamba mpyaDateOfBirth String query UPDATE watumiaji SET email newEmail , date_of_birth newDateOfBirth WHERE username username ; session.executeswali; public Row findUserByUsernamejina la mtumiaji la kamba Hoja ya kamba CHAGUA KUTOKA KWA watumiaji WAPI jina la mtumiaji jina la mtumiaji ; ResultSet resultSet session.executequery; rudisha matokeoSet.one; public Row findUserByEmailbarua pepe ya kamba Hoja ya kamba CHAGUA KUTOKA KWA watumiaji WAPI barua pepe barua pepe ; ResultSet resultSet session.executequery; rudisha matokeoSet.one; darasa kuu la umma utupu tuli wa umma String args UserRepository userRepository new UserRepository127.0.0.1, user_keyspace; Ongeza mtumiaji mpya userRepository.addUserjohn_doe, 1990-01-01; Sasisha mtumiaji aliyepo userRepository.updateUserjohn_doe, 1990-02-02; Tafuta mtumiaji kwa jina la mtumiaji Safu ya mtumiajiByUsername userRepository.findUserByUsernamejohn_doe; System.out.printlnKupatikana kwa mtumiaji kwa jina la mtumiaji: userByUsername; Tafuta mtumiaji kwa barua pepe Safu ya mtumiajiByEmail System.out.printlnImepatikana mtumiaji kwa barua pepe: userByEmail; userRepository.close; 