MyBatis初学注意点总结

  1. 配置文件:`

MyBatis-config.xml文件配置比较简单,关键是类别名(简化书写)和关联资源映射路径两点.`

<typeAliases>
    <typeAlias type="com.entity.Product" alias="Product"/>
</typeAliases>
<mapper resource="ProductMapper.xml"/>`

另一种更简单的方式是包别名,一次解决所有类和资源的别名命名
<typeAliases>
    <package name="com.entity"/>
</typeAliases>
<mappers>
    <package name="com/entity"/>
</mappers>`
``````

配置sql语句使用类时,可以直接使用主配置文件中的别名以简化书写.





<div class="se-preview-section-delimiter"></div>


SELECT * FROM friend




2 **事物**:    
MyBatis默认不提交事物, 刚开始使用时查询时没有问题,在更新和插入时始终不成功,查错老半天也发现不了原因.最后发现是事物没有提交.





<div class="se-preview-section-delimiter"></div>

public int save(Product product) {
SqlSession session=MyBatisUtil.getSession();
int num= session.insert(“com.mapper.Productmapper.save”,product);
session.commit();
session.close();
return num;
}


 3 **打印sql语句:**   
 这个非常重要啊!!!!之前学习的时候因为各种报错,放弃了在控制台打印sql(主要是使用的log4j配置文件怎么也用不了,下载了很多版本.  这就是不知道为什么这么写配置文件的后果,典型的拿来主义),一旦出错连蒙带猜,根本不知道具体原因.  后来实在没办法,又去网上找,终于找到我的环境能用的(如下).
 log4j.properties文件放在src文件夹下,导入log4jjar包就可以用了





<div class="se-preview-section-delimiter"></div>

log4j.rootLogger=DEBUG, Console

Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG



----------


 4.获取自动增长的主键

> 很多时候我们需要立即取得插入数据时自动生成的主键以便他用,这个功能就显示非常重要




> `<insert parameterType="com.crm.User" useGeneratedKey="true" keyProperty="userId" >
        > INSERT INTO user (username,password)  VALUES(#{name},#{password})
</insert>`
这样,插入时自动生成的主键就自动封装进对象com.crm.User的userId属性里面去了,需要用取出来即可.非常简单方便

5.模糊查询书写格式:
方法有多种,亲测了CONCAT函数拼接字符串.有说可以使用bind标签或者在直接在参数内部把"%"拼接好




<div class="se-preview-section-delimiter"></div>


SELECT * FROM user
WHERE name LIKE CONCAT(‘%’,#{userName},’%’)
WHERE name LIKE ‘%’ #{userName} ‘%’

“`另外,误打误撞使用过直接 “like #{userName} “,这样只有用户名完全匹配时有效,相当于用”=”连接.

`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值