• Mybatis入门简版(二)


    一、Dao层开发的方式

    以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码。那么此时改成另外一种简单形式。

     

    遵循以下四个原则(名称、形参、返回值、命名空间):
    1.Mapper接口方法名和Mapper.xml中定义的每个statement(SQL语句)的id相同

     

    2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

     

    3Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

     

    4. Mapper.xml文件中的namespace与mapper接口的全路径名相同。(用来把用户的接口和用户的mapper文件对应好。仅靠ID可不行,也许用户和订单都有个相同ID的SQL)

     

     

     

    二、mappers(映射器)

    之前写过这个:

     

    但是当有很多Mapper映射文件的时候岂不是要复制写很多遍?

     

    Mapper配置的几种方法:

    <mapper resource=" " />

    使用相对于类路径的资源(现在的使用方式)

    如:<mapper resource="sqlmap/User.xml" />

     

    <package name=""/>

    注册指定包下的所有mapper接口

    如:<package name="cn.itcast.mybatis.mapper"/>

    注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中

     

    三、查询多条数据

     

     

    四、逆向工程

    使用逆向工程可以轻易的全自动生成POJO和mapper映射文件和接口等,大大的提高了开发效率

     

    把generatorSqlmapCustom这个工程Import进Eclipse。

     

    这是个工程,要根据我们的具体要求修改

    修改配置文件

    在generatorConfig.xml中配置Mapper生成的详细信息,如下图:

    注意修改以下几点:

    1. 修改要生成的数据库表(数据库,账号 密码 哪些表等)
    2. pojo文件所在包路径
    3. Mapper所在的包路径

     

     

    -------------------------------正式去生成------------------------------------------------------------------------

    找到里面src下的唯一的Java文件。运行

    然后刷新工程,惊喜地发现如下:

     

    生成mapper包,并且下面的映射文件和接口都写好了

    Pojo也都正好了

     

    最后提一下里面的XxxxExample.java文件的作用

     

    // 创建User对象扩展类,用户设置查询条件

            UserExample example = new UserExample();

            example.createCriteria().andUsernameLike("%%");

     

            // 查询数据

            List<User> list = userMapper.selectByExample(example);

     

    比如以上代码中example对象可以用来设置很多很多过滤条件 它有很多方法。

    example用于添加条件,相当where后面的部分 
    xxxExample example = new xxxExample(); 
    Criteria criteria = new Example().createCriteria();

     

    具体参考文章:MyBatis的Mapper接口以及Example的实例函数及详解(http://blog.csdn.net/biandous/article/details/65630783)

     

     

    注意:

    1. 逆向工程生成的代码只能做单表查询
    2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
    3. 一张表会生成4个文件

       

  • 相关阅读:
    麒麟短线王实战技法
    Silverlight的资源
    Windows Live SkyDrive, Windows Live Sync 和 Live Mesh
    Listview.Subitem.BackColor.ForeColor改变字体颜色和背景
    windows mobile控制面板程序
    Windows Azure百度百科
    wcf中如何Host多个WCF服务?
    强弱跟踪
    修改默认的HTTP Response Header
    DataTable 内部索引已损坏
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/9380944.html
Copyright © 2020-2023  润新知