数据访问进化简史,比较简单,不负责能跑起来
select address from user where name='test'
//若干操作
String sql="select address from user where name='"+name+"'";
//执行
//解析结果
//包括若干个try catch
解决了java到数据库的访问,但是存在大量的复制代码,并且异常需要自己处理
<!--大量的XML定义文件-->
<select id="queryAddressByName" parameterType="String" resultType="String">
select address from user where name=#{name}
</select>
Class UserDao{
//大量的常量定义
final static private String QUERY_ADDRESS_BY_NAME= getClass()+"queryAddressByName";
String queryAddressByName(final String name){
final String address=sqlMapper.selectforObject(QUERY_ADDRESS_BY_NAME, name);
return address;
}
}
主要优势
- sql和java代码分离
- 不需要关注数据库连接和关闭
- 不需要关注数据获取方式
主要不足
- 大量的xml及后续管理问题
- 会看到大量的final static String QUERY_ADDRESS_BY_NAME= getClass()+"queryAddressByName"这样的sqlmapper名字
Mybatis 3.0通过引入注解,解决了上述不足
@Select等注解减少XML文件
@repository注解使用接口减少常量定义
@repository
interface UserMapper{
String queryAddressByName(String name);
}
<select id="queryAddressByName" parameterType="String" resultType="String">
select address from user where name=#{name}
</select>
此接口可以通过访问2.0的xml
并且spring的整合直接访问,使用方法名关联,不需要实现类
调用代码
Class UserDao{
@autowired
private userMapper mapper;
String queryAddressByName(final String name){
final String address=mapper.queryAddressByName(name);
return address;
}
}
主要改进:
- 2.0中大量的常量字符串被使用函数名称代替
- 与2.0原有xml资源能平稳过渡
@repository
interface userMapper{
@select("select address from user where name=#{name}")
String queryAddressByName(String name)
}
使用annotation方式下不需要产生xml,调用代码不变
对于同一个mapper接口来说可以混用xml和annotation方式
参数上的annotation
@repository
interface userMapper{
@select("select address from user where name=#{name} and gender=#{gender}"
String queryAddressByName(@param(value="name" String name, @param(value="gender") String gender)
}
参数annotation还可以和xml混搭
@repository
interface userMapper{
String queryAddressByNameAndGender(@param(value="name" String name, @param(value="gender") String gender);
}
<select id="queryAddressByNameAndGender" resultType="String">
select address from user where name=#{name} and gender=#{gender}
</select>
主要改进;
- 减少xml,减少了java到xml的映射,目前的IDE上java用起来还是要比xml友好
- 通过接口访问而不是类似2.0中字符串指定sqlmapper名,看不到一堆常量String
- 通过在mapper接口参数上的@param可以输入多个参数,减少模糊化的hashmap使用,让接口定义更加精确
分享到:
相关推荐
mybatis3.0配置,sql语句查询,编写,怎么使用都有
mybatis3.0官方中文文档: 网页版、内容非常详细、还有对应jar包介绍
Spring3.0+myBatis3.0
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程...MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
这个是基于Spring的一个小例子 , 主要是为了帮助大家学习SpringSecurity和SpringMvc 和Mybatis3.0 1.SS不用再数据库建表 2.使用了SS提供的登录方式,在输入用户名和密码时,访问到服务器后台 3.判断如果是用户名是...
spring3.0+struts2+mybatis3.0整合 增,删,查,改,like查询
Struts2+Spring3.0+MyBatis3.0
刚写的springmvc4.0+mybatis3.0整合+log4j.rar
很好的Mybatis3.0开发指南,本人花了一天就弄懂了七分左右 蛮有用的
mybatis3.0基础操作可以帮助新手更快的完成入门学习,希望对大家有帮助
mybatis 3.0
sppring4.2,mybatis3.0,jboss
spring3.0+,经典版本,完整架包,包含spring+json+gson+mysql,整理不易,请大家下载后好好使用,有什么欠缺,大家可以回复我。
SpringMVC4.0+MYBATIS3.0增删改查 用的是oracle数据库 数据看配置文件自己配置一下 表名SM_USER 列ID,NAME.PASSWORD 一定要匹配正确 否则报错
struts2+spring3.1+mybatis3.0框架整合
这个是SpringBoot2.0注解方式整合mybatis3.0整合redis,整合lombok,内含redis工具类,可直接使用。数据库就最简单的user表,新建下就行
mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统,里面有搜索提示功能,导入导出excel文件,ajax异步刷新,拦截器控制,freemarker等,表关系很复杂,特附上表关系图
1、基于MyBatis.NET3.0源代码进行优化改进 2、配合代码生成器使用,简化至少30%的代码编写 3、通过修改源码扩展了一些常用数据访问方法。
用mybatis实现增删改查功能,其中的配置文件希望可以提供大家参考