当前位置: 首页 > news >正文

mybatis-入门

一、创建项目和数据库
    1.项目名称:mybatis092701
    2.数据库名称:mybatis
        表名:dept
        CREATE TABLE `dept` (
          `deptNo` int(11) NOT NULL,
          `deptName` varchar(30) DEFAULT NULL,
          `location` varchar(100) DEFAULT NULL,
          PRIMARY KEY (`deptNo`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        表名:emp
        CREATE TABLE `emp` (
          `empNo` int(11) NOT NULL,
          `empName` varchar(30) DEFAULT NULL,
          `hireDate` date DEFAULT NULL,
          `job` varchar(30) DEFAULT NULL,
          `salary` double DEFAULT NULL,
          `mgr` int(11) DEFAULT NULL,
          `comm` double DEFAULT NULL,
          `deptNo` int(11) DEFAULT NULL,
          PRIMARY KEY (`empNo`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、添加jar包支持
    junit-4.4.jar
    mybatis-3.2.2.jar
    mysql-connector-java.jar
三、添加配置文件
    1.在项目中创建conf目录
        /conf
    2.在conf目录添加配置文件
        配置文件名称:mybatis-config.xml
        内容:
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        <configuration>
            <typeAliases>
                <typeAlias alias="Emp" type="cn.jbit.mybatis092701.domain.Emp"/>
            </typeAliases>
            <environments default="development">
                <environment id="development">
                    <transactionManager type="JDBC"/>
                    <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                    </dataSource>
                </environment>
            </environments>
        </configuration>
四、创建实体类
    1.在src下创建包
        cn.jbit.mybatis092701.domain
    2.在包下创建实体类
        类名:Dept.java
        public class Dept implements Serializable {
            private Integer deptNo;//部门编号
            private String deptName;//部门名称
            private String location;//部门地址
            //get and set 省略
        }
        类名:Emp.java
        public class Emp implements Serializable {
            //员工编号
            private Integer empNo;
            //员工姓名
            private String empName;
            //员工入职时间
            private Date hireDate;    
            //员工职位
            private String job;
            //员工工资
            private Double salary;
            //经理编号
            private Integer mgr;
            //奖金
            private Double comm;
            //部门编号
            private Integer deptNo;
            //get and set 省略
        }
五、持久层设计
    接口设计
    1.在src下创建包
        cn.jbit.mybatis092701.dao
    2.在包下创建接口
        接口名:IEmpDao.java
        内容:
        /**
         * 员工持久层接口
         * @author Administrator
         *
         */
        public interface IEmpDao {
            //查询所有员工个数
            public int countAll();
        }
    实现类设计
    1.在src下创建包
        cn.jbit.mybatis092701.dao.impl
    2.在包下创建类
        类名:EmpDaoImpl.java
        内容:
        public class EmpDaoImpl implements IEmpDao {
            @Override
            public int countAll() {
                //加载配置文件
                String resource = "mybatis-config.xml";
                Reader reader = null;
                SqlSessionFactory factory = null;
                SqlSession session = null;
                int iCount = 0;
                try {
                    //输入流
                    reader = Resources.getResourceAsReader(resource);
                    //创建工厂
                    //SqlSessionFactory
                    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
                    factory = builder.build(reader);
                    session = factory.openSession();
                    //cn.jbit.mybatis092701.dao.IEmpDao命名空间
                    //mycountAll:id名称
                    iCount = session.selectOne("cn.jbit.mybatis092701.dao.IEmpDao.mycountAll");
                    System.out.println(iCount);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }finally {
                    session.close();
                }
                return iCount;
            }
        }
六、创建映射文件
    1.conf下创建映射文件
        映射文件名称:EmpDaoMapper.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.jbit.mybatis092701.dao.IEmpDao">
               <select id="mycountAll" resultType="int">
                  SELECT count(*) FROM emp;
             </select>
        </mapper>
    2.在核心配置文件中添加引用映射文件
        <mappers>
            <mapper resource="EmpDaoMapper.xml"/>
        </mappers>
七、测试
    1.在项目中创建test目录
        /test
    2.在test目录下创建包
        cn.jbit.mybatis092701.dao
    3.在包下创建测试类
        类名:EmpDaoTest.java
        内容:
        public class EmpDaoTest {
            private static IEmpDao empDao = new EmpDaoImpl();
            @Test
            public void testCountAll() {
                int iCount = empDao.countAll();
                System.out.println("the emp record is "+iCount);
            }

        }

本文转自  素颜猪  51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1558747

相关文章:

  • iptables入门 (取自鸟哥的Linux私房菜)
  • Linux(CentOS)安装rar和unrar以及rar和unrar命令的使用
  • Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
  • 如何解决双显示器显示B/S架构软件的问题
  • c++中将_TCHAR转为string
  • 入门到放弃node系列之Hello Word篇
  • Neither BindingResult nor plain target object f...
  • ios中非ARC项目中引用ARC文件
  • asp.net Mvc Area 找到多个与名为相同的控制器匹配的类型 请通过调用含有“namespaces”参数...
  • MFC连接数据库
  • mina 和 xsocket
  • RHCE 学习笔记(7) 进程管理
  • vSphere基本功能介绍
  • AI 新技术革命将如何重塑就业和全球化格局?深度解读 UN 报告(中篇)
  • 【java实现邮件的发送分享】
  • Consul Config 使用Git做版本控制的实现
  • CSS相对定位
  • HTTP中GET与POST的区别 99%的错误认识
  • Laravel Mix运行时关于es2015报错解决方案
  • nginx 配置多 域名 + 多 https
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Python实现BT种子转化为磁力链接【实战】
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 如何正确理解,内页权重高于首页?
  • # Apache SeaTunnel 究竟是什么?
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Linux(make工具和makefile文件以及makefile语法)
  • (+4)2.2UML建模图
  • (1)(1.13) SiK无线电高级配置(五)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (poj1.3.2)1791(构造法模拟)
  • (分布式缓存)Redis哨兵
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十)T检验-第一部分
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)winform之ListView
  • (转)创业家杂志:UCWEB天使第一步
  • .md即markdown文件的基本常用编写语法
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net CHARTING图表控件下载地址
  • .net core 连接数据库,通过数据库生成Modell
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net framework profiles /.net framework 配置
  • .net framework4与其client profile版本的区别
  • .NET NPOI导出Excel详解
  • .NET Project Open Day(2011.11.13)
  • .NET 服务 ServiceController