zoukankan      html  css  js  c++  java
  • Mybatis 别名机制,自动扫描 数据的增删改

    mybatis别名机制:

    在mybatis.xml文件中的<configuration></configuration>标签中间加入属性<typeAliases></typeAliases>

    <?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 type="com.maya.model.TUser" alias="test"/> --><!-- 别名 -->
        <package name="com.maya.model" /> <!-- 有点像spring中的那个扫描器 -->
        </typeAliases>
        
        
        <environments default="test1">
                <environment id="test1">
                    <transactionManager type="JDBC"></transactionManager>
                    <dataSource type="POOLED">
                        <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>   
                        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>    
                        <property name="username" value="zhao"/>
                        <property name="password" value="123"/>
                    </dataSource>
                </environment>
        </environments>
        <mappers>
            <mapper resource="com/maya/dao/TUserMapper.xml"/>
        </mappers>
    
    </configuration>

    此时,在TUserMapper.xml文件中,将resultType改一下

    <?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="com.maya.dao.TUserMapper"><!-- 一般的命名规则,包名开始,到对应的配置文件结束 -->
        
        <!-- <select id="List" resultType="com.maya.model.TUser" >-->    <!--  原来的的样式 -->
    <!--     <select id="List" resultType="test" >          -->                    <!-- 用别名的方式 -->
        <select id="List" resultType="tUser">    <!-- 扫描的方式,命名规则:对应的类的名,首字母小写 -->
        select * from t_user 
        </select>
    </mapper>

     经测试,依然可以执行

    假设数据库中的列名与实体类中的数据类型对应不起来,那么需要在配置文件中加入如下代码

    <?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="com.maya.dao.TUserMapper">
        
        <!-- 需要加的部分 -->
        <resultMap type="tUser" id="user">
            <result property="username1" column="username" jdbcType="number" javaType="int"/>
            <!--property是实体类中的属性,column是数据库中的字段 jdbctype 数据库中的字段类型  -->
        </resultMap>
        
        
        <select id="List" resultType="tUser">    
        select * from t_user 
        </select>
    </mapper>

    增删改:

    添加:

    <?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="com.maya.dao.TUserMapper">
    
        
        <insert id="add" parameterType="TUser">    <!--传过来的实体类  -->
            insert into t_user values(#{id},#{userName},#{password})<!--sql语句,里面对应着实体类的值,这里是#{}  不是el表达式  -->
        </insert>
    </mapper>

    junit测试

        @Test
        public void insert(){
            TUser tu=new TUser();
            tu.setId(1);
            tu.setUserName("赵六");
            tu.setPassword("123456");
            int s=ss.insert("com.maya.dao.TUserMapper.add", tu);
            System.out.println(s);
        }
        

    打印结果如下:

    数据库中的结果如下

    删除:

    <?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="com.maya.dao.TUserMapper">
        <delete id="delete" parameterType="int">
            delete t_user where id=#{id}
        </delete>
    </mapper>

    junit测试:

        @Test
        public void delete(){
            int s=ss.insert("com.maya.dao.TUserMapper.delete", 1);
            System.out.println(s);
        }

    数据库中id为1的数据已经没了

    改:

    <?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="com.maya.dao.TUserMapper">
        <update id="update" parameterType="tUser">
            update t_user set username=#{userName},password=#{password} where id=#{id}
        </update>    
    </mapper>

    junit测试

        @Test
        public void update(){
            TUser tu=new TUser();
            tu.setId(4);
            tu.setUserName("赵六");
            tu.setPassword("123456");
            ss.update("com.maya.dao.TUserMapper.update", tu);
        }

    十分抱歉,最后这个应该是没错的,电脑上的数据库突然崩了,没法查看  但是我感觉应该是没有错了的

  • 相关阅读:
    Android开发笔记记住用户名密码(SharedPreferences)
    Android 开发笔记——全局变量
    linker command failed with exit code 1 (use v to see invocation)
    cocos2diphone搭建开发环境。
    google 打不开?
    iOS 局部变量 setTag后可在别的地方调用 viewWithTag
    _OBJC_CLASS_$_SKStoreProductViewController
    iOS 合并.a文件,制作通用静态库
    NSUserDefaults 数据的存取
    xcode 4 制作静态库详解 [转]
  • 原文地址:https://www.cnblogs.com/zhaotiancheng/p/6736587.html
Copyright © 2011-2022 走看看