mybatis原生用法
sqlSession.selectOne(sqlId,参数);
sqlSession.update(sqlId,参数);
sqlSession.insert(sqlId,参数);
sqlSession.delete(sqlId,参数);
mybatis接口用法
1 namespace与接口全限定名一致
2 id和抽象函数保持一致
3 参数类型与返回类型保持一致
4 java类名与xml文件名保持一致
public interface GoodsMapper {
Goods selectGoodsById();
}
GoodsMapper mapper = sqlSession.getMapper(GoodsMapper.class);
Goods goods = mapper.selectGoodsById();
mybatis-config.xml配置
properties
db.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///taobao?useUnicode=true&characterEncoding=utf-8
jdbc.user=root
jdbc.password=123456
settings配置
下面是配置log4j日志
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.gxy.mapper=TRACE //这里写你自己的包
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
别名
关联
关联结果resultMap与resultMap嵌套
public class Goods {
private GoodType goodsType;//属性是pojo 普通的java对象
}
一对一
一对多
关联查询resultMap与select嵌套
一对一
一对多
动态sql
set与if组合
update goods
gname=#{gname}
, good_type=#{goodsType.valueId}
where gid=#{gid}
trim与if的组合,可以代替where和set
update goods
gname=#{gname},
good_type=#{goodsType.valueId},
select * from goods
and gname=#{gname}
and good_type=#{goodsType.valueId}
foreach,一般用在in语句
select * from goods where gid in
#{goods}