${}和#{}号的区别
#相当于对数据 加上 双引号,?占位符
where name='aaa'
$相当于直接显示数据 字符串拼接
where name=aaa 可以用作order by ${}
#################################
对于模糊查询sql语句中可以使用concat函数
################################
插入成功返回主键id
<insert id="add" parameterType="EStudent" useGeneratedKeys="true" keyProperty="id">
#############################随笔小结
Mybatis
导包
config.xml 配置总的jdbc 数据库映射
可以使用properties文件存储连接等属性,
<properties resource="db.properties"/>
为实体类定义别名
<typeAliases> <typeAlias type="com.atguigu.ibatis.bean.User" alias="_User"/> </typeAliases>
导入log4j
创建log4j.properties文件 进行配置
配置相应的Mapper 进行增删改查
传入值类型 返回值类型 自动当作map(多值) resultType resultMap(映射)
测试
Resource 解析config文件
sessionFactory 生产session(类似于connection) session.selectOne.......
后面可以换成接口
Mapper 的namespace指向接口 xml算是具体实现 ud=session. 反射UserDao.class
resultMap 中 是各种映射
id 唯一标识
result
association 单个对象
collection 集合对象 字段名 集合中对象的类型
逆向工程,导包mybatis-generator-core-1.3.5.jar
配置generator.xml文件,
配置java生成
普通
<mapper namespace="com.zhiyou100.xf.dao.UsersDao">命名空间
session.selectOne("com.zhiyou100.xf.mapper.UserMapper.selById", 3);
配合
结合接口 统一给个接口 可能更方便管理,直观
<mapper namespace="com.zhiyou100.xf.dao.UsersDao">命名空间指向操作接口
UsersDao ud=session.getMapper(UsersDao.class);
分页 导包,