jdbc ReflectionException 反射异常 对象传参是里面值要和属性对应
<select id="getUsersByPage" resultTyoe="com.janes.pojo.User">
select * from user limit #{p}
select *from user limit #{size},#{age}
map<String ,Interger>=nea HashMap map.put
Mybatis的三种实现方式
1.纯xml方式实现
2.xml 接口混合实现###
3.纯注解方式实现
参数
单参
对象传参
零散传值( map )
sql语法错误
单参数不作要求
map
xml test中的参数不同
实现Mybatis日志的输出
(标准输出)
mybatis的实现
-
新建maven项目
-
pom文件中新增三个依赖
mybatis
mysql
junit
(lombok) -
新增mybatis-config.xml文件
配置数据库连接的四个字符串
配置mapper映射文件
分别配置namespace和id -
新增跟数据库对应的pojo类User.java
-
新增测试类
- 根据mybatis-config.xml文件的路径得到InputStream的is对象
- 将流对象作为参数放入SqlSessionFactoryBuilder().build(is)方法中得到SqlSessionFactory对象ssf
- 使用ssf的openSession()方法得到SqlSession对象ss
- 使用ss即可完成所有的crud功能
一下方法中放置的都将是Mapper文件中的声明(namespace和id)
ss.selectList(声明,params);
ss.selectOne(声明,params);
ss.insert(声明,params);
ss.update(声明,params);
ss.delete(声明,params); - 关闭SqllSession ss.close();
使用junit的生命周期将代码简化
在setUp方法中获取SqlSession对象
在tearDown方法中关闭SqlSession对象
在各自的业务方法中只需要编写对应的crud代码即可
ss.selectList(声明,params);
MAVEN的jar包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
xml文件中的头文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
SQL SESSION FACTORY中的核心
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);