1.mybatis框架的作用:
可以简化jdbc的操作以及占位符赋值以及查询结果集的封装。
2.如何使用mybatis:
(1)引入mybatis和mysql的jar包
(2) 创建mybatis的配置文件
(3)创建数据库和表
(4) 创建实体类
(5) 创建mybatis和数据库的映射文件(作用是映射实体和表之间的映射关系)
(6)把映射文件注册到配置文件上 mybatis.xml上
(7)测试mybatis
3.(1)使用mybatis框架完成crud:
(2)测试
4.mybatis一些优化
(1)为实体类起别名
mybatis.xml配置文件:
<typeAliases>
<!--单独为某个实体类起别名 -->
<typeAlias type="com.ykq.entity.User" alias="u"/>
<!--为指定包下的实体类起别名该别名就是实体类名-->
<package name="com.ykq.entity"/>
</typeAliases>
(2)添加日志
1.添加日志的jar
<!--log4f-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2. 添加日志的文件配置--log4j.properties必须
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
5.通过dao和映射文件的关联来完成操作---企业开发模式
一.实现步骤:
(1)创建一个dao接口并定义自己需要的方法。
(2)创建映射文件
(3)测试
二 传递多个参数
我们在dao接口中某些方法可能需要传递多个参数,我们需要在参数处使用@Param()为参数起名。
三 添加时如何返回递增的主键值。
<!--添加用户
useGeneratedKeys:设置使用生成的主键
keyProperty: 赋值给哪个属性
-->
<insert id="addUser" parameterType="com.ykq.entity.User"
useGeneratedKeys="true" keyProperty="userId">
insert into tb_user values(null,#{username},#{realname})
</insert>
四 解决列名和属性名不一致。
第1种:为查询的列起别名,而别名和属性名一致
<!--根据id查询学生信息-->
<select id="findOne" resultType="com.ykq.entity.Student">
select stu_id id,stu_name name,stu_age age from tb_stu where stu_id=#{id}
</select>
第2种: 使用resultMap完成列和属性之间的映射关系。(如上图所示)
五 动态 sql
(1) if标签--单条件判断
(2)choose标签 多条件分支判断
(3) where标签
where:可以帮我们生成关键字 set 并且可以去除第一个and
(4)set标签
set:可以帮我们生成关键字 set 并且可以去除最后一个逗号
(5)foreach标签
如果你使用的为数组array 如果你使用的为集合 那么就用list
collection:类型 item:数组中每个元素赋值的变量名
open: 以谁开始 close:以谁结束 separator:分割符
六 sql片段
在执行查询语句时不建议使用select *, 建议大家把查询的列写出。
七 mybatis映射文件处理特殊字符.
第一种:转义标签 <
第二种: <![CDATA[sql]]>
八 mybatis完成模糊查询
6.联表查询