如果使用的方式开发DAO,但是这样存在以下问题:
原始DAO存在的问题
-Dao方法体存在重复代码:每个方法都要通过SqlSessionFactory创建SqlSession:
SqlSession session = sqlSessionFactory.openSession();
- 通过session调用数据库操作方法时需要指定id,这里存在硬编码,不得于后期的开发维护:
session.insert(“com.mybatis.mapping.userMapper.insertUser”, user);
Mapper动态代理方式
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类的方法体类似。
Mapper接口开发需要遵循以下规范:
1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。
2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
根据以上规范:
一、首先将所需jar包复制新建的lib文件夹下,全选之后buildpath
二、新建一个Source Folder 用于存放配置文件,这样使工程显得更加简洁明了
三、在src下创建根包一般是三层,采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
四、将所需配置文件复制到config下:其中db.properties为数据库连接相关的参数的配置文件
log4j.properties为日志相关的配置文件、SqlMapConfig.xml为mybatis的核心配置文件
五、修改数据的链接数据
在mysql创建数据库的时候指定字符集,防止乱码
六、将数据导入数据库,生成两张表
七、SqlMapConfig.xml配置文件的修改
1、导入数据库相关链接的参数
2、配置pojo别名
3、数据库链接的配置
4、加载mapper配置文件
八、添加一个测试包:
最后呈现的工程目录如下:
UserMapper.xml中
SqlMapConfig.xml中
UserMapper.java中
测试:
测试结果如下:
根据id查询:
根据用户名模糊查询:
增加用户:
更新用户:
数据库查看
------>
删除用户:
数据库查看:
------>