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 updateEmp(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">
            <update id="updateEmp" parameterType="cn.jbit.mybatis092901.domain.Emp">
                UPDATE
                    EMP
                SET
                    ename=#{empName},
                    job=#{job},
                    mgr=#{mgr},
                    hiredate=#{hireDate},
                    sal=#{salary},
                    comm=#{comm},
                    deptno=#{deptNo}
                WHERE
                    empno= #{empNo}
            </update>
        </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.update("cn.jbit.mybatis092901.dao.IEmpDao.updateEmp",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 testUpdateEmp() throws Exception {
                Emp emp = new Emp();
                emp.setEmpNo(3);
                emp.setEmpName("张平1");
                emp.setJob("职员");
                emp.setMgr(7902);
                emp.setHireDate(new Date());
                emp.setSalary(2008.15);
                emp.setComm(1000.15);
                emp.setDeptNo(9);
                empDao.updateEmp(emp);
            }
        }

时间: 2024-10-28 01:06:39

mybatis-修改操作的相关文章

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

MyBatis insert操作返回主键

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

@Modifying 注解完成修改操作

以上我们做的都是查询,那要如何实现 修改.删除和添加呢? 可以通过以下两种方式: (1)通过实现 CrudRepository 接口来完成(以后介绍): (2)通过 @Modifying 注解完成修改操作(注意:不支持新增) 我们依然使用 @Query 注解,但是还要附加注解 @Modifying. @Modifying @Query("update Person set email = :email where lastName =:lastName") void updatePer

MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache

转自:http://www.mongoing.com/archives/2540 Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况 下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了wiredtiger的大致原理,并简单总结,不保证内容都是正确的,如有问题 请指出,欢迎讨论交流. 按照Mongodb默认的配置,?WiredTiger的写操作会先写入Cache,并持久化到WAL(Write a

基于jsp+servlet图书管理系统之后台用户信息修改操作

上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的时候修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/detail/biexiansheng/9732691 为了方便理解和说明,先写一下执行的流程和步奏,详细代码可以下载连接. 1:修改操作的执行流程: 1.1:修改操作需要先获取到用户信息的编号,然后才可以进行修改,脑子里一定有这个思路.故获取用户编号的操作即为查询操作.这里使用了一个小工具进行分页操

mongoDB学习(二)之常用的修改操作

插入文档(插入数据库) db.person.insert({_id:"0001",name"yuexin"}) 清除数据 db.person.drop() 批量插入文档 shell中不支持批量插入 完成批量插入使用for循环 for(var i=0;i<10;i++){ .. db.persons.insert({_id:i,name:"yuexin"+i}) .. } save操作 save操作与insert操作的区别是当id一样的时候s

Azure编程笔记(2):重复CloudTable的修改操作

内容提要 对MicrosoftAzure的CloudTable进行操作,有很多种操作失败的可能,比如网络连接异常,比如短时间内发送的请求数太多.很多时候我们在失败之后过一段时间再重试,就能操作成功.但是有些失败不是简单重试就解决的.本文讲述的在修改操作时候发生的PreconditionFailed错误就是一个例子. 问题描述 在上一篇博客里,我们定义一个类型Account,用来模拟社交网站的账户基本信息.这里我们继续用这个类型为例子来讲述多个线程同时发送更新请求时可能发生的问题. 我们首先用如下

[Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作

插入操作: 直接给个例子 import static org.springframework.data.mongodb.core.query.Criteria.where; import static org.springframework.data.mongodb.core.query.Criteria.query; … Person p = new Person("Bob", 33); mongoTemplate.insert(p);//还可以多加一个参数,来提供collectio

采用DOM进行表格的修改操作

2015-08-31 <html> <head> <title>采用DOM进行表格的修改操作</title> <script language="JavaScript"> function addRow() { var tab=document.getElementbyId("mytab");//取得table的节点对象 var id=document.getElementById("id&quo

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