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是起到分割的作用
这几个是比较有用的

原文地址:https://www.cnblogs.com/lovewzh/p/4895320.html