- 浏览: 188574 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
1. MyBatis3注解的动态SQL
@InsertProvider @UpdateProvider @DeleteProvider @SelectProvider 新建MyBatisPro04项目
package com.andrew.mappers; import java.util.Map; import org.apache.ibatis.jdbc.SQL; import com.andrew.model.Student; public class StudentDynaSqlProvider { public String insertStudent(final Student student) { return new SQL() { { INSERT_INTO("t_student"); if (student.getName() != null) { VALUES("name", "#{name}"); } if (student.getAge() != null) { VALUES("age", "#{age}"); } } }.toString(); } public String updateStudent(final Student student) { return new SQL() { { UPDATE("t_student"); if (student.getName() != null) { SET("name=#{name}"); } if (student.getAge() != null) { SET("age=#{age}"); } WHERE("id=#{id}"); } }.toString(); } public String deleteStudent(){ return new SQL() { { DELETE_FROM("t_student"); WHERE("id=#{id}"); } }.toString(); } public String getStudentById() { return new SQL() { { SELECT("*"); FROM("t_student"); WHERE("id=#{id}"); } }.toString(); } public String findStudents(final Map<String,Object> map) { return new SQL() { { SELECT("*"); FROM("t_student"); StringBuffer sb = new StringBuffer(); if (map.get("name") != null) { sb.append(" and name like '"+map.get("name")+"'"); } if (map.get("age") != null) { sb.append(" and age="+map.get("age")); } if (!sb.toString().equals("")) { WHERE(sb.toString().replaceFirst("and", "")); } } }.toString(); } }
package com.andrew.mappers; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.DeleteProvider; import org.apache.ibatis.annotations.InsertProvider; import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.UpdateProvider; import com.andrew.model.Student; public interface StudentMapper { @InsertProvider(type=StudentDynaSqlProvider.class,method="insertStudent") public int insertStudent(Student student); @UpdateProvider(type=StudentDynaSqlProvider.class,method="updateStudent") public int updateStudent(Student student); @DeleteProvider(type=StudentDynaSqlProvider.class,method="deleteStudent") public int deleteStudent(int id); @SelectProvider(type=StudentDynaSqlProvider.class,method="getStudentById") public Student getStudentById(Integer id); @SelectProvider(type=StudentDynaSqlProvider.class,method="findStudents") public List<Student> findStudents(Map<String,Object> map); }
package com.andrew.service; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.andrew.mappers.StudentMapper; import com.andrew.model.Student; import com.andrew.util.SqlSessionFactoryUtil; public class StudentTest { private SqlSession sqlSession = null; private StudentMapper studentMapper = null; @Before public void setUp() throws Exception { sqlSession = SqlSessionFactoryUtil.openSession(); studentMapper = sqlSession.getMapper(StudentMapper.class); } @After public void tearDown() throws Exception { sqlSession.close(); } @Test public void testInsert() { Student student = new Student("琪琪",11); studentMapper.insertStudent(student); sqlSession.commit(); } @Test public void testUpdate() { Student student = new Student(17, "琪琪2", 12); studentMapper.updateStudent(student); sqlSession.commit(); } @Test public void testDelete() { studentMapper.deleteStudent(17); sqlSession.commit(); } @Test public void testGetById() { Student student = studentMapper.getStudentById(14); System.out.println(student); } @Test public void testFindStudents() { Map<String,Object> map = new HashMap<String,Object>(); map.put("name", "%赵%"); map.put("age", 22); List<Student> studentList = studentMapper.findStudents(map); for (Student student : studentList) { System.out.println(student); } } }
发表评论
-
MyBatis3注解的关系映射
2018-12-14 08:32 4731. MyBatis3注解的关系映射 1) 一对 ... -
MyBatis3使用注解配置SQL映射器
2018-12-14 08:32 5021. MyBatis3使用注解配置SQL映射器 新建My ... -
MyBatis3缓存与分页
2018-12-13 08:40 5171. MyBatis3缓存 Mybatis默认情况下,M ... -
MyBatis3文件类型与多个参数传入
2018-12-13 08:40 4411. MyBatis3处理CLOB、BLOB类型数据 在 ... -
MyBatis3动态SQL
2018-12-13 08:39 4571. MyBatis3动态SQL 1. if 条件 ... -
MyBatis3一对多关系映射
2018-12-13 08:39 4891. MyBatis3关系映射,一对多关系 创建t_gr ... -
MyBatis3一对一关系映射
2018-12-13 08:39 3891. MyBatis3关系映射,一对一关系 创建t_ad ... -
MyBatis3使用xml配置sql映射器
2018-12-12 09:31 5571. MyBatis3使用xml配置sql映射器 1) ... -
MyBatis3配置
2018-12-12 09:21 4761. MyBatis3配置说明 1. environme ... -
MyBatis3实现
2018-12-12 09:06 4941. MyBatis3实现 官方网站:http:// ...
相关推荐
总结来说,MyBatis注解配置提供了一种简洁的SQL映射方式,而动态SQL功能则极大地增强了查询的灵活性。在开发过程中,熟练掌握这两点,可以提升开发效率,同时使代码更加易于理解和维护。通过实践项目"MyBatisPro12...
Mybatis基于注解实现多表查询功能 Mybatis基于注解实现多表查询功能是指使用Mybatis框架中的注解来实现多表查询的功能。这种方法可以简化配置,提高开发效率。下面我们将详细介绍如何使用Mybatis基于注解实现多表...
动态 SQL 在 MyBatis 中主要通过 XML 映射文件或者注解来实现。在 XML 映射文件中,我们可以使用 `<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<foreach>` 等标签来构建动态 SQL。这些标签可以让我们...
在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...
【Mybatis+注解轻松实现脱敏】是一个针对Java开发工程师的实用技术,旨在帮助他们在处理敏感数据时,如身份证号、手机号等信息,进行数据脱敏和加密。这一技术结合了MyBatis插件和注解的方式,使得数据脱敏过程变得...
`demo.zip`中的内容可能是解决这个问题的一种方案,它提供了一种在MyBatis注解中进行SQL语句拼接的方法。 首先,让我们深入理解MyBatis注解的基础知识。MyBatis的注解主要分为以下几种: 1. `@Select`:用于标记一...
MyBatis是一款强大的Java持久层框架,它允许开发者将SQL语句直接写在XML映射文件或注解中,提供了灵活的数据库交互方式。在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是...
本文将深入探讨如何在MyBatis中使用注解来编写SQL语句,通过一个简单的例子来阐述其核心概念和步骤。 首先,我们需要理解MyBatis中的注解是如何工作的。MyBatis允许我们在接口的方法上使用注解来直接定义SQL语句,...
这些方法与数据库表的字段相对应,当实体类的Service调用这些方法时,MyBatis会根据注解动态生成并执行SQL语句。 文件名"baseproject"可能代表了项目的基线或基础结构,其中可能包含了整合SpringBoot和MyBatis所需...
通过这个简单的MyBatis注解案例,我们可以了解到如何利用MyBatis进行基本的数据库操作,包括选择性地使用注解替代XML配置,以及如何在Spring框架下集成MyBatis。在实际项目中,还可以结合MyBatis的其他特性,如结果...
Mybatis的注解支持动态SQL,可以使用`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签。例如,动态判断是否更新密码: ```java @Update({ "update sys_user", "!= null'>", "set password=#{password}", ...
总结来说,Spring MVC与MyBatis的整合使得我们能够充分利用两者的优势:Spring MVC提供了强大的MVC架构和依赖注入,而MyBatis的注解模式则简化了SQL映射。通过这种方式,开发者可以更专注于业务逻辑,提高开发效率和...
- 注解方式并不适用于所有场景,比如复杂的动态SQL,这时仍然需要借助XML文件。 通过以上介绍,我们可以看出MyBatis的注解方式大大提高了开发效率,使CRUD操作变得更加直观和简洁。在实际开发中,开发者可以根据...
3. **动态SQL修改**:MyBatis的动态SQL功能允许我们根据参数动态地构建SQL语句。例如,我们可以根据传入的参数来决定是否在WHERE子句中添加LIKE条件。这在处理模糊查询时非常有用。在PagingByExampl.java中,可能就...
MyBatis通过XML配置或注解方式,将SQL与Java代码绑定,提供动态SQL支持,使得数据库操作更加灵活高效。此外,MyBatis与Spring的集成使得事务管理更加方便。 **注解(Annotation)** 注解是Java语言的一种元数据,...
MyBatis中注解映射SQL示例代码 MyBatis是一款流行的持久层框架,它提供了多种方式来映射SQL语句,其中之一便是使用注解的方式。下面我们将通过示例代码来介绍MyBatis中注解映射SQL的相关知识点。 结果集分页 在...
`ExamSystemByNote`可能是一个示例项目,其中展示了如何在考试系统中使用MyBatis注解进行数据操作。通过阅读该项目的代码,你可以了解到注解在实际项目中的具体使用。 总的来说,MyBatis的注解配置为开发者提供了...
MyBatis 是一款著名的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在本示例中,我们将探讨如何使用 ...同时,MyBatis 还提供了其他高级特性,如结果映射、动态 SQL 等,可以帮助我们更高效地进行数据库操作。
本项目“mybatis-demo12-动态SQL语句2-基于注解配置”是针对MyBatis动态SQL功能的一个示例,主要探讨如何通过注解方式来实现动态SQL。 1. **动态SQL**: 动态SQL是MyBatis的核心特性之一,它允许我们在运行时根据...
1. **动态SQL**:MyBatis的一个强大特性是其支持动态SQL,允许在XML映射文件或注解中构建SQL语句。比如,我们可以使用`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`等标签来根据条件动态地插入、删除或...