mybatis-添加操作

一、创建项目和数据库
    项目名称: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节示例: 保存员工信息
                 * @param emp
                 */
                public void insertEmp(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="insertEmp" parameterType="Emp">
            INSERT INTO
                emp(empno, ename, job, mgr,hiredate, sal,comm,deptno)
            VALUES
                (#{empNo}, #{empName}, #{job}, #{mgr}, #{hireDate}, #{salary},#{comm},#{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.insertEmp",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();
            /**
             * 添加操作
             * @throws Exception
             */
            @Test
            public void testInsertEmp() throws Exception {
                Emp emp = new Emp();
                emp.setEmpNo(7372);
                emp.setEmpName("张平");
                emp.setJob("职员");
                emp.setMgr(7902);
                emp.setHireDate(new Date());

emp.setSalary(2008.15);
                emp.setDeptNo(1);
                emp.setComm(1000.25);
                empDao.insertEmp(emp);
            }
        }

时间: 2024-10-16 04:42:53

mybatis-添加操作的相关文章

MyBatis insert操作返回主键

在写毕业设计的时候总是发现有一些小的细节问题,比如说...... MyBatis insert操作后怎么返回主键? 原来不懂的时候是调用一个select语句,将刚刚insert的对象再传入进去查出主键,但是这么写主键就没有意义了,什么都可以放到数据库里面去查. 在说,这样也会引起很多其他的问题.比如说你要查一下post表,在你不知道post_id的情况下你利用了post_name去查询post对象. 万一post_name有重复的呢?怎么办?所以有了这篇博客. 网上有很多大神写了很多mybati

mybatis添加记录时返回主键id

参考:https://www.cnblogs.com/nuccch/p/7687281.html 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个目的.鉴于mybatis目前已经支持xml配置和注解2种方式,所以分别给予详细介绍. 数据表设计: drop table if exists `test`; create table `test` ( `id` bigint(20) NOT NU

MyBatis的操作与配置文件

一.MyBatis使用的两种方式:第一种:方式是自动映射第二种:使用XML方式 二.MyBatis操作: 1.使用Mapper文件方式 2.使用Mapper接口和注解方式 3.mapper文件与mapper接口结合使用(推荐这种方法) 这里介绍使用xml方式(MyBatis操作可以完全使用XML的映射文件进行操作) (一).mapper文件与mapper接口结合使用: 1.编写实体类,添加get和set方法.toString方法 2.创建MyBatis操作的数据访问接口 #MyBatis的操作:

[Android系列—] 4. 添加操作栏(Action Bar)

前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应用程序一致, 以便被用户熟悉和接受. 主要功能包括: 1. 标识你的应用程序,指示在应用程序的用户的位置. 2. 能很方便的操作重要的功能(像搜索功能) 3. 导航和视图切换功能(使用制表符或下拉列表) 类似的效果如下: 设置操作栏 在基本的使用状况是, 操作栏在左边显示活动的标题和应用的图标. 类似: 设置一个基本的操作栏需要你使用的应用活动主题支持操作栏, 这和

Mybatis添加Ehcache支持

1.Mybatis默认的缓存配置 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制. Mybatis缓存包含全局的缓存和局部的缓存,全局的缓存可以讲主配置文件的setting属性的参数cacheEnabled设置为true(好吧,默认为true), 局部的二级缓存默认情况下是没有开启的,要开启二级缓存,你需要在你的 SQL 映射文件中添加一行: <cache/> eviction(回收策略) 默认的是 LRU.可选择项有FIFO,SOFT,WEAK flushInte

aop为系统添加操作日志,注入或配置声明的方式来实现

最近做项目实现操作记录添加日志,由于aop这两种实现方式各有优缺点,所以都实现了一下以后根据具体业务选择. 1实现方式一注入: 1.1首先在xml中开启aop注入,需要引入的包此处省略,可百度自己查找. <aop:aspectj-autoproxy /> 1.2添加链接点 package com.oasis.wyvern.res.service.base.logService; import java.lang.annotation.*; @Target({ElementType.PARAME

mybatis持久化操作“无效的类型111解决”

mybatis持久化操作时,如果插入数据为null的情况下,由于内部机制问题,会导致报错,导致出现:“无效的类型:1111”示例如下: org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: ja

Mybatis级联操作

对于Mybatis级联操作,网上好多资料都在讲级联查询的一些Mapping的标签,但是对于级联更新和插入的资料不是很多,但是这似乎是和Mybatis关系不大,只是之前用Hibernate用习惯了,感觉这些东西是由持久层框架l来维护的,由于Mybatis比Hibernate高效,摒弃了这些,所以对于INSERT和UPDATE的级联关系大部分是由数据库本身去维护的. 级联更新 有两个对象A和B,B的主键是A的外键,先需求是把B的保存后,在A的外键那随之更新: (1)先插入B到数据库中, (2)从数据

通过zabbix自带api进行主机的批量添加操作

通过zabbix自带api进行批量添加主机 我们需要监控一台服务器的时候,当客户端装好zabbix-agent端并正确配置以后,需要在zabbix-server的web gui界面进行添加zabbix-agent操作,填写host_name,访问名,ip地址,端口还有模板等信息 这样操作比较方便,但当我们需要添加的主机一次性有上百台甚至前台的时候这种方式效率就比较低了,一般有如下解决方式:1.通过自动发现,自动注册主机2.通过zabbix_api的方式进行批量操作 今天我们使用第二种方式进行操作

Linux 系统添加操作记录--命令审计功能

**Linux 系统添加操作记录审计 1.mkdir -p /usr/local/domob/records/ chmod 777 /usr/local/domob/records/ chmod +t /usr/local/domob/records/ 2.vi /etc/profile 在最后添加下面的代码 if [ ! -d /usr/local/domob/records/${LOGNAME} ] then mkdir -p /usr/local/domob/records/${LOGNA