为什么要用mybatis?
(1) 系统的部分或全部数据来自现有数据库, 出于安全性的考虑, 只为开
发团队提供几条Select SQL(或存储过程) 以获取所需数据, 具体的表
结构不予公开。
(2) 开发规范中要求, 所有牵涉到业务逻辑部分的数据库操作, 必须在数
据库层由存储过程实现(对于金融行业而言, 工商银行、 中国银行和交
通银行, 都在开发规范中严格指定)。
(3) 系统数据处理量巨大, 性能要求极为苛刻, 这通常意味着我们必须由
经过高度优化的SQL语句(或存储过程) 才能达到系统性能设计指标.
什么是MyBatis?
demo结构图
在maven仓库中引入mybatis架包
4.0.0
com.mybatis
mybatisDemo
0.0.1-SNAPSHOT
org.mybatis
mybatis
3.4.1
我这里是用的oracle数据库,但由于oracle数据库不能引用,具体你可以查下百度。
我这里是直接把架包下下来引用的。
2第二步,创建mybatis的config文件,前提你要有这两个文件。,
大家可以到我度盘去链接: https://pan.baidu.com/s/1o8hmPvW 密码: wqsh
3,创建mapper文件
insert into emp(empno,ename,job)
values(emp_sql.nextval,#{ename},#{job})
delete from emp where
empno=#{empno}
update emp
ENAME=#{ename},
JOB=#{job},
MGR=#{mgr},
HIREDATE=#{hiredate},
SAL=#{sal},
COMM=#{comm},
DEPTNO=#{Integerno}
where empno=#{empno}
package com.shandian.mapper;
import java.util.List;
import com.shandian.bean.Emp;
//注意,这里的名字必须与com.shandian.mapper.empmapper,中empmapper的名字一致且必须在同一包中,不然就不能映射
public interface empmapper {
// 这个方法名必须与empmaper中进行添加操作的名字一样的.
// 参数的类型也要一致
void add(Emp emp);
// 查询全部
List queryall();
// 进行删除
void delete(int id);
// 修改
void update(Emp emp);
}
5,简单的对其进行了增删查改操作
package com.shandian.texst;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.shandian.bean.Emp;
import com.shandian.mapper.empmapper;
public class EmpTexst {
// 测试
public static void main(String[] args) {
// 查询全部
// t1();
// 添加
// t2();
// 删除
// t3();
// 修改
t4();
}
private static void t4() {
// TODO Auto-generated method stub
try {
Reader reader = Resources.getResourceAsReader("mybatisconfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
Emp emp = new Emp();
emp.setEmpno(7720);
emp.setEname("java");
emp.setJob("java");
empmapper empmapper = session.getMapper(empmapper.class);
empmapper.update(emp);
session.commit();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void t3() {
// TODO Auto-generated method stub
try {
Reader reader = Resources.getResourceAsReader("mybatisconfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
empmapper empmapper = session.getMapper(empmapper.class);
empmapper.delete(7717);
session.commit();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void t2() {
// TODO Auto-generated method stub
try {
// 加载配置
Reader reader = Resources.getResourceAsReader("mybatisconfig.xml");
// 创建
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
Emp emp = new Emp();
emp.setEname("admin");
emp.setJob("Android33");
// 添加1操作
/*
* session.insert("com.shandian.mapper.empmapper.add", emp);
* session.commit();
*/
// 添加2操作,这种做法是官方推荐的
empmapper empMapper = session.getMapper(empmapper.class);
empMapper.add(emp);
session.commit();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void t1() {
// TODO Auto-generated method stub
// 加载配置
try {
Reader reader = Resources.getResourceAsReader("mybatisconfig.xml");
// 创建
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
// 解析资源
SqlSessionFactory factory = builder.build(reader);
// 打开session
SqlSession session = factory.openSession();
// 1传统写法,不推荐
/*
* List list =
* session.selectList("com.shandian.mapper.empmapper.queryall"); for
* (Emp emp : list) { System.out.println(emp); }
*/
// 2,用接口映射的形式进行查询,官方推荐
empmapper empmapper = session.getMapper(empmapper.class);
List list = empmapper.queryall();
for (Emp emp : list) {
System.out.println(emp);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
demo的下载
链接: https://pan.baidu.com/s/1slvZObr 密码: 6bi4