<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent

    Vicent's blog
    隨筆 - 74, 文章 - 0, 評論 - 5, 引用 - 0
    數據加載中……

    hibernate調用mysql5.0存儲過程小記

    準備工作:
    1.hibernate3
    到這下載hibernate3:
    http://sourceforge.net/project/showfiles.phpgroup_id=40712&package_id=127784&release_id=403223
    2.mysql (注意一定要用mysql5.0和最新驅動)
    ?mysql官方網站http://www.mysql.com/

    1.建張表
    CREATE?TABLE?`proctest`?(
    ??`id`?
    int(11)?NOT?NULL?auto_increment,
    ??`Name`?
    varchar(20)?default?'''''',
    ??`age`?
    int(11)?default?NULL,
    ??`address`?
    varchar(50)?default?'',
    ??
    PRIMARY?KEY??(`id`)
    )?ENGINE
    =InnoDB?DEFAULT?CHARSET=gb2312;
    插入幾條記錄
    INSERT?INTO?`proctest`?VALUES?(1,'tom',22,'http://m.tkk7.com');
    INSERT?INTO?`proctest`?VALUES?(2,'wujun',25,'http://m.tkk7.com/wujun');
    INSERT?INTO?`proctest`?VALUES?(3,'jerry',30,'深圳');
    INSERT?INTO?`proctest`?VALUES?(4,'wujun',40,'南昌');
    創建存儲過程
    --這只是一個例子,就來個簡單存儲過程
    create?PROCEDURE?testProc()
    begin
    ???
    select?*?from?proctest;
    end;



    打開eclipce新建個java工程,記的把hiberbate3類庫也一起加進去..
    看下結構圖:


    1.新建UserVO.java文件

    package?net.wj.proc.vo;

    public?class?UserVO?{
    ????
    private?int?id;
    ????
    private?String?name;
    ????
    private?int?age;
    ????
    private?String?address;
    ????
    public?UserVO()
    ????
    {}
    順便把它相對應的配置文件也寫上。。
    UserVO.hbm.xml?

    <?xml?version="1.0"?encoding='UTF-8'?>
    <!DOCTYPE?hibernate-mapping?PUBLIC
    ????????????????????????????"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
    ????????????????????????????"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"?
    >

    <!--?DO?NOT?EDIT:?This?is?a?generated?file?that?is?synchronized?-->
    <!--?by?MyEclipse?Hibernate?tool?integration.???????????????????-->
    <!--?Created?Sat?Apr?22?17:08:56?CST?2006?????????????????????????-->
    <hibernate-mapping>

    ????
    <class?name="net.wj.proc.vo.UserVO"?table="proctest">
    ????????
    <id?name="id"?column="id">
    ????????????
    <generator?class="native"/>
    ????????
    </id>
    ????????
    ????????
    <property?name="name"?column="name"?type="string"?/>
    ????????
    <property?name="age"?column="age"?type="integer"?/>
    ????????
    <property?name="address"?column="address"?type="string"?/>

    ????
    </class>

    ????
    <!--sql查詢-->
    ?????
    <sql-query?name="select">
    ?????
    <![CDATA[select?{usr.*}?from?proctest?usr?]]>
    ?????
    <return?alias="usr"?class="net.wj.proc.vo.UserVO"?/>
    ?????
    </sql-query>

    ?????
    <!--調用存儲過程就在這里配了-->
    ????
    <sql-query?name="getUser"?callable="true">
    ?????
    <return?alias="user"?class="net.wj.proc.vo.UserVO">
    ?????
    ?????
    <return-property?name="id"?column="id"?/>
    ??????
    <return-property?name="name"?column="name"?/>
    ???????
    <return-property?name="age"?column="age"?/>
    ????????
    <return-property?name="address"?column="address"?/>
    ?????
    </return>
    ?????
    <!--這里就是我們剛剛創建的存儲過程名-->
    ?????{call?testProc()}
    ?????
    </sql-query>
    </hibernate-mapping>

    測試代碼
    package?net.wj.proc.test;


    import?java.util.List;

    import?org.hibernate.*;
    import?org.hibernate.cfg.*;
    import?net.wj.proc.vo.*;
    import?org.apache.log4j.*;


    public?class?ProcTest?{

    ????
    /**
    ?????*?
    @param?args
    ?????
    */

    ????Logger?log
    =Logger.getLogger(this.getClass());
    ????
    public?ProcTest()
    ????
    {}
    ????
    public?static?void?main(String[]?args)?{
    ????????System.out.print(
    "start.............................");
    ????????ProcTest?tt
    =new?ProcTest();
    ???????
    //?tt.LoadAll();
    ???????
    //?tt.ExampleSelect();
    ???????tt.ExampleProc();
    ????????
    ????}

    ????
    ????
    //得到Session,
    ????public?Session??getSession()
    ????
    {
    ????????
    try
    ????????
    {
    ????????????Configuration?cfg?
    =?new?Configuration().configure();
    ????????????SessionFactory?sf
    =cfg.buildSessionFactory();
    ????????????Session?ss
    =?sf.openSession();
    ????????????
    return?ss;

    ????????}

    ????????
    catch(Exception?ee)
    ????????
    {
    ????????????System.out.print(
    "失敗"+ee.getMessage());
    ????????????
    return?null;
    ????????}

    ??????
    ????}

    ????
    //這里調我們在UserVO.hbm.xml
    ????
    //sql-query?寫上的name屬性getUser
    ????public?void?ExampleProc()
    ????
    {
    ????????Session?ss
    =this.getSession();
    ????????List?li
    =ss.getNamedQuery("getUser").list();
    ????????
    for(int?i=0;i<li.size();i++)
    ????????
    {
    ????????????UserVO?vo
    =(UserVO)li.get(i);
    ????????????log.info(
    "name:"+vo.getName());
    ????????????log.info(
    "age"+vo.getAge());
    ????????????log.info(
    "address"+vo.getAddress());
    ????????}

    ????????ss.close();
    ????}

    ????
    //配置文件的sql查詢
    ????public?void?ExampleSelect()
    ????
    {
    ???????????Session?ss
    =this.getSession();
    ???????????List?li
    =?ss.getNamedQuery("select").list();
    ????????
    ???????????
    for(int?i=0;i<li.size();i++)
    ???????????
    {
    ????????????UserVO?vo
    =(UserVO)li.get(i);
    ????????????log.info(
    "name:"+vo.getName());
    ????????????log.info(
    "age"+vo.getAge());
    ????????????log.info(
    "address"+vo.getAddress());
    ???????????}

    ???????????ss.close();??
    ????}
    }


    記的用最新的驅動:
    要不然可能會報這個錯
    Exception?in?thread?"main"?org.hibernate.exception.GenericJDBCException:?could?not?execute?query
    ????at?org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:
    91)
    ????at?org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:
    79)
    ????at?org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:
    43)
    ????at?org.hibernate.loader.Loader.doList(Loader.java:
    2148)
    ????at?org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:
    2029)
    ????at?org.hibernate.loader.Loader.list(Loader.java:
    2024)
    ????at?org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:
    111)
    ????at?org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:
    1674)
    ????at?org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:
    147)
    ????at?org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:
    164)
    ????at?net.wj.proc.test.ProcTest.ExampleProc(ProcTest.java:
    45)
    ????at?net.wj.proc.test.ProcTest.main(ProcTest.java:
    22)
    Caused?by:?java.sql.SQLException:?Callable?statments?not?supported.
    ????at?com.mysql.jdbc.Connection.prepareCall(Connection.java:
    1278)
    ????at?org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:
    439)
    ????at?org.hibernate.jdbc.AbstractBatcher.prepareCallableQueryStatement(AbstractBatcher.java:
    115)
    ????at?org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:
    1557)
    ????at?org.hibernate.loader.Loader.doQuery(Loader.java:
    661)
    ????at?org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:
    224)
    ????at?org.hibernate.loader.Loader.doList(Loader.java:
    2145)
    ?????
    8?more
    09:38:18,837??INFO?SessionFactoryImpl:153?-?building?session?factory
    09:38:18,917??WARN?Configurator:126?-?No?configuration?found.?Configuring?ehcache?from?ehcache-failsafe.xml?found?in?the?classpath:?jar:file:/E:/lib/hibernate3/ehcache-1.1.jar!/ehcache-failsafe.xml
    09:38:21,951??INFO?SessionFactoryObjectFactory:82?-?Not?binding?factory?to?JNDI,?no?JNDI?name?configured
    Hibernate:?
    {call?testProc()}
    09:38:22,482??WARN?JDBCExceptionReporter:71?-?SQL?Error:?0,?SQLState:?S1C00
    09:38:22,482?ERROR?JDBCExceptionReporter:72?-?Callable?statments?not?supported.

    源代碼http://m.tkk7.com/Files/wujun/Proc.rar

    是不是挺簡單的.

    posted on 2006-08-22 10:55 Binary 閱讀(273) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲av丰满熟妇在线播放| 久久久久亚洲AV成人网人人软件| 亚洲国产精品久久66| 中文字幕不卡高清免费| 亚洲日韩中文在线精品第一| 一级毛片人与动免费观看| 亚洲AV永久无码精品一区二区国产 | 亚洲综合免费视频| 99在线在线视频免费视频观看| 亚洲伊人久久大香线蕉苏妲己| 一级成人a毛片免费播放| 亚洲视频网站在线观看| av无码免费一区二区三区| 亚洲五月综合网色九月色| 97视频热人人精品免费| 亚洲av无码无线在线观看| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲日本中文字幕区| 亚洲黄色免费网址| 亚洲色无码专区一区| 亚洲成AV人在线观看网址| 国产免费阿v精品视频网址| 亚洲综合成人网在线观看| 歪歪漫画在线观看官网免费阅读 | 亚洲人成网国产最新在线| 啊v在线免费观看| 国产色无码精品视频免费| 亚洲图片校园春色| 国产成人无码区免费A∨视频网站| 一本久久免费视频| 亚洲综合一区二区精品导航| 黄网址在线永久免费观看| 两个人看的www视频免费完整版| 亚洲精品91在线| 免费看小12萝裸体视频国产| a级毛片视频免费观看| 在线观看亚洲AV每日更新无码| 亚洲国产V高清在线观看| 猫咪免费人成网站在线观看| 在线播放亚洲精品| 久久精品蜜芽亚洲国产AV|