MyBatis学习二

MyBatis学习二

MyBatis学习day2

1.自定义mybatis分析

MyBatis学习二

MyBatis学习二


2.mybatis的curd(重点)

log4j文件放在resources下

1)增

先从接口写方法 ---》 在映射配置中写一个配置 ---》

在传递的对象中取值  ,#{按照实体类中的属性写}

<insert>标签

2)改

<update>标签

3)删

<delete>标签

4)根据id查询用户信息

5)模糊查询

like #{username} :用的是PreparedStatement的参数占位符 ---》 实际开发中用的多

查询语句中like '%${value}%'  : 用的是Statement对象拼接字符串 ---》很少用(了解)

6)查询总记录数

7)获取插入数据后的数据id

SELECT LAST_INSERT_ID();


3.参数深入

CURD中可能遇到的问题:参数传递以及返回值的封装

将实体类对象包装起来,进行查询;在实际开发中,可由多个对象组合进行查询

MyBatis学习二

 

MyBatis学习二

4.实体属性和数据库不对应情况及解决

将User实体类的属性更改,和数据库的字段不一致,则需要在配置文件中的查询语句等

位置处修改和更改后的属性保持一致

如username更改为 userName,则配置文件中的对应的 =#{userName}

查询中无法封装:

        解决方法一:取别名,使得属性和数据库中保持一致 username as userName(执行效率高)

       解决方法二:配置查询结果的列名和实体类的属性名的对应关系(开发效率高,因为更改地方少)

                         MyBatis学习二

                         MyBatis学习二


5.mybatis实现dao层开发(不使用代理模式,自己写实现类)

 UserDaoImpl实现接口 ---》 重写所有的方法

   重写过程:

              1)根据factory获取SqlSession对象

              2)调用方法实现更新(注意传递的参数类型以及形式)

              3)提交事务(有的需要有的不需要)

              4)释放资源

 例如:

              MyBatis学习二

  实现类与代理源码分析(使用断点调试,找出执行顺序)

    MyBatis学习二

代理实现分析:

MyBatis学习二

MyBatis学习二

MyBatis学习二

MyBatis学习二

MyBatis学习二

MyBatis学习二

MyBatis学习二

          MyBatis学习二

          MyBatis学习二

 

6.properties标签的使用及细节

1)使用数据库的配置文件 jdbc.properties对数据库连接进行配置

2)使用url来配置资源:url需要使用路径下的

MyBatis学习二

MyBatis学习二

7.typeAliases和package标签

MyBatis学习二

MyBatis学习二

在mapper中配置package属性标签

MyBatis学习二