ITPub博客

首页 > IT职业 > IT图书 > 我的mybatis学习记录。

我的mybatis学习记录。

IT图书 作者:freefancy 时间:2021-09-09 09:06:59 0 删除 编辑

配置运行环境
1.创建Mybatis核心配置文件SqlMapConfig.xml


    //对实体类进行扫描,并且创建别名
    
            //使用JDBC的事务管理
            
            //配置数据源
            
    //指定Mapper所在路径
    

2.配置orderMapper.xml

    //namespace代表这个mapper的命名空间,如果用mapper代理开发直接填写接口的全路径,也可以自定义
    
    //id为该sql语句的唯一标识符
    //parameterType是传入sql语句的参数类型
    //resultType表示查询结果返回的类型
    //#{}表示一个占位符,其中的id代表传入的参数名称,如果是简单类型,名称可以自定义
    
//测试
    public class MyBatisFirstTest{
        @Test
        public void searchUserById(){
            //指定SqlMapConfig.xml文件位置
            String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
            //将mybatis的配置信息转化成流
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            Session session = sqlSessionFactory.openSession();
            //需要传入两个参数,一个是使用的sql语句id,一个是sql语句需要传入的参数
            //指定sql语句前面需要加上命名空间名称
            User user = session.selectOne("userMapper.searchUserById",1);
            System.out.println(user);
        }
    }

Mapper代理方法

//创建OrderMapper.java
public Interface OrderMapper{
    //方法名称要和所使用的sql语句id一样
    public User searchUserById(int id);
}
//测试
    public class MyBatisFirstTest{
        @Test
        public void searchUserById(){
            //指定SqlMapConfig.xml文件位置
            String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
            //将mybatis的配置信息转化成流
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            Session session = sqlSessionFactory.openSession();
            OrderMapper orderMapper = session.getMapper(OrderMapper.class);
            User user = orderMapper.searchUserById(1);
            System.out.println(user);
        }
    }

使用拼接串符号实现模糊查询

//在Mapper中创建sql语句
    
//测试
    public void searchUserById(){
        String resource = Resources.getResourceAsStream("sqlMapConfig.xml");
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        Session session = sqlSessionFactory.openSession();
        //因为可能返回多条记录,所以使用selectList方法来接收一个list
        List list = session.selectList("userMapper.searchUserByName","melon");
        System.out.println(list);
    }
//插入
    
        //#{}中接收实体类的属性名,通过ognl来获取对象的属性
        insert into user (name,password,address,tel) value (#{name},#{password},#{address},#{tel})
    
//删除
    
        delete * from user where id = #{}
    
//更新
    
        update user set name=#{name},password=#{password},address=#{address},tel=#{tel} where id=#{id}
    

使用resultMap

//用购物信息做例子

        //id表示user类中唯一标识,property是实体类中参数名,column是查询结果中的字段名
        
        //result是查询结果中映射到实体类的其他字段
        
        //collection是表示一个user可能有多个order,所以使用collection标签
        
            //一个order会有多个购物项,同理
            
                //一个购物项对应一个商品,所以使用association标签
                

动态sql


        and sex = #{user.sex}
    
        and name like '%${user.name}%'
    

//foreach标签
//用foreach实现以下片段select * from user where id in (1,2,3)

    //每次遍历需要拼接的串
    #{id}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1371/viewspace-2808190/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    118
  • 访问量
    797