一、创建项目和数据库
    项目名称:mybatis092901
    数据库名称:mybatis0929
        表名称:dept
        CREATE TABLE `dept` (
          `deptNo` int(11) NOT NULL,
          `deptName` varchar(30) DEFAULT NULL,
          `location` varchar(30) DEFAULT NULL,
          PRIMARY KEY (`deptNo`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        表名称:emp
        CREATE TABLE `emp` (
          `empno` int(11) NOT NULL,
          `ename` varchar(30) DEFAULT NULL,
          `hiredate` date DEFAULT NULL,
          `job` varchar(30) DEFAULT NULL,
          `sal` double DEFAULT NULL,
          `mgr` varchar(30) DEFAULT NULL,
          `comm` varchar(30) DEFAULT NULL,
          `deptno` int(11) DEFAULT NULL,
          PRIMARY KEY (`empno`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、添加jar包
    1.在项目上创建lib目录
        /lib
    2.在lib目录下添加jar
        junit-4.10.jar
        mybatis-3.2.2.jar
        mysql-connector-java-5.1.10-bin.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.mybatis092901.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/mybatis0929"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                    </dataSource>
                </environment>
            </environments>
        </configuration>
四、创建实体类
    1.在src目录下创建包
        包名:cn.jbit.mybatis092901.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 String empName;
            //员工编号
            private Integer empNo;
            //员工入职时间
            private Date hireDate;    
            //员工职位
            private String job;
            //员工工资
            private Double salary;
            //经理编号
            private Integer mgr;
            //奖金
            private Double comm;
            //部门编号
            private Integer deptNo;
            //省略get and set 
        }
五、持久层设计
    1.接口设计
        1).在src目录创建包
            包名:cn.jbit.mybatis092901.dao
        2).在包下创建接口
            接口名:IEmpDao.java
            接口中内容:
            public interface IEmpDao {
                /**
                 * 10.2.3节示例: 保存员工信息,映射文件使用selectKey插入主键
                 * @param emp
                 */
                public void insertEmpUseKey(Emp emp);
            }
六、添加相关映射文件
    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.mybatis092901.dao.IEmpDao">
            <insert id="insertEmpUseKey" parameterType="Emp">
                  <selectKey keyProperty="empNo" resultType="int">
                    SELECT LAST_INSERT_ID() AS VALUE
                </selectKey>
                INSERT INTO 
                    emp(empno, ename, job, mgr,hiredate, sal,comm,deptno)
                VALUES
                    (#{empNo}, #{empName}, #{job}, #{mgr}, #{hireDate}, #{salary},#{comm,jdbcType=DOUBLE},#{deptNo})
            </insert>
        </mapper>
七.持久层实现类设计
        1).在src目录下创建包
            包名:cn.jbit.mybatis092901.dao.impl
        2).在包下创建实现类
            实现类名:EmpDaoImpl.java
            实现类中的内容:
            /**
             * 为了使用代码看起来清晰,SqlSession的获取都使用工具类
             */
            @Override
            public void insertEmp(Emp emp) {
                String resource = "mybatis-config.xml";
                Reader reader = null;
                SqlSessionFactory factory = null;
                SqlSession session = null;
                try {
                    reader = Resources.getResourceAsReader(resource);
                    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
                    factory = builder.build(reader);
                    session = factory.openSession();
                    session.insert("cn.jbit.mybatis092901.dao.IEmpDao.insertEmpUseKey",emp);
                    session.commit();
                } catch (Exception e1) {
                    e1.printStackTrace();
                }finally {
                    session.close();
                }
            }
八、在配置文件中添加映射文件引用
    1.在mybatis-fonfig.xml文件中添加mapper
        <mappers>
            <mapper resource="EmpDaoMapper.xml"/>
        </mappers>
九、测试操作
    1.在项目中创建test目录
        /test
    2.在test目录下创建包
        cn.jbit.mybatis092901.dao
    3.在包下创建测试类
        类名:EmpDaoTest.java
        内容:
        public class EmpDaoTest {
            //员工类的持久层实现
            private static IEmpDao empDao = new EmpDaoImpl();
            @Test
            public void testInsertEmpUserKey() throws Exception {
                Emp emp = new Emp();
                emp.setEmpName("张平U");
                emp.setJob("职员");
                emp.setMgr(7902);
                emp.setHireDate(new Date());
                emp.setSalary(2008.15);
                emp.setDeptNo(9);
                emp.setComm(1000.25);
                empDao.insertEmpUseKey(emp);
            }

}

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

mybatis-id使用自增长的添加操作相关推荐

  1. 【MyBatis笔记】12-多对一添加操作(添加新客户及对应的新订单)

    多对一添加操作 场景:现在想要添加一个新客户对应一个新订单,那么要怎么来添加呢? 分析:由于添加订单时,客户对订单是一对多的关系,所以添加订单的时候必须要指明一位客户. 要同时添加新客户以及一个新订单 ...

  2. mybatis insert插入成功返回0_mybatis添加客户

    在MyBatis的映射文件中,添加操作是通过元素来实现的.例如,向数据库中的t_customer表中插入一条数据可以通过如下配置来实现. 在上述配置代码中,传入的参数是一个Customer类型,该类型 ...

  3. 利用Mybatis对数据库进行增删改查操作

    文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...

  4. 3.平凡之路-传统模式添加操作

    回顾: 上节课我们完成了MyBatis的环境搭建 核心配置文件 映射文件 API的执行过程 如何执行定制的SQL语句 我们测试的是"死"的数据,那么下面我们使用容器传递动态的数据 ...

  5. android如何在底部显示四个按钮,[Android系列—] 四. 添加操作栏(Action Bar)

    [Android系列-] 4. 添加操作栏(Action Bar) 前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应 ...

  6. Mybatis生成器插件扩展,生成OR操作

    Mybatis生成器插件扩展,生成OR操作 ManExample example = new ManExample();ManExample.Criteria and = example.create ...

  7. 12-多对一添加操作(添加新客户及对应的新订单)

    多对一添加操作 场景:现在想要添加一个新客户对应一个新订单,那么要怎么来添加呢? 分析:由于添加订单时,客户对订单是一对多的关系,所以添加订单的时候必须要指明一位客户. 要同时添加新客户以及一个新订单 ...

  8. python获取当前进程id_Python进程,多进程,获取进程id,给子进程传递参数操作示例...

    本文实例讲述了Python进程,多进程,获取进程id,给子进程传递参数操作.分享给大家供大家参考,具体如下: 线程与线程之间共享全局变量,进程之间不能共享全局变量. 进程与进程相互独立  (可以通过s ...

  9. Pandas知识点-添加操作append

    Pandas知识点-添加操作append 在Pandas中,append()方法用于将一个或多个DataFrame或Series添加到DataFrame中.append()方法也可以用于合并操作,本文 ...

最新文章

  1. 2021年大数据HBase(七):Hbase的架构!【建议收藏】
  2. rust货轮什么时候出现_与 Rust 在一起的四年
  3. java对.txt文件进行读取方法实战---室友是网络安全方向,帮他提取文件里的特定ip
  4. php怎么关闭oracle连接,PHP 连接 Oracle
  5. IE(=8)版本不支持getElementsByClassName()
  6. 云南林业计算机单招试题,2016年云南林业职业技术学院单招的模拟题含解析-.docx...
  7. apache启动失败_请检查相关配置.√mysql5.1已启动._1、Apache启动失败,请检查相关配置-百度经验...
  8. 某程序员10个月时间做了30个私活单子,纯收入40万?
  9. mysql的大字段clob,Oracle数据库导出大字段(CLOB)数据
  10. 【JavaScript】数学计算的函数与数字的格式化
  11. Elasticsearch合并高亮字段
  12. 《圣殿祭司的ASP.NET4.0专家技术手册》----导读
  13. oracle 混合分区表,Oracle 19C Hybrid partitioned tables混合分区表
  14. js嵌套函数内外层分别使用this关键字困局解
  15. java正则表达式的减号_JAVA正则表达式
  16. Linux基础学习总结
  17. 浅谈探索性数据分析的方法—如何下手处理一堆繁杂的数据
  18. 《孙子兵法》十三篇注译(1--导读)
  19. Google Chrome 更新失败(错误:3)检查更新时出错
  20. 【大学生数学建模竞赛时间一览表】

热门文章

  1. ORACLE监听问题
  2. EIGRP单边邻居——认证
  3. 20180828 上课截图
  4. 【MySQL】【高可用】从masterha_master_switch工具简单分析MHA的切换逻辑
  5. Android进入商店并跳转到指定应用
  6. ios category 笔记整理(一)
  7. 如何清空android ListView控件的内容
  8. 服务器克隆机网络端口排错
  9. Lync Server 2013企业版部署系列之三:CA准备
  10. 如何使用Database2Sharp进行代码生成