zoukankan      html  css  js  c++  java
  • myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)

    这2种方法的区别:1、添加接口 2、运用接口来实现

    其他的都一样

    添加接口

    //接口的名字和xml的名字一样,这样xml中的namespace就不用改
    public interface UserMapper {
        //接口名的方法名一定要和xml中的id名一样
        public int count();
        
        public void add(User user);
        
        public void update(User user);
        
        public void delete(User user);
        
        public List<User> getUserList();
    }

    添加接口的测试类也很简单(看下注释的差别)

    public class UserDaoByMapper {
        private Logger logger = Logger.getLogger(UserDaoTest.class);
        //count
        @Test
        public void countTest() {
            SqlSession sqlSession = null;
            int count = 0;
            try {
                sqlSession = MyBatisUtil.createSqlSession();
    //            count = sqlSession.selectOne("cn.bdqn.dao.UserMapper.count");
                //有接口后,用这个
                count = sqlSession.getMapper(UserMapper.class).count();
                logger.debug("count==="+count);
            } catch (Exception e) {
                // TODO: handle exception
                sqlSession.rollback();
            }finally{
                MyBatisUtil.closeSqlSession(sqlSession);
            }
        }
        
        //add
        @Test
        public void addTest(){
            SqlSession sqlSession = null;
            try {
                User user = new User();
                user.setUserCode("aaaa");
                user.setUserName("bbbbb");
                sqlSession = MyBatisUtil.createSqlSession();
    //            sqlSession.insert("cn.bdqn.dao.UserMapper.add",user);
                sqlSession.getMapper(UserMapper.class).add(user);
                sqlSession.commit();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
                sqlSession.rollback();
            }finally{
                MyBatisUtil.closeSqlSession(sqlSession);
            }
        }
        //修改
        @Test
        public void updateTest(){
            SqlSession sqlSession = null;
            try {
                User user = new User();
                user.setId(12);
                user.setUserCode("改1111");
                user.setUserName("改2222");
                sqlSession = MyBatisUtil.createSqlSession();
    //            sqlSession.update("cn.bdqn.dao.UserMapper.update",user);
                sqlSession.getMapper(UserMapper.class).update(user);
                sqlSession.commit();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
                sqlSession.rollback();
            }finally{
                MyBatisUtil.closeSqlSession(sqlSession);
            }
        }
        //删除
        @Test
        public void deleteTest(){
            SqlSession sqlSession = null;
            try {
                User user = new User();
                user.setId(12);
                sqlSession = MyBatisUtil.createSqlSession();
    //            sqlSession.delete("cn.bdqn.dao.UserMapper.delete",user);
                sqlSession.getMapper(UserMapper.class).delete(user);
                sqlSession.commit();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
                sqlSession.rollback();
            }finally{
                MyBatisUtil.closeSqlSession(sqlSession);
            }
        }
        
        //查询
        @Test
        public void getUserListTest(){
            SqlSession sqlSession = null;
            try {
                List<User> userList = new ArrayList<User>();
                sqlSession = MyBatisUtil.createSqlSession();
    //            userList = sqlSession.selectList("cn.bdqn.dao.UserMapper.getUserList");
                userList = sqlSession.getMapper(UserMapper.class).getUserList();
                for(User user:userList){
                    logger.debug("user的id==="+user.getId());
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
                sqlSession.rollback();
            }finally{
                MyBatisUtil.closeSqlSession(sqlSession);
            }
        }
    
    }
    <?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+id(方法名)的名字就可以访问 -->
    <mapper namespace="cn.bdqn.dao.UserMapper">
        <!-- id要唯一的,一般是下拉类的方法名 -->
        <!-- 返回的是什么类型int -->
        <select id="count" resultType="int">
            select count(1) from user
        </select>
        <!-- 增加 -->
        <insert id="add" parameterType="User">
            insert into user(userCode,userName,userPassword)
                values (#{userCode},#{userName},#{userPassword})
        </insert>
        <!-- 修改 -->
        <update id="update" parameterType="User">
            update user set userCode=#{userCode},userName=#{userName},
            userPassword=#{userPassword} where id=#{id}
        </update>
        <!-- 删除 -->
        <delete id="delete" parameterType="User">
            delete from user where id=#{id}
        </delete>
        <!-- 查询 -->
        <select id="getUserList" resultType="User">
            select * from user
        </select>
    </mapper>
    <?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">
    
    <!-- 通过这个配置文件完成mybatis与数据库的连接 -->
    <configuration>
        <!-- 引入 jdbc.properties 文件-->
        <properties resource="jdbc.properties"/>
        <!-- alias别名 -->
        <typeAliases>
            <!-- <typeAlias type="cn.bdqn.pojo.User" alias="User"/> -->
            <!-- 用这个比较方便,不用一个一个写。包下的就是他的类名 -->
            <package name="cn.bdqn.pojo"/>
        </typeAliases>
    
        <environments default="development">
            <environment id="development">
                <!--配置事务管理,采用JDBC的事务管理  -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
        
        <!-- 将mapper文件加入到配置文件中  将来mapper文件很多所以是mappers -->
        <mappers>
            <mapper resource="cn/bdqn/dao/UserMapper.xml"/>
        </mappers>
    </configuration>
  • 相关阅读:
    keras:InternalError: Failed to create session
    centos 常用命令
    centos7 安装gdal2.3.1
    centos mysql初探 -- 配置、基本操作及问题
    machine learning 之 Recommender Systems
    machine learning 之 Anomaly detection
    centos R包 tidyverse安装
    centos 问题解决记录
    R python在无图形用户界面时保存图片
    隐私政策
  • 原文地址:https://www.cnblogs.com/xuerong/p/4958576.html
Copyright © 2011-2022 走看看