mybatis dao接口注解面向接口开发怎么配置

Mybatis(9)
先写一个接口:
package com.dw.
import java.util.L
import com.dw.entity.U
public interface UserDao {
public void insertUser(User user);
public void deleteUser(Integer id);
public List selectById(Integer id);
public void updateUser(User user);
这里不再写接口的实现类,通过xml文件,并在其中写入要执行的逻辑的sql语句;通过getMapper()方法可以得到该接口的代理对象:
&?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=&com.dw.dao.UserDao&&
//这里要写接口的类名
&insert id=&insertUser&
parameterType=&com.dw.entity.User&&
insert into user(username,password) values(#{username},#{password})
&delete id=&deleteUser& parameterType=&com.dw.entity.User&&
delete from user where user.id=#{id}
&select id=&selectById& resultType=&com.dw.entity.User&&
//id要与接口中的方法名一致
select * from user as u where u.id=#{id}
&update id=&updateUser& parameterType=&com.dw.entity.User&&
update user as u set u.username=#{username},u.password=#{password} where u.id=#{id}
package com.dw.dao.
import java.io.IOE
import java.io.InputS
import org.apache.ibatis.io.R
import org.apache.ibatis.session.SqlS
import org.apache.ibatis.session.SqlSessionF
import org.apache.ibatis.session.SqlSessionFactoryB
import org.junit.T
import com.dw.dao.UserD
import com.dw.entity.U
public class daoTest {
private SqlS
private InputStream inputS
private SqlSessionFactory sessionF
private UserDao userD
//测试增删查改
public void testInsert(){
User user = new User();
user.setUsername(&纣王&);
user.setPassword(&123456&);
userDao.insertUser(user);
session.commit();
destory();
public void testDelete(){
userDao.deleteUser(4);
session.commit();
destory();
public void testSelect(){
User user = (User)(userDao.selectById(3).iterator().next());
System.out.println(&user:&+user);
session.commit();
destory();
public void testUpdate(){
User user = (User)(userDao.selectById(2).iterator().next());
user.setUsername(&张三&);
userDao.updateUser(user);
session.commit();
destory();
private void init(){
inputStream = Resources.getResourceAsStream(&config.xml&);
sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
session = sessionFactory.openSession();
userDao = session.getMapper(UserDao.class);
} catch (IOException e) {
e.printStackTrace();
&parameterMap type=&com.dw.entity.User& id=&userMap&&
&parameter property=&username&/&
&parameter property=&password&/&
&/parameterMap&
&insert id=&inserMap& parameterMap=&userMap&&
insert into user(username,password) values(#{u},#{p})
}}private void destory(){if(session != null){session.close();}if(inputStream != null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}} }
-------------------------------------------------------------------------------------------------------------------
参数传递:
1、八种基本类型、POJO类 ,可以用parameterType也可以不用
2、Map 类型:
可以使用parameterMap , 也可以不用:
使用parameterMap 时:
&parameterMap type=&com.dw.entity.User& id=&userMap&&
&parameter property=&username&/&
&parameter property=&password&/&
&/parameterMap&
&insert id=&inserMap& parameterMap=&userMap&&
insert into user(username,password) values(#{u},#{p})
public void testMap(){
Map&String, String& mp = new HashMap&String, String&();
mp.put(&u&, &冷锋&);
mp.put(&p&, &123456&);
userDao.inserMap(mp);
session.commit();
destory();
注意 u 、p参数要一致
访问:78534次
积分:5423
排名:第5913名
原创:464篇
评论:18条
(7)(7)(26)(24)(19)(37)(41)(25)(37)(66)(67)(60)(32)(14)(4)(2)1939人阅读
mybatis(9)
如果使用hiberante作为dao层,常用的方式是:定义一个dao层接口包(com.dao.service)然后在定义一个dao层接口实现包(com.dao.service.impl),这样定义结构清晰,方便维护和开发工作。如果使用mybatis作为dao层,我们就可以省略到dao实现包,直接将sql实现在xml配置文件中编写,这样维护起来更方便了!
首先将mybatis整合到spring中:
& & &!-- define the SqlSessionFactory --&
& & &bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
& & & & &property name=&dataSource& ref=&dataSource& /&
配置javabean所在的包
& & & & &property name=&typeAliasesPackage& value=&org.mybatis.jpetstore.domain& /&
& & &/bean&
& & &!-- scan for mappers and let them be autowired --&
& & &bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
配置dao接口层
& & & & &property name=&basePackage& value=&org.mybatis.jpetstore.persistence& /&
& & &/bean&
整合完spring后,就可以使用spring的autowire自动注入功能!
在接口层定义了:
public interface UserMapper
void persistence(User user);
然后在编写UserMapper实现的配置文件:
&mapper namespace=&UserMapper&&
&cache /&添加缓存
&insert id=&persistence& parameterType=&User&&
insert into
user(account,password,name,address,man)
values(#{account},#{password},#{name},#{address},#{man})
dao接口实现成就实现完成了,在使用时只需要:
@Autowired
UserMapper userM&
就可以直接使用UserMapper 对数据进行操作了!
这样感觉比hibernate操作dao层更方便了!
访问:285275次
积分:3985
排名:第9396名
原创:135篇
评论:64条
(2)(1)(3)(4)(2)(3)(1)(1)(2)(2)(2)(1)(1)(4)(1)(1)(3)(2)(2)(2)(1)(4)(1)(1)(3)(5)(3)(3)(2)(6)(5)(6)(29)(5)(4)(5)(1)(3)(2)(2)(1)(3)(1)如何配置mybatis mapper service_百度知道
如何配置mybatis mapper service
我有更好的答案
则在代码中可以直接使用IArticeDAO面向接口编程而不需要再编写实现类,满意请采纳.*FROMT_articletWHEREt:SELECTt。有问题欢迎提问;ORDERBYt.createtimeDESC请注意接口中的方法与映射文件中的SQL语句的ID一一对应:在mybatis中;1&#39楼主,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句;}对于映射文件如下,如下:假设定义了IArticeDAO接口publicinterfaceIArticleDAO{ListselectAllArticle().flag=&#39
采纳率:75%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。假设使用hiberante作为dao层,经常使用的方式是:定义一个dao层接口包(com.dao.service)然后在定义一个dao层接口实现包(com.dao.service.impl),这样定义结构清晰,方便维护和开发工作。假设使用mybatis作为dao层,我们就能够省略到dao实现包,直接将sql实如今xml配置文件里编写,这样维护起来更方便了!
首先将mybatis整合到spring中:
& & &!-- define the SqlSessionFactory --&
& & &bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
& & & & &property name=&dataSource& ref=&dataSource& /&
配置javabean所在的包
& & & & &property name=&typeAliasesPackage& value=&org.mybatis.jpetstore.domain& /&
& & &/bean&
& & &!-- scan for mappers and let them be autowired --&
& & &bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
配置dao接口层
& & & & &property name=&basePackage& value=&org.mybatis.jpetstore.persistence& /&
& & &/bean&
整合完spring后,就能够使用spring的autowire自己主动注入功能!
在接口层定义了:
public interface UserMapper
void persistence(User user);
然后在编写UserMapper实现的配置文件:
&mapper namespace=&UserMapper&&
&cache /&加入?缓存
&insert id=&persistence& parameterType=&User&&
insert into
user(account,password,name,address,man)
values(#{account},#{password},#{name},#{address},#{man})
dao接口实现成就实现完毕了,在使用时仅仅须要:
@Autowired
UserMapper userM&
就能够直接使用UserMapper 对数据进行操作了!
这样感觉比hibernate操作dao层更方便了!
阅读(...) 评论()基于mybatis的面向数据库自动生成技术_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于mybatis的面向数据库自动生成技术
&&基于mybatis的面向数据库自动生成技术
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 mybatis 面向接口 的文章

 

随机推荐