注:  此文中的实体类还是沿用上一章的Emp和Dept两个类

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

02.编写MyBatis配置文件(配置文件可以在上面下载的压缩包root下找到PDF,里面也有示例配置)

Emp.xml

 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.happy.dao.EmpDao">
<resultMap id="empMap" type="cn.happy.entity.Emp">
<id property="empId" column="empNo"/>
<result property="empName" column="ENAME"/>
<result property="job"/>
<result property="mgr"/>
<result property="hiredate"/>
<result property="sal"/>
<result property="comm"/>
<association property="dept" javaType="cn.happy.entity.Dept">
<id property="deptNo"/>
<result property="deptName" column="DNAME"/>
<result property="loc"/>
</association>
</resultMap> <select id="getAllEmpInfo" resultMap="empMap">
select * from Emp e,Dept d where e.deptno=d.deptno
</select> <!-- <select id="countAll" resultType="int" >
select count(*) from Emp
</select> -->
</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映射文件。

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

 public class Dept {
private Integer deptNo; private String deptName; private String loc;
    (省略其他getter() and Setter()...)
}

04.创建SQL映射文件(DeptMapper.xml   其中添加了对应数据库增删改查(模糊查询)的配置:非ResultMap)

 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.happy.dao.DeptDao"> <select id="getAllDept" resultType="cn.happy.entity.Dept">
select * from Dept
</select> <insert id="addDept" parameterType="cn.happy.entity.Dept">
insert into dept values(SEQ_NUM.Nextval,#{deptName},#{loc})
</insert> <delete id="delDept" parameterType="cn.happy.entity.Dept">
delete from dept where deptNo=#{deptNo}
</delete>
<update id=""> </update>
<select id="ilikeDept" parameterType="cn.happy.entity.Dept" resultType="cn.happy.entity.Dept">
select * from Dept where dname like '%${dname}%'
</select>
</mapper>

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

 package cn.happy.test;

 import java.io.IOException;
import java.io.InputStream;
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 org.junit.Before;
import org.junit.Test; import cn.happy.dao.DeptDao;
import cn.happy.entity.Dept;
import cn.happy.entity.Emp; public class Test3_MyBatis {
SqlSession session ;
@Before
public void getInit() throws IOException{
InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(stream);
session= sf.openSession();
} /**
* ilikeDept
*/
@Test
public void Test_ilikeDept(){
Dept dept = new Dept();
dept.setDname("务");
List<Dept> list = session.selectList("ilikeDept",dept);
for (Dept item : list) {
System.out.println(item);
} } /**
* delDept
*/
@Test
public void Test_delDept(){
int count = session.delete("delDept",);
session.commit();
System.out.println(count);
} /**
* addDept
*/
@Test
public void Test_addDept(){
Dept dept=new Dept();
dept.setDname("行政");
dept.setLoc("五道口");
int count = session.insert("addDept",dept);
session.commit();
System.out.println(count+"\tsave ok!");
} /**
* resultMap
*/
@Test
public void Test_getAllEmpInfo(){
List<Emp> list = session.selectList("getAllEmpInfo");
for (Emp item : list) {
System.out.println(item.getEmpName());
}
} /*
* 条件查询
*/
@Test
public void Test03() throws IOException{ //List<Dept> list = session.selectList("cn.happy.dao.DeptDao.getAllDept");
DeptDao mapper = session.getMapper(DeptDao.class);
List<Dept> list = mapper.getAllDept(); for (Dept item : list) {
System.out.println(item.getDeptNo());
}
//System.out.println(((Dept)obj).getDeptName()); } /*
* mybatis 查询员工表记录数
*/
@Test
public void Test02() throws IOException{
InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(stream);
SqlSession session = sf.openSession();
Object object = session.selectOne("cn.happy.dao.EmpDao.countAll");
System.out.println(object);
session.close();
} @Test
public void Test01() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//获得会话工厂
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
//会话
SqlSession session = sf.openSession();
//通过命名空间唯一锁定要执行的sql
Dept dept = (Dept)session.selectOne("cn.happy.entity.Dept.selectDeptByNo", "");
System.out.println(dept);
session.close();
} }

Test Code

clazz。

MaBatis配置(单配置 之一)的更多相关文章

  1. BootStrap 智能表单系列 八 表单配置json详解

    本章属于该系列的高级部分,将介绍表单中一些列的配置 1.config列的配置: 主要用于控制布局 :config:{autoLayout:true|'1,2,2,4'} true:根据配置项最里层的数 ...

  2. 【JEECG技术文档】表单配置-树形表单

    表单配置支持树型表单了,具体效果如下图: 配置说明: 1.是否树:选择是. 2.树形表单父Id:表的自关联外键. 3.树形表单列表:显示树形图标的列,如上图中为[组织机构名称]. 4.默认值:最外层数 ...

  3. 【JEECG技术博文】JEECG表单配置-树形表单

    表单配置支持树型表单了,详细效果例如以下图:

  4. Nginx 核心配置-单节点实现多域名访问

    Nginx 核心配置-单节点实现多域名访问 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验环境说明 1>.虚拟机环境说明 [root@node101.yinzheng ...

  5. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

  6. SpringMVC之五:自定义DispatcherServlet配置及配置额外的 servlets 和 filters

    相关文章 <Servlet3.0之四:动态注册和Servlet容器初始化> <SpringBoot中通过SpringBootServletInitializer如何实现组件加载> ...

  7. nginx 反向代理 与 Apache backend的配置联合配置

    nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1.  设置域名, 子域名映射到指定服务器ip ...

  8. nginx配置(windows配置)

    以下是我的项目用到的一份配置文件#user  nobody;worker_processes  4; #进程数,一般cpu是几核就写多少#error_log  logs/error.log;#erro ...

  9. Nginx负载均衡配置简单配置方法

    http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...

  10. java操作redis集群配置[可配置密码]和工具类(比较好用)

    转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>red ...

随机推荐

  1. jetty添加容器容器提供包

    在tomcat的使用中,我们常常会吧容器提供的包放入:TOMCAT_HOME\lib下, 比如mysql-connection-java-version.jar 在使用jetty容器的时候,若要让容器 ...

  2. 浅谈href=与href=javascript_void(0)的区别

    "#"包含了一个位置信息.默认的锚点是#top 也就是网页的顶端.而javascript:void(0)  仅仅表示一个死链接,这就是为什么有的时候页面很长,浏览链接明明是#可是跳 ...

  3. 数据库中间件MyCat学习总结(2)——MyCat-Web原理介绍

    Mycat是一个分库分表的基于java开发的数据库中间件,使用过程中需要有一个监控系统,mycat-web应运而生.mycat-web是一个使用SpringMVC + Mybatis的监控平台,使用常 ...

  4. [luoguP2904] [USACO08MAR]跨河River Crossing(DP)

    传送门 f[i] 表示送前 i 头牛过去再回来的最短时间 f[i] = min(f[i], f[j] + sum[i - j] + m) (0 <= j < i) ——代码 #includ ...

  5. 1. FrogRiverOne 一苇渡江 Find the earliest time when a frog can jump to the other side of a river.

    package com.code; public class Test04_3 { public static int solution(int X, int[] A) { int size = A. ...

  6. QT如何修改字符编码格式

    编辑-Select Encoding,然后在弹出窗口中修改字符编码.                      

  7. HDU 4499 Cannon (暴力搜索)

    题意:在n*m的方格里有t个棋子,问最多能放多少个炮且每一个炮不能互相攻击(炮吃炮) 炮吃炮:在同一行或同一列且中间有一颗棋子. #include <stdio.h> #include & ...

  8. 用XMLRPC开服务进行server/client通信

    本文讲一下怎样用python的xmlrpc开服务,进行server/client的通信. 应用场景:1)需多client訪问应用程序给予应答情况--网页服务.  2)数据极大,希望载入一次.后面仅仅用 ...

  9. Unity3d中相应各平台Path

    IOS: Application.dataPath :                      Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xx ...

  10. unity3D游戏开发实战原创视频讲座系列11之相扑游戏开发并公布到Win\WP8

     解说文件夹 第一讲 游戏的演示和资源介绍 第二讲 场景的建设 第三讲 玩家的移动 第四讲 对手的AI(让对手动起来) 第五讲 游戏的管理(上) 第六讲 游戏的管理(下) 第七讲 公布到Win8系 ...