学习背景
地点:长沙欧富安科技园1栋5楼飞思项目十
时间:23年8月28~9月1号
大致内容:mybatis
前言
对Mybatis的学习,算是推翻了之前写项目的方式,对我而言,很新,很难,很搞人心态,其中涉及到的几个核心,如反射,动态代码更是不知所云。没办法,故事还在继续,生活还得向前。
MyBatis
项目构成
MyBatis采用模块式开发,即“父子”关系,父模块中不放代码,只保留一些全局变量,而子模块负责去实现功能。
pom.xml:在基于Maven的基础上,与之前写项目的不同点之一,以后的jar包引入,该文件处添加依赖即可,子类可继承父类的该文件里面的内容,具体依赖引入请参考:Maven Repository: Search/Browse/Explore (mvnrepository.com)
java:代码编写
resources:资源存放(不可被子类继承)
test:测试用
日志打印
进入Mybatis的学习之后,应当抛弃传统使用System.out.println()打印结果,可使用日志打印代替
pom.xml:
resources目录下:logback.xml
执行顺序
mybatis-config.xml
daomapper.xml与daomapper.java
daomapper.java:接口方法
daomapper.xml:实现接口方法中的SQL语句
SqlSessionFactory
存放与util模块下
SqlSession
从业务层中获取
SqlSessionUtil.createSqlSessionFactory();
SqlSession sqlSession = SqlSessionUtil.createSqlSession();
//dao层接口
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//sqlSession.commit();//事务提交
动态SQL
if/where
<select id="query101" resultType="UserEntity">
select * from train_user
<where>
<if test="user_id != null || user_id != ''">
user_id = #{user_id}
</if>
<if test="user_password != null || user_password != ''">
and user_password = #{user_password}
</if>
<if test="user_name != null || user_name != ''">
and user_name = #{user_name}
</if>
</where>
</select>
foreach
<select id="query16" parameterType="UserEntity" resultMap="userMap">
select * from train_user
<where>
<!--list当存放的是简单类型-int String 。。。 -->
<!--collection 取参数-->
<foreach collection="aa" item="key" open="and user_id in ( " close=")" separator=" , ">
#{key}
</foreach>
</where>
</select>
多表查询
前置配置
<select id="query18" resultMap="userMap">
select * from train_user u LEFT JOIN message m ON u.user_name = m.user_name WHERE u.user_id=18
</select>
本周小结
关于MyBatis的基础知识和使用应该就这些了,至于还有缓存,那个一级和二级都用不上就没写,还有进阶知识又不会写,下周就又要学习Spring了。等待,并心怀希望!