一、mybatis概念
Mybatis是对象和表之间映射关系的持久层框架。
二、Mybatis的导入与创建
第一步,创建web项目,引入mybatis依赖的jar包----mybatis-3.4.6.jar
第二步,创建mybatis的主配置文件
1、创建mybatis模板文件
Setting---Editor----File and Code Templates-----+
模板文件:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
oracle的主配置文件:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <!--配置mybatis的运行环境 7 mybatis可以连接多个数据库 ,连接一个数据库的信息就是一个运行环境 8 default指定默认使用哪个运行环境 9 --> 10 <environments default="myOracleEnv"> 11 <!--连接oracle的环境--> 12 <environment id="myOracleEnv"> 13 <!--配置mybatis的事物管理器 14 JDBC 使用mybatis自己的事物管理方式,就是使用jdbc的事物管理方式 15 MANAGED 使用容器的事物管理方式 16 --> 17 <transactionManager type="JDBC"></transactionManager> 18 <!--配置mybatis连接oracle的连接池信息 19 POOLED 使用连接池的方式获取数据库连接 20 UNPOOLD 不使用连接池的方式获取数据库连接 21 --> 22 <dataSource type="POOLED"> 23 <!--数据库的驱动--> 24 <property name="driver" value="oracle.jdbc.driver.OracleDriver"></property> 25 <!-- 数据库连接的url--> 26 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property> 27 <!--数据库连接的用户名--> 28 <property name="username" value="scott"></property> 29 <!-- 数据库连接的密码--> 30 <property name="password" value="tiger"></property> 31 </dataSource> 32 </environment> 33 </environments> 34 </configuration>
第三步,创建mybatis的工厂类工具,用来获取mybatis的SQLSession对象
获取SqlSession对象:
1 package com.aaa.mybatis.util; 2 import org.apache.ibatis.io.Resources; 3 import org.apache.ibatis.session.SqlSessionimport org.apache.ibatis.session.SqlSessionFactory; 4 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 5 import java.io.IOException; 6 import java.io.Reader; 7 /** 8 * 获取SqlSession对象工具类 9 */ 10 public class SqlSessionFactoryUtil { 11 //获取SqlSession的工厂类对象 12 private static SqlSessionFactory sessionFactory; 13 //静态代码块,在类加载的时候会自动执行该内容 14 static{ 15 Reader reader =null; 16 try { 17 //获取Reader对象,读取mybatis的主配置文件 18 reader = Resources.getResourceAsReader("mybatis.xml"); 19 //利用SqlSessionFactoryBuilder创建工厂类对象 20 sessionFactory = new SqlSessionFactoryBuilder().build(reader); 21 } catch (IOException e) { 22 e.printStackTrace(); 23 }finally{ 24 try { 25 reader.close(); 26 } catch (IOException e) { 27 e.printStackTrace(); 28 } 29 } 30 }/** 31 * 提供给用户调用的获取SqlSession的方法 32 * @return 33 */ 34 public static SqlSession getSession(){ 35 return sessionFactory.openSession(); 36 } 37 }
第四步,创建实体类
1 package com.aaa.mybatis.entity; 2 /** 3 * 部门管理实体类 4 */ 5 public class Dept { 6 private Long deptno; 7 private String dname; 8 private String loc; 9 public Long getDeptno() { 10 return deptno; 11 } 12 public void setDeptno(Long deptno) { 13 this.deptno = deptno; 14 } 15 public String getDname() { 16 return dname; 17 } 18 public void setDname(String dname) { 19 this.dname = dname; 20 } 21 public String getLoc() { 22 return loc; 23 } 24 public void setLoc(String loc) { 25 this.loc = loc; 26 } 27 }
第五步,创建dao接口
1 package com.aaa.mybatis.dao; 2 import com.aaa.mybatis.entity.Dept; 3 import java.util.List; 4 /** 5 * 部门管理dao接口 6 */ 7 public interface DeptDao { 8 /** 9 * 查询所有的部门 10 * @return 11 */ 12 public List<Dept> listAll(); 13 }
第六步,创建dao接口的实现类Mapper
mapper模板
1 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 2 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">