`

iBatis学习

 
阅读更多

       今天根据项目的需要学习了IBatis,直到今天之前都不知道这东西是什么鬼,然后网上学习了这个,发现这个还是不难的,好像还有些好用,这个不多做介绍,网上的学习是根据如下网站来学习的:

iBatis简单入门教程 - 优秀小菜 - 博客园  http://www.cnblogs.com/youxiuxiaocai/p/3386397.html

    这个这里就不多说了,主要是今天遇到了一些问题来说说:

    插入数据的时候根据网上提供的方法插入主键会报错:在Student.xml中的addStudent中的添加主键内容:

<insert id="addStudent" parameterClass="Student">
        insert into
        Student(id,name,birth,score) values
        (#id#,#name#,#birth#,#score#);
     <!--   
               这里是默认生成id的,但是这样用会报错,直接注释了,还有注释不能含有两个减号
     <selectKey resultClass="int" keyProperty="id">
            select @@identity as inserted
             </selectKey>
       -->          
            <!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->
            <!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->
            <!-- mssql:select @@IDENTITY as value -->
            <!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->
            <!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成 (pre-generate)主键的,如Oracle和PostgreSQL。 
                有些是事后生成(post-generate)主键的,如MySQL和SQL Server 所以如果是Oracle数据库,则需要将selectKey写在insert之前 -->
       
    </insert>

     文中用的是mysql数据库,然后用例中用的是select @@IDENTITY as value,这个运行的时候报错,然后改成第一个SELECT LAST_INSERT_ID() AS VALUE的时候可以插入一个数据,第二次插入就会报错。

   假如把这个去掉收到插入,即把id放入Student中的时候可以插入数据,但是测试的时候输出object的返回值为null。这是遇到的问题。

       

分享到:
评论
1 楼 梳子不爱头发 2017-08-10  
把包上传是个好习惯

相关推荐

Global site tag (gtag.js) - Google Analytics