zoukankan      html  css  js  c++  java
  • mybatis学习随记

      刚学mybatis,为防止打瞌睡,想到什么就写什么,自己看得懂就行了。其实mybatis思想和hibernate差不多,都属于数据持久层的。mybatis和hibernate都需要加载配置文件,刚开始学习,这个配置文件简单的就先配置一下数据库的信息。数据库url,用户名,密码什么的。

      第一步,加载配置文件。

      第二步,获取会话工厂。

      第三步,获取sqlsession对象。

    通过这个sqlsession对象进行数据库操作sqlsession.selectOne();sqlsession.selectMap();sqlsession.selectList();

    mybatis的查询语句都是写在配置文件中的,配置文件中写标签,比如<select id=""></select><insert id=""></insert>

    SqlSession的作用:
    1.向SQL语句传入参数
    2.执行SQL语句
    3.获取执行SQL语句的结果
    4.事务的控制

    如何得到SqlSession:
    1.通过配置文件获取数据库连接相关信息
    Reader reader = Resources.getResourceAsReader("com/Configuration.xml");
    //对应路径,要包含包,且包之间隔开是用 / 不是 .

    2.通过配置信息构建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

    3.通过SqlSessionFactory打开数据库会话
    SqlSession sqlSession = sqlSessionFactory.openSession();

    mapper中的namespace是必须的,不然会报错,id是不能重复的,除非在不同的namespace中

    resultMap中的type属性为对应实体类,主键用<id>标签,普通行用<result>标签
    调用sql语句:sqlSession.selectList("namespace.id",object)
    eg:sqlSession.selectList("Messages.list");//namespace的名字点上语句的ID

    java:

    public List<User> selectSelective(Map<String, Object> map) {
      return getSqlSession().selectList("namespace.id", map);
    }

    <select id="queryUserList" paramaterType="long" resultMap="UserResult"></select>

    查询返回出来的结果集也是配置的,

    <resultMap  id="UserResult" type="com.wzh.imooc.User">

      <id column="字段名" jdbcType="INTEGER" property="属性名"/>

      <result column="字段名" jbdcType="" property="属性名"/>

    </resultMap>


    模糊查询 and DESCRIPTION like '%' #{description} '%'
    //批量删除
    <delete id="deleteBatch" parameterType ="java.util.List">
    delete from message where id in(
    <foreach colleciton="list" item="item" separator=",">
    #{item}
    </foreach>
    )
    </delete>

    其中foreach标签中的separator是起到分割的作用
    这几个是比较有用的

  • 相关阅读:
    AcWing356 次小生成树(lca)
    牛客 Rinne Loves Edges(dp)
    软件的生命周期和测试流程
    软件测试的学习经历回顾-第一天
    java List集合
    c#Socket通信
    c#线程2
    c#线程1
    c#Linq联合查询
    c#拓展方法
  • 原文地址:https://www.cnblogs.com/lovewzh/p/4895320.html
Copyright © 2011-2022 走看看