栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis动态Sql

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis动态Sql

1.查询功能 (1)UserMapper.java
//动态sql=案例1 通过用户名和密码查询列表
    public List findByUserNameAndPwd(@Param("userName") String userName,@Param("userPassword") String userPassword);
    
(2)UserMapper.xml

        select * from smbms_user a where 1=1
        
            and userName like concat('%',#{userName},'%')
        
        
            and userPassword = #{userPassword}
        
    
(3)TestUserMapper.java
@Test
    public void testfindByUserNameAndPwd() {
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        String userName = "王";
        String userPassword = "";
        List list= sqlSession.getMapper(UserMapper.class).findByUserNameAndPwd(userName,userPassword);
       for (User u :list){
           System.out.println("姓名:"+u.getUserName()+"   出生日期:"+u.getBirthday());
       }
        sqlSession.close();
    }

(4)测试结果

 

2.添加功能 (1)UserMapper.java
 //添加功能动态sql
    public Integer addUserNew(User user);
(2)UserMapper.xml
 
        insert into smbms_user(
        
        
            userCode,
        
        
            userName,
        
        
            userPassword,
        
            
                gender,
            
            
                birthday,
            
            
                phone,
            
            
                address,
            
            
                userRole,
            
            
                createdBy,
            
            
                creationDate,
            
            
                userPassword,
            
            
                modifyDate,
            

        )
        values (
        
            
                #{userCode},
            
            
                #{userName},
            
            
                #{userPassword},
            
            
                #{gender},
            
            
                #{birthday},
            
            
                #{phone},
            
            
                #{address},
            
            
                #{userCode},
            
            
                #{createdBy},
            
            
                #{creationDate},
            
            
                #{modifyBy},
            
            
                #{modifyDate},
            
        
        )
    
(3)TestUserMapper.java
 @Test
    public void testaddUserNew() {
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        User user = new User();
        user.setUserName("wangwu");
        sqlSession.getMapper(UserMapper.class).addUserNew(user);
        sqlSession.commit();
        sqlSession.close();
    }

3.修改功能 (1)UserMapper.java
//修改功能动态sql
    public  Integer updateUserNew(User user);
(2)UserMapper.xml
 
        update  smbms_user
        
        
            userCode=#{userCode},
        
        
            userName= #{userName},
        
        
            userPassword= #{userPassword},
        
        
            gender= #{gender},
        
        
            birthday=#{birthday},
        
        
            phone= #{phone},
        
        
            address=#{address},
        
        
            userRole=#{userCode},
        
        
            createdBy= #{createdBy},
        
        
            creationDate= #{creationDate},
        
        
            modifyBy=#{modifyBy},
        
        
            modifyDate=#{modifyDate},
        
        

    

(3)TestUserMapper.java

 @Test
    public void testupdateUserNew() {
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        User user = new User();
        user.setId(18);
        user.setUserName("pgw");
        sqlSession.getMapper(UserMapper.class).updateUserNew(user);
        sqlSession.commit();
        sqlSession.close();
    }
4.功能-参数为集合list

(1)UserMapper.java

//参数list查询功能
    public  List findByList(List idList);

(2)UserMapper.xml


        select  * from smbms_user
        where id in
        
            #{map}
        
    
(3)TestUserMapper.java
 @Test
    public void testfindByMapNew() {
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        HashMap map = new HashMap<>();
        ArrayList list = new ArrayList<>();
        list.add("5");
        list.add("15");
        map.put("map2",list);
        List list2=sqlSession.getMapper(UserMapper.class).findByMapNew(map);
        for (User u:list2){
            System.out.println("userName:"+u.getUserName()+"  id:"+u.getId());
        }
        sqlSession.close();
    } 
 
总结 

其实动态 sql 语句的编写往往就是一个拼接的问题,为了保证拼接准确,我们最好首先要写原生的 sql 语句出来,然后在通过 mybatis 动态sql 对照着改,防止出错。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号