mysql映射mapper_SQL映射器Mapper接⼝(MyBatis)
SQL映射器Mapper接⼝
MyBatis基于代理机制,可以让我们⽆需再写Dao的实现。直接把以前的dao接⼝定义成符合规则的Mapper。
注意事项:
1.接⼝必须以Mapper结尾,名字是DomainMapper
2.l⽂件要和Mapper接⼝建⽴关系,通过namespace:要能连接到Mapper接⼝
3.l中写查询语句的标签的传⼊参数类型(parameterType)、返回结果类型(resultType)必须和mapper接⼝中对应⽅法的传
⼊参数类型和返回结果类型⼀致,id名字必须和mapper接⼝中的对应⽅法名保持⼀致。
操作步骤:
1、 创建⼀个DomainMapper接⼝:直接定义⽅法(共⽤了xml配置⽅式和接⼝+注解⽅式两种)
注意:映射器Mapper接⼝,替换dao层,不⽤再写mapper层(dao层)实现类;名字统⼀以Mapper结尾。
packagecn.wang._02mapper.mapper;importcn.wang._02mapper.domain.Product;importorg.apache.ibatis.annotations.Select;imp
public interfaceProductMapper {/*** 查询⼀个商品:使⽤了接⼝+注解的⽅式*/@Select("select * from Product where id = #{id}")
Product findOne(Long id);/*** 查询所有商品:使⽤了xml配置⽅式*/ListfindAll();
}
2、 在mapper⽬录(原dao⽬录)下创建映射⽂件l):
/p>
"/dtd/mybatis-3-mapper.dtd">
select * from product
3、在resources⽬录下创建核⼼配置⽂件:
/p>
PUBLIC "-////DTD Config 3.0//EN"
"/dtd/mybatis-3-config.dtd">
MybatisUtils⼯具类
packagecn.wang.Utils;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis classMybatisUtils {//保证sqlSessionFactory是单例
private staticSqlSessionFactory sqlSessionFactory;//SqlSessionFactory类似于JPA的EntityManagerFactory,Hibernate的SessionFactory//SqlSession 类似于JPA的EntityManager,Hibernate的Session//该类被加载的时候就执⾏该静态代码块
static{try{
Reader reader= ResourceAsReader("l");
sqlSessionFactory= newSqlSessionFactoryBuilder().build(reader);
jpa mybatis}catch (Exception e) {//异常的类型要写⼤⼀些,才能够看到具体的报错
e.printStackTrace();
}
}//提供⼀个外界调⽤的类
public staticSqlSession getSession(){//创建并返回SqlSession对象returnsqlSessionFactory.openSession();
}//关闭sqlSession,释放资源(很重要,不然项⽬上线后会造成内存溢出)
public static voidcolseSession(SqlSession sqlSession){if(sqlSession !=null){ sqlSession.close();
}
}
}
jdbc.properties⽂件
jdbc.sql.jdbc.Driver
jdbc.url=jdbc:mysql:///mysql数据库名称
jdbc.username=⽤户名
jdbc.password=密码
可能遇到的错误:
(1)namespace写错了,应该对应mapper接⼝的完全限定名。
(2)Mapper映射⽂件忘记在核⼼配置⽂件中注册了。
(3)注册的路径也可能写错。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。