一、根据xml配置建立一个sqlsessionfactory的对象
有数据源的一些运行环境信息
二、sql映射文件,配置了每个sql,以及sql的封装规则
三、将sql注册在全局配置文件中
四、coding
1)根据全局配置文件获得SqlsessionFactory
2)试用sqlsession工厂,获取到sqlsession对象试用它来执行增删改查
一个sqlsession就是表明与数据库的一次对话,用完关闭(close)
3)使用sql惟一标识该告诉mybatis执行哪一个sql,sql都是保存在sql映射文件中sql
String resource = "mybatis-config.xml";数据库
InputStream inputStrem = Resource.getResoureceAsStream(resource);session
SqlsessionFactory sessionFactory = new SqlSessionFactoryBuilder().Builder(resource);//获取sqlsessionfactory对象mybatis
SqlSession opensession = sessionFactory.openSession();//使用opensession方法获取sqlsession对象oracle
加载数据库信息-->建立sqlsession工厂-->用OpenSession()方法建立sqlsession,每一个sqlsession都是一个数据库查询实例app
//获取接口的实现类对象
//会为接口自动的建立一个代理对象,代理对象去执行增删改查方法ui
EmployeeMapper mapper = opensession.getMapper(EmployeeMapper.class);//获取接口的实现类对象
Employee empById = mapper.getEmpById(1);//调用接口的方法
System.out.println(mapper.getClass());
System.out.println(empById);代理
传多个参数时候须要加上@Param(“xx”)。xml
用注解来简化xml配置的时候,@Param注解的做用是给参数命名,参数命名后就能根据名字获得参数值,正确的将参数传入sql语句中 对象
jdbc oracle
mybatis 在接口类中传参
#{}和${}的区别:
我的理解就是#{}防止sql注入
${}用于处理sql语句中动态填入的部分,例如某个图书的info表 书名_info_tbl,这时候书名就该直接拼接进来。又以下图样例中年份工资表和排序规则。无法sql预编译,只能拼接。