日志输出级别(优先级 高到低) error: 错误 - 系统的故障日志 warn: 警告 - 存在风险或使用不当的日志 info: 一般性消息 debug: 程序内部用于调用信息 trace: 程序运行的跟踪信息
动态SQL是指根据参数数据动态组织SQL的技术
一对多
<!--
resultMap 可用于说明一对多或多对一的映射逻辑
id 是 resultMap 属性引用的标志
type 指向 One 的实体(Goods)
-->
<resultMap id="rmGoods1" type="pers.hua.mybatis.entity.Goods">
<!-- 映射 goods 对象的主键到 goods_id 字段-->
<id column="goods_id" property="goodsId"/>
<!--
collection 的含义是:在 select * from t_goods limit 0,1
得到结果后,对所有的 Goods 对象遍历得到 goods_id 字段值,
并代入到 goodsDetail 命名空间的 findByGoodsId 的SQL中执行查询,
将得到的"商品详情"集合赋值给 goodsDetails List对象
-->
<collection property="goodsDetails" select="goodsDetail.selectByGoodsId" column="goods_id"/>
</resultMap>
<select id="selectOneToMany" resultMap="rmGoods1">
select * from t_goods limit 0,10
</select>
多对一
<resultMap id="rmGoodsDetail" type="pers.hua.mybatis.entity.GoodsDetail">
<id column="gd_id" property="gdId"/>
<result column="goods_id" property="goodsId"/>
<!-- association:多对一-->
<association property="goods" select="goods.selectById" column="goods_id"/>
</resultMap>
<select id="selectManyToOne" resultMap="rmGoodsDetail">
select * from t_goods_detail limit 0,1
</select>
Maven引入PageHelper分页插件、jsqlparser
<plugins>
<!-- 启用分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型-->
<property name="helperDialect" value="mysql"/>
<!-- 分页合理化-->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
Maven引入C3P0
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
创建DataSource
/**
* C3P0与MyBatis兼容使用的数据源工厂类
*/
public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
public C3P0DataSourceFactory(){
this.dataSource = new ComboPooledDataSource();
}
}
<!-- INSERT INTO table-->
<!-- VALUES ("a","a1","a2"),("b","b1","b2"),(......);-->
<insert id="bachInsert" parameterType="java.util.List">
insert into t_goods(title, sub_title, original_cost, current_price, discount, is_free_delivery, category_id) VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.title},#{item.subTitle},#{item.originalCost},#{item.currentPrice},#{item.discount},#{item.isFreeDelivery},#{item.categoryId})
</foreach>
</insert>