mybatis
1.基本操作细节
1.1本地xml文件配置
step1
step2
step3
step4
1.2< enviroment>中的< transactionManager>和< dataSource>配置
需注意JDBC 和 POOLED仅仅是别名
1.3配置文件中的相对路径
由介绍文档 :主配置文件中 resource 后 跟相对路径
1.4 日志的使用
step1导包
step2
step3
1.5 OGNL表达式的运用
1.5.1 上下文对象是 JavaBean 对象
#{属性名称} #{name}
Employee id,name,age,dept(id,name) #{dept.name} 上下文对象.getDept().getName();
1.5.2 上下文对象是Map对象:
#{key}
1.5.3 上下文对象是简单类型对象(基本类型+String)
直接取出数据值,跟花括号中的name没有任何关系 (#{id}只有占位符的作用)
2.Demo
Demo1 dao思想完成CRUD
Attention
- 映射配置文件中save 操作加入 获取自增的主键的操作(注意insert标签的后三个属性 )
<insert id="save" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
insert into t_user (id,name,salary) values(null,#{name},#{salary});
</insert>
-
加入日志 之后 可以将Mybatis 拼接成的sql语句输出 ,方便查看
-
在实现类中 不能把sqlSession 设置成 静态成员变量 如果所有方法共享一个 sqlSession 后面web项目的时候 第一个方法执行完毕 close() 后 ,后面的方法就执行不了了
-
在配置映射文件时 形式参数 parameterType 可以省略 ,因为 传过来的对象 可以 在底层通过 getClass() 方法 得到本身的类型 (字节码文件)
-
主配置文件 如何映射到 映射配置文件 我们通常是采取 resource 配置 相对路径(前面自动拼接上 …/bin/)
-
在增删改的实现中,底层都是executeUpdate() 所以是认后面的sql语句 而不认session 调的delete() insert()方法等
-
typeAliases标签中 用 package 的原理 把后面的类型 直接拼接在 package 的包下 (不过 大小写 随意 )
3. 异常
3.1异常一illegalArgumentException:Malformed\uxxxx encoding.
3.2异常二Unknown column…