Mybatis+JDBC学习笔记
1.配置文件
配置文件应该包括全局配置文件和映射文件,在编写这两个映射文件之前,必须创建mybatis环境(jar包等)
1.1全局配置文件
建议使用sqlMapConfig.xml,内容如下
加一个例子
1.2 映射文件
1.2.1映射文件User.xml
该映射文件是为了解决jdbc中statement的硬编码的问题(硬编码问题详解),所以,在此映射文件中,只需要指定输入参数类型,返回结果参数类型,sql语句等就差不多了,也就是将原本jdbc所遇到的硬编码问题全部是使用xml配置文件来替代,有什么需要就修改配置文件即可
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:命名空间,对sql进行一个分类管理 -->
<!-- 注意:namespace在mapper代理时,具有重要且特殊的作用 -->
<mapper namespace="test">
//编写映射条件,也就是下面的
</mapper>
注意mapper标签内内容,具体的条件在这编写
1.2.2映射条件的编写
映射条件即对增删改查四种操作的应用
1.2.2.1查询
按id查询对象
模糊查询
1.2.2.2增加
1.2.2.3删除
1.2.2.4更新
1.3小总结
编写了最基础的全局配置文件和映射文件。
全局配置文件:连接数据库所需要的帐号密码等属性,事务等操作
映射文件:通过对比原始jdbc连接数据库,其实mybatis中的映射文件就是对statement的硬编码进行改进,我们配置的都市statement需要的东西
1.3.1
parameterType:指定输入参数的java类型,可以填写别名或Java类的全限定名。别名的用法在详细讲解全局配置文件的时候会讲解到,在那边可以配置
resultType:指定输出结果的java类型,可以填写别名或Java类的全限定名。
1.3.2
#{}和${}的用法
#{}:相当于预处理中的占位符?
#{}里面的参数表示接收java输入参数的名称
#{}可以接受HashMap、简单类型、POJO类型的参数
简单类型:#{}里面可以是value,可以是任意值
POJO类型的参数:必须是POJO中的属性名
hashmap:key值名
${}:相当于拼接SQL串,对传入的值不做任何解释的原样输出。
${}会引起SQL注入,所以要谨慎使用。
可
以
接
受
H
a
s
h
M
a
p
、
简
单
类
型
、
P
O
J
O
类
型
的
参
数
。
当
接
受
简
单
类
型
的
参
数
时
,
{}可以接受HashMap、简单类型、POJO类型的参数。 当接受简单类型的参数时,
可以接受HashMap、简单类型、POJO类型的参数。当接受简单类型的参数时,{}里面只能是value。
1.3.3
sqlSession操作时selectOne和selectList
selectOne:只能查询0或1条记录,大于1条记录的话,会报错
selectList:可以查询0或N条记录