1

I want to ask how i connect second database in my program . First i tell you this is a inventry system . I want to get functionality that when i update the record in existing data base record also update into other databases. please checkout the code . I use this code for single database connection and for the update record . I create another button in my webpage . i need that when i click the second button record save in second database .

jdbc.driver=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
jdbc.driver2=com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.databaseurl=jdbc:mysql://localhost:3306/bvasdb?zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
jdbc.username=admin
jdbc.password=admin

<beans:property name="dataSource">
<beans:bean class="${jdbc.driver}">
  <beans:property name="url" value="${jdbc.databaseurl}" /> 
  <beans:property name="user" value="${jdbc.username}" /> 
  <beans:property name="password" value="${jdbc.password}" /> 
  </beans:bean>

@RequestMapping("partmaintenanceupdate")
    public ModelAndView partmaintenanceUpdate(@RequestParam("partmaintenancemode") String partmaintenancemode,
            @RequestParam("searchpartno") String searchpartno,
            @RequestParam("makemodelcodeselected") String makemodelcodeselected,
            @RequestParam("subcategoryselected") String subcategoryselected,
            @RequestParam("ordertypeselected") String ordertypeselected, Model map, HttpSession session,
            ModelAndView mav) {
        AppUser user = (AppUser) session.getAttribute("user");
        if (user == null) {
            throw new OrderNotFoundException();
        } else {
            LOGGER.info("#partmaintenanceupdate");
            if (subcategorylistdd.size() == 0) {
                subcategorylistdd = mainService.getAllSubCategory();
            }
            if (makemodellistdd.size() == 0) {
                makemodellistdd = mainService.getAllMakeModelMap();
            }
            if (ordertypelistdd.size() == 0) {
                ordertypelistdd = mainService.getAllOrderType();
            }

            partmaintenancemode = "update";

            parts.setPartno(request.getParameter("partno").trim().toUpperCase());
            parts.setInterchangeno(request.getParameter("interchangeno").trim().toUpperCase());
            parts.setYear(request.getParameter("year").trim());
            parts.setYearfrom(Integer.parseInt(request.getParameter("yearfrom").trim()));
            parts.setYearto(Integer.parseInt(request.getParameter("yearto").trim()));
            parts.setPartdescription(request.getParameter("partdescription").trim());
            parts.setActualprice(new BigDecimal(request.getParameter("actualprice").trim()));
            parts.setCostprice(new BigDecimal(request.getParameter("costprice").trim()));
            parts.setListprice(new BigDecimal(request.getParameter("listprice").trim()));
            parts.setWholesaleprice(new BigDecimal(request.getParameter("wholesaleprice").trim()));
            parts.setUnitsinstock(Integer.parseInt(request.getParameter("unitsinstock").trim()));
            parts.setUnitsonorder(Integer.parseInt(request.getParameter("unitsonorder").trim()));
            parts.setReorderlevel(Integer.parseInt(request.getParameter("reorderlevel").trim()));
            parts.setSafetyquantity(Integer.parseInt(request.getParameter("safetyquantity").trim()));
            parts.setKeystonenumber(request.getParameter("keystonenumber").trim());
            parts.setOemnumber(request.getParameter("oemnumber").trim());
            parts.setDpinumber(request.getParameter("dpinumber").trim());
            parts.setLocation(request.getParameter("location").trim());
            parts.setCapa(request.getParameter("capa").trim());
            parts.setMakemodelcode(makemodellistdd.get(request.getParameter("makemodelcodeselected").trim()));
            parts.setSubcategory(subcategorylistdd.get(request.getParameter("subcategoryselected").trim()));
            parts.setOrdertype(request.getParameter("ordertypeselected").trim());
            partsService.updatePartsMaintenance(parts);

            mav.clear();
            mav.setViewName("partmaintenancepage");
            mav.addObject("user", user);
            mav.addObject("branch", branch);
            mav.addObject("appcss", appcss);
            mav.addObject("sysdate", InsightUtils.getNewUSDate());
            mav.addObject("partmaintenancemode", partmaintenancemode);
            mav.addObject("subcategorylistdd", subcategorylistdd);
            mav.addObject("makemodellistdd", makemodellistdd);
            mav.addObject("ordertypelistdd", ordertypelistdd);
            mav.addObject("makemodelcodeselected", makemodelcodeselected);
            mav.addObject("subcategoryselected", subcategoryselected);
            mav.addObject("ordertypeselected", ordertypeselected);
            mav.addObject("searchpartno", searchpartno);
            mav.addObject("parts", parts);
            return mav;
        }
    }

@Transactional
    public void updatePartsMaintenance(Parts parts) {
        Session session = sessionFactory.getCurrentSession();
        session.saveOrUpdate(parts);

        // updateSubcategoryOnParts();
        // updateMakemodelOnParts();
        session.flush();
        session.clear();
    }

I create a button in my webpage . i need to update the data in second database only when i click the button .

minus
  • 2,646
  • 15
  • 18
Shoaib
  • 3
  • 5
  • Check this out... http://stackoverflow.com/questions/27614301/spring-boot-multiple-datasource – cody123 Mar 11 '17 at 02:38
  • This thread may help you http://stackoverflow.com/questions/30362546/how-to-use-2-or-more-databases-with-spring – vijayraj34 Mar 11 '17 at 07:06

2 Answers2

0

If you need more then one DB you need more then one HibernateSessionFactory.

You just create an hibernate factory for each DB with the relevant table mapping in each configuration.

minus
  • 2,646
  • 15
  • 18
0

Create Multiple Datasource beans and use @Qualifier while autowiring to select your desired connection.

Yogesh Prajapati
  • 4,770
  • 2
  • 36
  • 77