休眠无法打开连接问题

时间:2019-07-26 08:12:41

标签: hibernate

我具有以下hibernate-cfg.xml用户名和密码,并且URL仍然正确,但我仍收到以下问题

  

org.hibernate.exception.GenericJDBCException:无法打开连接

有人可以帮我吗?

我已经更改了本地主机中提到的IP地址,只是为了检查输入的IP是否错误还是仍然存在问题

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <!--   <property name="connection.url">jdbc:oracle:thin:@localhost:1596:OICICM_ERP_CONNECTION</property> -->
        <property name="connection.url">jdbc:oracle:thin:@192.168.5.152:1596:1596:XE</property>
        <property name="connection.username">XXOIC_ICM</property>
        <property name="connection.password">OICicm123</property>
        <property name="connection.pool_size">1</property>
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="show_sql">true</property>
        <property name="current_session_context_class">thread</property>
    </session-factory>
</hibernate-configuration>

代码:

@RequestMapping(value="/getPOdata",produces="application/json") 
    public JSONArray getPOData(String ORDER_NUMBER,String ORG_ID,String REQUESTED_PART_NO) throws JSONException
    {
        @SuppressWarnings("deprecation")
        SessionFactory factory = new Configuration()
        .configure("/hibernate.cfg.xml")
        .addAnnotatedClass(LaurenSoapModel.class)
        .buildSessionFactory();
        System.out.println("calling getinfo");
        //List <Object[]> userIdLst =null;

        String queryTxt = null;
        String pattern = "yyyy-MM-dd";

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

        JSONArray jarry = new JSONArray();
    /*  
        String queryTxt = null; 
        queryTxt = "select * from WFCONFIG.WIDGET_TEST";
        Query qry = entityManager.createNativeQuery(queryTxt);*/

        Session session = factory.getCurrentSession();

        session.beginTransaction();
        Query query = null; 
        //queryTxt = "Select productBase.name,productBase.referenceNo from DUMMY.dbo.LaurenCaseData productBase where productBase.status=:productName";;
        //queryTxt = "select * from WFCONFIG.WIDGET_TEST";
        query = "SELECT * FROM XXOIC_ICM_POMASTER_V WHERE ORDER_NUMBER="+ORDER_NUMBER+" AND ORG_ID="+ORG_ID+" AND REQUESTED_PART_NO="+REQUESTED_PART_NO+"";
        query = (Query)session.createSQLQuery(queryTxt);

        List <Object[]> userIdLst = query.list();

        if (null != userIdLst) {
            for (Object object[] : userIdLst) {
                JSONObject jobj = new JSONObject();
                jobj.put("ORG_ID",object[0]);
                jobj.put("ORDER_DATE",simpleDateFormat.format(object[1]));
                jobj.put("SUPPLIER_NAME",object[2]);
                jobj.put("SUPPLIER_SITE_CODE",object[3]);
                jobj.put("VENDOR_ID",object[4]);
                jobj.put("ORDER_TYPE",object[5]);
                jobj.put("TRANSPORT_MODEE",object[6]);
                jobj.put("ORDER_NUMBER",object[7]);
                jobj.put("REQUESTED_PART_NO",object[8]);
                jobj.put("PART_DESCRIPTION",object[9]);
                jobj.put("LOCATOR",object[10]);
                jobj.put("ORDER_QTY",object[11]);
                jobj.put("ORDERED_BY",object[12]);
                jobj.put("ORDERED_BY_ID",object[13]);
                jobj.put("ORDER_REFERENCE",object[14]);
                jobj.put("SUPPLIER_PO_REFERENCE",object[15]);
                jobj.put("ASE_ORDER_REFERENCE",object[16]);
                jobj.put("DIP_BIR_NO",object[17]);
                jarry.put(jobj);
            }
            System.out.println(jarry);          
        }   

        return jarry;
    }

1 个答案:

答案 0 :(得分:0)

首先将 <style name="AppTheme.ShowActivity" > <item name="android:windowSharedElementsUseOverlay">false</item> <item name="android:windowContentTransitions">true</item> <item name="android:windowActivityTransitions">true</item> <!-- optional <item name="android:windowAllowEnterTransitionOverlap">true</item> <item name="android:windowAllowReturnTransitionOverlap">true</item>--> <item name="android:windowSharedElementEnterTransition">@transition/activityshow_se_enter_transition</item> <item name="android:windowSharedElementReturnTransition">@transition/activityshow_se_return_transition</item> <item name="android:windowEnterTransition">@transition/activityshow_enter_transition</item> <item name="android:windowReturnTransition">@transition/activityshow_return_transition</item> </style> final Pair[] pair = new Pair[4]; pair[0] = new Pair(((rvViewHolder)viewHolder).cvHolder,"cardview transition"); pair[1] = new Pair(((rvViewHolder)viewHolder).ivImage, "image transition"); pair[2] = new Pair(((rvViewHolder)viewHolder).bottomAppBar, "bar transition"); pair[3] = new Pair(((rvViewHolder)viewHolder).fab, "fab transition"); final CardView holderBg = (((rvViewHolder)viewHolder).cvHolder); ((rvViewHolder)viewHolder).setHolderClickListener(new HolderClickListener() { @Override public void holderClicked(View v, int position) { Intent i = new Intent(context, ShowActivity.class); i.putExtra("ObjectPosition", position); i.putExtra("clickedObj", (Serializable) dataList.get(position)); ActivityOptionsCompat options; options = ActivityOptionsCompat.makeSceneTransitionAnimation( (Activity) context, pair); context.startActivity(i, options.toBundle()); } } }); 更改为getCurrentSession()

之后,您可以正确编写查询。代替查询,使用

openSession()