数据访问进化简史,比较简单,不负责能跑起来
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使用,让接口定义更加精确
分享到:
相关推荐
整合这三个框架的目的是实现数据访问、业务逻辑和用户界面的解耦,提高代码的可复用性和可测试性。具体步骤如下: 1. **配置Struts2**:在web.xml中配置Struts2的核心过滤器,设置Action的默认结果类型等。 2. **...
这种集成方式简化了传统MyBatis的配置,使得Spring Boot应用可以更快速地实现数据访问功能。 总结一下,Spring Boot集成MyBatis的主要步骤包括: 1. 添加MyBatis Starter依赖。 2. 配置数据源。 3. 可选:创建...
数据源是数据库连接的载体,SqlSessionFactory是Mybatis的核心对象,用于创建SqlSession,而MapperScannerConfigurer则是扫描项目中的Mapper接口,自动将它们与XML配置文件对应起来。 1. 数据源配置: 在Spring...
当我们需要在Spring Boot项目中整合MyBatis时,可以实现高效且灵活的数据访问。 首先,我们要理解Spring Boot的核心特性之一是自动配置。在整合MyBatis时,Spring Boot会自动配置MyBatis的相关组件,如...
SpringBoot和Mybatis是两个非常流行的Java开发框架,...通过运行该项目,你可以看到如何在SpringBoot应用中优雅地使用Mybatis进行数据访问。这个集成方案降低了项目的复杂性,同时也保持了代码的可读性和可维护性。
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...
- **数据映射器类**:通常情况下,我们会定义一个接口作为数据映射器,然后使用 `MapperFactoryBean` 来注入该接口的实现。示例如下: 假设有一个名为 `UserMapper` 的映射器接口: ```java public interface ...
Spring 3.0提供了对多种数据访问技术的集成,包括JDBC、Hibernate、MyBatis等ORM框架,使得数据库操作更加简单和灵活。此外,Spring的事务管理功能可以在不同数据访问技术之间提供一致的事务策略。 5. **批注驱动...
Spring Boot以其简洁的配置和自动配置特性,极大地简化了Java应用程序的开发过程。MyBatis则是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,使得数据库操作变得简单易行。下面,我们将逐步介绍...
在Java Web开发中,Spring和MyBatis是两个非常重要的框架。Spring是一个全面的后端...在实际开发中,还可以根据需求进一步优化,如使用Spring Boot简化配置,或者使用MyBatis的Mapper XML文件来定制更复杂的SQL语句。
将Mybatis与Oracle结合,可以创建高效、灵活的数据访问应用。下面将详细阐述如何在Java项目中使用Mybatis来连接和操作Oracle数据库。 1. **Mybatis简介**: Mybatis 是一个基于Java的持久层框架,它解决了Java对象...
这样,你已经成功地在SpringBoot 2.0.2.RELEASE项目中集成了Mybatis并通过XML方式定义了数据访问操作。接下来,你可以在服务类中注入Mapper接口,使用注解`@Autowired`,并通过Mapper方法进行数据库查询。 例如,...
在IDE中运行项目,通过单元测试或浏览器访问接口进行测试,验证Spring和MyBatis的集成是否正常工作。 通过以上步骤,你已经成功地在Spring环境中搭建了MyBatis框架,并实现了基本的CRUD操作。这只是一个简单的示例...
在这个项目中,我们利用Struts2作为表现层框架,Spring3.0作为控制层和持久层的管理工具,而Mybatis则作为数据访问层的实现。现在,我们将深入探讨这三大框架的注解开发方式。 **Struts2框架注解** Struts2是基于...
例如,如果项目中包含`CURD_baomidou-master`这个文件,这可能意味着已经引入了MyBatis Plus,那么在Mapper接口和XML文件中就可以直接使用它的注解来进行更加简便的操作,如自动插入、更新、删除等。 总的来说,...
而Mybatis作为一款轻量级的持久层框架,以其灵活的数据访问机制和强大的映射功能,成为了许多开发者的选择。本教程将详细介绍如何在Spring Boot项目中集成Mybatis,以实现高效的数据操作。 首先,我们需要理解...
在本教程中,我们将深入探讨如何使用Spring Boot与MyBatis框架集成来实现一个登录功能。Spring Boot简化了Spring应用程序的开发过程,而MyBatis则是一个轻量级的持久层框架,它允许开发者直接编写SQL,使得数据库...
MyBatis可以使用简单的XML或注解来进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 #### 三、Spring框架简介 Spring框架是用于构建企业级Java应用程序的...