mybatis环境搭建
1.到官网中下载源码 jar包
1)mybatis核心jar包
2)mybatis依赖jar包
3)数据库的驱动包 ojdbc6.jar
2.放入项目下lib目录中,add as lib…
3.编写代码进行测试
1)Mybatis核心配置文件
2)MybatisSQL映射文件
3)基于mybatis的应用
java中调用功能,执行指定SQL映射文件中的SQL语句,使用结果
1)加载核心配置文件
2)获取SqlSessionFactory实例
3)打开会话
4)执行sql,使用,得到结果
5)关闭会话
Mybatis提供了两种配置文件 :
1.核心配置文件 :
配置一些使用Mybatis框架的核心基础配置,比如数据库连参数信息,SQL映射文件的扫描…
2.SQL映射文件 :
定义SQL语句
所有的SQL映射文件必须在核心配置文件中进行扫描
mybatis的使用
核心配置文件mybatis.xml
sql配置文件类似mapper包下的deptmapper.xml
pojo包下的实体类
test包下的练习页面
mybatis.xml 中的与数据库连接代码可以用¥{}替换,是用一个db.properties.xml文件去替换的,还有可以用typeAliases来替换别名,类似与com.yjx.pojo可以换成dept 也可以用package name 标签进行整体替换
核心配置文件配置好以后(一般复制就好,但是不能复制.xml文件要用记事本打开后复制)需要去配置sql映射文件就是mapper包下的东西,他有个属于自己的id属性 入参parametertype 结果集resulttype 以及sql语句结合成的。 mapper namespace是让文件可以找到的地址
设置pojo类的实体属性,其中的属性名字要与数据库中的一致,就是常规的javabean类型 最后是test类,是基本不变的session会话,可以直接复制,需要自己操作的是执行sql对拿到的数据进行操作。
当然在所有这些执行之前需要将包导入,并且add as library需要的包有jdbc的一个包(因为mybatis就是对jdbc的简化)还有一个mybatis的包,这两个是不能缺少的再有就是mybatis里面的包并不是都需要,而是有需要就拿,当然都添加上也不影响,一般都放入lib里了
对sql用户名和密码的封装,封装到db.properties中
对com.yjx.mapper进行统一包装
接口绑定方案
1.接口与绑定SQL映射文件要求同名,放在同一个包下
2.SQL映射文件的命名空间要求定义为绑定的接口的包名.接口名
3.SQL标签的id属性值要求定义为与之绑定的抽象方法的名字
4.SQL的参数与返回值要求与抽象方法的参数与返回值保持一致
注意 : 接口绑定方案可以实现多参数传递
Session的封装
public static SqlSession getSession(){
SqlSession session = null;
if(factory!=null){
//session = factory.openSession(); 手动提交事务
session = factory.openSession(true); //自动提交事务
}
return session;
}
动态SQL
查询员工信息
如果员工姓名为有效的实参,根据员工姓名
如果员工姓名无效,员工薪资有效,根据员工薪资
如果员工姓名有效,员工薪资有效,根据姓名与薪资一起查询
如果姓名与薪资都无效,那就查询所有的员工信息
有效的姓名 : 不为null,不为空串 ‘’
有效的薪资 : 不为0,不为null
List queryEmpByNameSal(@Param(“ename”) String ename,@Param(“sal”) double sal);