MyBatisMaBatis配置(单配置 之一)

流动:  此文中的实体类还是沿用上同样节的Emp和Dept两独像样

 

01.引入需要之jar包文件:http://pan.baidu.com/s/1qYy9nUc  :mybatis-3.2.2.jar

02.修MyBatis配置文件(配置文件可以当面下载的回落包root下找到PDF,里面为出示范配置)

Emp.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="cn.happy.dao.EmpDao">
 6     <resultMap id="empMap" type="cn.happy.entity.Emp">
 7         <id property="empId" column="empNo"/>
 8         <result property="empName" column="ENAME"/>
 9         <result property="job"/>
10         <result property="mgr"/>
11         <result property="hiredate"/>
12         <result property="sal"/>
13         <result property="comm"/>
14         <association property="dept" javaType="cn.happy.entity.Dept">
15             <id property="deptNo"/>
16             <result property="deptName" column="DNAME"/>
17             <result property="loc"/>
18         </association>
19     </resultMap>
20     
21     <select id="getAllEmpInfo" resultMap="empMap">
22         select * from Emp e,Dept d where e.deptno=d.deptno
23     </select>
24     
25     <!-- <select id="countAll" resultType="int" > 
26     select count(*) from Emp
27     </select> -->
28 </mapper>

其中几独常因此的素的意向如下:( 1.environment   和   2.mappers元素)

1.environment  
元素:用于配置多只数据环境,这样好射多独数据库信息。采用default来指定默认使用谁数据库环境。environment则是每个数据库环境之具体配置,

 包括数据连接信息以及事务管理信息。

  于MyBatis中出零星只东西管理器类型(即type=”[JDBC|MANAGED]”)

    JDBC:直接利用JDBC控制工作,它凭借让从数据库得到的连日来保管作业限制。

    MANAGED:MyBatis自己不负控制工作,它会叫容器来治本业务的尽生命周期(如经Spring或javaEE应用服务器)

  数据源类型有三种:UNPOOLED、POOLED、JNDI。

  UNPOOLED:这个数据源的实现是历次让呼吁时大概打开和关闭连接,它来好几暂缓,这是指向简易应用程序的一个挺好的挑选,因为她不需马上的可用连接。

  POOLED:采用连接池以避免创建新的连接实例时不可或缺的始连接和说明时间。这是同等种时Web应用程序快速响应请求的万分流行的点子。

  JNDI:这个数据源的实现是以用要Spring 或
应用服务器这类的器皿。容器可以集中或当表配置数据源,MyBatis通过JNDI获取数据源。

2.mappers元素: 
包含有mapper的列表,告诉MyBatis到何去探寻SQL语句。mapper主要是概念SQL映射文件。

 

  1. 开创实体化类和数据库接口  
    (此处指演示Dept类。。字段比较少,好操作!)

    1 public class Dept {
    2 private Integer deptNo;
    3
    4 private String deptName;
    5
    6 private String loc;
        (省略其他getter() and Setter()…)
    7 }

 

04.开立SQL映射文件(DeptMapper.xml
  其中添加了针对诺数据库增删改查(模糊查询)的配备:非ResultMap)

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="cn.happy.dao.DeptDao">
 6 
 7 <select id="getAllDept" resultType="cn.happy.entity.Dept">
 8     select * from Dept
 9 </select>
10 
11 <insert id="addDept" parameterType="cn.happy.entity.Dept">
12     insert into dept values(SEQ_NUM.Nextval,#{deptName},#{loc})
13 </insert>
14 
15 <delete id="delDept" parameterType="cn.happy.entity.Dept">
16     delete from dept where deptNo=#{deptNo}
17 </delete>
18 <update id="">
19 
20 </update>
21 <select id="ilikeDept" parameterType="cn.happy.entity.Dept" resultType="cn.happy.entity.Dept">
22     select * from Dept where dname like '%${dname}%'
23 </select>
24 </mapper>

 对许数据库增删改查(模糊查询)的简操作:

MyBatis 1MyBatis 2

  1 package cn.happy.test;
  2 
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.util.List;
  6 
  7 import org.apache.ibatis.io.Resources;
  8 import org.apache.ibatis.session.SqlSession;
  9 import org.apache.ibatis.session.SqlSessionFactory;
 10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 11 import org.junit.Before;
 12 import org.junit.Test;
 13 
 14 import cn.happy.dao.DeptDao;
 15 import cn.happy.entity.Dept;
 16 import cn.happy.entity.Emp;
 17 
 18 public class Test3_MyBatis {
 19     SqlSession session ;
 20     @Before
 21     public void getInit() throws IOException{
 22         InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
 23         SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(stream);
 24         session= sf.openSession();
 25     }
 26     
 27     /**
 28      * ilikeDept
 29      */
 30     @Test
 31     public void Test_ilikeDept(){
 32         Dept dept = new Dept();
 33         dept.setDname("务");
 34         List<Dept> list = session.selectList("ilikeDept",dept);
 35         for (Dept item : list) {
 36             System.out.println(item);
 37         }
 38         
 39         
 40     }
 41     
 42     
 43     /**
 44      * delDept
 45      */
 46     @Test
 47     public void Test_delDept(){
 48         int count = session.delete("delDept",63);
 49         session.commit();
 50         System.out.println(count);
 51     }
 52     
 53     /**
 54      * addDept
 55      */
 56     @Test
 57     public void Test_addDept(){
 58         Dept dept=new Dept();
 59         dept.setDname("行政");
 60         dept.setLoc("五道口");
 61         int count = session.insert("addDept",dept);
 62         session.commit();
 63         System.out.println(count+"\tsave ok!");
 64     }
 65     
 66     /**
 67      * resultMap
 68      */
 69     @Test
 70     public void Test_getAllEmpInfo(){
 71         List<Emp> list = session.selectList("getAllEmpInfo");
 72         for (Emp item : list) {
 73             System.out.println(item.getEmpName());
 74         }
 75     }
 76     
 77     /*
 78      * 条件查询
 79      */
 80     @Test
 81     public void Test03() throws IOException{
 82         
 83         //List<Dept> list = session.selectList("cn.happy.dao.DeptDao.getAllDept");
 84         DeptDao mapper = session.getMapper(DeptDao.class);
 85         List<Dept> list = mapper.getAllDept();
 86         
 87         for (Dept item : list) {
 88             System.out.println(item.getDeptNo());
 89         }
 90         //System.out.println(((Dept)obj).getDeptName());
 91     
 92     }
 93     
 94     
 95     
 96     /*
 97      * mybatis  查询员工表记录数
 98      */
 99     @Test
100     public void Test02() throws IOException{
101         InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
102         SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(stream);
103         SqlSession session = sf.openSession();
104         Object object = session.selectOne("cn.happy.dao.EmpDao.countAll");
105         System.out.println(object);
106         session.close();
107     }
108     
109     
110     @Test
111     public void Test01() throws IOException {
112            String resource = "mybatis-config.xml";
113            InputStream inputStream = Resources.getResourceAsStream(resource);
114            //获得会话工厂
115            SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
116            //会话
117            SqlSession session = sf.openSession();
118            //通过命名空间唯一锁定要执行的sql
119            Dept dept = (Dept)session.selectOne("cn.happy.entity.Dept.selectDeptByNo", "63");
120            System.out.println(dept);
121            session.close();
122     }
123 
124 }

Test Code

 

 

 

 

 

 

clazz。

 

网站地图xml地图