mybatis一些小知识点

引入依赖
<!-- mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

<!-- 连数据库 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>

<!-- 日志 -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.1</version>
</dependency>

插入数据时获取插入数据的id
1.第一种方法:
    <insert id="insertIntoUser" parameterType="com.hh.domain.User">
     <!--配置插入操作后,获取插入数据的id-->
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            select last_insert_id();
        </selectKey>
        insert into user (usename,password) values (#{username},#{password})
    </insert>
    
2.第二种方法  

<insert id="insertIntoUser" parameterType="com.hh.domain.User" keyProperty="id" useGeneratedKeys="true">
此处的keyProperty="id"中的id是赌赢实体类中的字段
如何解决数据库表字段和实体类字段不一样的问题

如果只是大小写的问题,因为windows环境下mysql不区分大小写,故不需要做任何处理
第一种方法: 可以起别名

id,name是数据库表中的字段,userId,userName是实体类中的字段
select id as userId,name as userName;

第二种方法: 配置查询结果的列名和实体类的属性名的对应关系

因为java严格区分大小写,故property的值一定要和实体类保持一致
 <resultMap id="userMap" type="com.hh.domain.User">
        <id property="userId" column="id"/>
        <result property="" column="username"/>
        <result property="userSex" column="sex"/>
    </resultMap>
    <select id="findAll" resultMap="userMap">
        select * from user
    </select>
通过一个idList然后查出List数据

前台传参都是:idList[]
第一种实现方法

sql代码:
<select id="findById" resultMap="com.hh.domain.User">
        select * from user where id in 
        <foreach collection="idsList" index="index" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </select>
    
Java代码:
public void findById(@RequestParam("idList[]")ArrayList<Long> idsList){
        User user = new User();
        user.setIdsList(idsList);
        User userList = service.findById(user);
}

第二种方法:

sql代码:
<select id="findById" resultMap="com.hh.domain.User">
        select * from user where id = #{id} 
        
    </select>
    
Java代码:
    public void findById(@RequestParam("idList[]")ArrayList<Long> idsList){
        User user = new User();
       
        for (Long id : idsList) {
            user.setId(id);
            User userList = service.findById(user);
        }
    }
    

扫描关注下面二维码获得更多有用的资源!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值