Mybatis——动态代理的执行方式及规范
Posted 红颜莫知己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis——动态代理的执行方式及规范相关的知识,希望对你有一定的参考价值。
mybatis的动态代理的规范
注意:要使用mybatis动态代理的方式,要保证下列5个规范
- 映射xml文件和接口类在同一目录
- 映射xml文件名和接口名一样
- 映射文件中的namespace的值要和接口类的全包名相同
- 接口的方法名要和映射文件中查询配置的id相同
- 接口的参数名和返回类型要和映射文件中对应的查询配置参数一致
1.创建 dao层接口ChannelDao
package edu.xalead.dao;
import edu.xalead.Channel;
import java.util.List;
public interface ChannelDao {
public void addChannel(Channel channel);
public void delChannel(int id);
public Channel findByCId(int id);
public List<Channel> findAll();
}
2.创建映射文件ChannelDao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="edu.xalead.dao.ChannelDao">
<!-- 配置查询所有操作 -->
<select id="findAll" resultType="edu.xalead.Channel">
select * from t_channel
</select>
<!--配置添加操作-->
<insert id="addChannel">
insert into t_channel(cid,cname,description) values (#{cid},#{cname},#{description})
</insert>
<!--配置删除操作-->
<delete id="delChannel">
delete from t_channel where cid = #{cid}
</delete>
<!--配置只查询一个对象操作-->
<select id="findChannelById" resultType="edu.xalead.Channel">
select * from t_channel where cid = #{cid}
</select>
</mapper>
3.测试
/**
* 创建mybatis工厂
*/
SqlSession sqlSession = null;
ChannelDao mapper = null;
@Before
public void createSession(){
try {
//读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//创建SqlSessionFactory工厂
SqlSessionFactory factory = builder.build(in);
//创建连接(会话)
sqlSession = factory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void closeSession(){
if (sqlSession != null) {
sqlSession.commit();
sqlSession.close();
}
}
添加
Channel c = new Channel();
c.setCid(16);
c.setCname("周杰伦");
c.setDescription("依然范特西");
mapper.addChannel(c);
删除
mapper.delChannel(14);
查询一个对象
Channel channelById = mapper.findChannelById(15);
查询所有对象
List<Channel> channelList = mapper.findAll();
若有不懂的学者,可以转博客Mybatis——CRUD操作,增删改查具体细节都在里面
以上是关于Mybatis——动态代理的执行方式及规范的主要内容,如果未能解决你的问题,请参考以下文章