- 配置文件:`
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文件夹下,导入log4j的jar包就可以用了
<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} “,这样只有用户名完全匹配时有效,相当于用”=”连接.
`