一、mybatis的使用
1、添加入jdbc.properties和log4j的配置文件
2、在mybatis-config.xml中进行配置
<configuration>
<properties resource="jdbc.properties" />
<typeAliases>
<package name="com.mao.mybatis.model"/><!-- 别名默认使用类名:Acc -->
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.mao.mybatis.dao"/>
</mappers>
</configuration>
3、main/java目录下建bean、dao和util(创造sqlsession的单例模式工具类)
4、dao中的方法在resources下的dao包中写映射
<mapper namespace="com.mao.mybatis.dao.EmpaDao">
<!--
1,size:表示缓存cache中能容纳的最大元素数。默认是1024;
2,flushInterval:定义缓存刷新周期,以毫秒计;
3,eviction:定义缓存的移除机制;默认是LRU(least recently userd,最近最少使用),还有FIFO(first in first out,先进先出)
4,readOnly:默认值是false,假如是true的话,缓存只能读。
-->
<cache size="1024" flushInterval="60000" eviction="LRU" readOnly="false" />
<insert id="add">
insert into empa values(null,#{param1},#{param2},#{param3})
</insert>
<select id="selectById" parameterType="Integer" resultType="Empa">
select * from empa where eid=#{param1} or eage=#{param2}
</select>
</mapper>
二、紧接着测试:
private SqlSession session=DbUtil.getSession();
private Logger log=Logger.getLogger(EmpaDaoTest.class);
private EmpaDao empaDao=session.getMapper(EmpaDao.class);
@Test
public void testAdd() {
log.info("测试:多个参数参与的插入语句");
int x=empaDao.add("赵子豪", 24, 12000);
session.commit();
log.info(x>0?"插入成功":"失败");
}
@Test
public void testSelectById() {
log.info("测试:多个参数参与的查询语句");
List<Empa> empas=empaDao.selectById(13, 24);
for (Empa empa : empas) {
log.info(empa);
}
}
二、注解装配
主要变化
1、Dao中的变化
@Insert("insert into empa values(null,#{ename},#{eage},#{esal})")
public int add(Empa emap);
或者
@Select("select * from empa")
@Results(
{
@Result(id=true,column="eid",property="eid"),
@Result(column="ename",property="ename"),
@Result(column="eage",property="eage"),
@Result(column="esal",property="esal")
}
)
public List<Empa> selectAll();
2、测试的变化
@Test
public void testSelectById() {
Empa emp=session.selectOne("com.mao.mybatis.dao.EmpDao.selectById", 15);
log.info(emp);
}