mybatis是一个持久层框架,是apache下的顶级项目
mybatis让程序将主要精力放到sql上,通过mybatis提供的映射方式,自由灵活生成(办自动化,大部分需要程序员编写sql)满足需要sql语句
mybatis可以将preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)
sqlMapConfig.xml(是mybatis的全局配置文件),配置了数据源、事务等mybatis运行环境,配置映射文件(配置sql语句)
sqlsessionFactory(会话工厂),根据配置文件创建工厂,作用:创建sqlsession
sqlSession(会话)是一个接口,面向用户的接口:作用操作数据库
executor(执行器),是一个接口(基本执行器和缓存执行器),作用:sqlSession内部通过执行器操作数据库
parameterType:置顶输入参数的类型
#{}表示一个占位符
#{id}:其中的id表示接入输入的参数,参数名称就是id,如果输入参数是简单类型,#{}中的参数名可以任意,可以value或其它名称。
resultType:置顶输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象,指定就是单挑记录所映射的java对象类型
第一个参数:映射文件的statement的id,等于namespace+”.“+statement的id
第二个参数:指定和映射文件中所匹配的parameterType类型的参数。
sqlSession.selectOne(“第一个参数”,”第二个参数”)
${}表示拼接sql串,将接收到参数的内容不加任何写实拼接到slq中,使用${}拼接slq引起sql注入。
${value}:接收输入参数的内容,如果传入类型是简单类型,${}中只能使用value,不建议使用
将插入数据的主键返回,返回到user对象中
keyProperty:将查询到主键值设置到parameterType制定的对象的哪个属性
order:SELECT LAST_INSERT_ID()得到刚insert进去记录的主键值,只适用于自增主键
<selectKey keyProperty=‘id’order=’AFTER’resultType=’java.lang.Integer’>
SELECT LAST_INSERT_ID()
</selectKey>
适用mysql的uuid()生成主键
执行过程:首先通过uuid()得到主键,将主键设置到user对象的id属性中
其次在insert执行时,从user对象中取出id属性值
<selectKey keyProperty=‘id’order=’BEFORE’resultType=’java.lang.String’>
SELECT uuid()
</selectKey>