mybatis+maven对数据库的简单用法

为什么要用mybatis?

1) 系统的部分或全部数据来自现有数据库, 出于安全性的考虑, 只为开
发团队提供几条
Select SQL(或存储过程) 以获取所需数据, 具体的表
结构不予公开。
2) 开发规范中要求, 所有牵涉到业务逻辑部分的数据库操作, 必须在数
据库层由存储过程实现(对于金融行业而言, 工商银行、 中国银行和交
通银行, 都在开发规范中严格指定)。
3) 系统数据处理量巨大, 性能要求极为苛刻, 这通常意味着我们必须由
经过高度优化的SQL语句(或存储过程) 才能达到系统性能设计指标.

什么是MyBatis?

  1. MyBatis是一个运用于持久层的数据操作框架
  2. MyBatis是从iBatis升级而来
  3. 使用 MyBatis提供的ORM机制, 业务逻辑层实现人员操作的是JAVA对象, 该层面与Hibernate机制中的相同。 对于具体的数据库操作而言,Hibernate会自动生成SQL并执行, 而MyBatis要求开发人员具体编写SQL语句。MyBatis在数据库移植性和SQL开发工作量上进行了让步, 从而提升了系统设计的灵活性, 扩展了其自由空间。  


MyBatis的优势?

  • 支持ORM
  • 支持动态SQL
  • 外部化SQL语句
  • 封装SQL语句  

demo结构图

mybatis+maven对数据库的简单用法_第1张图片

在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}
	
	
		
		
		
		
		
		
		
		
	


 4,此mapper所对应的映射接口,(推荐使用这种操作)

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





你可能感兴趣的:(mybatis+maven对数据库的简单用法)