MyBatis3和Spring4基于接口编程的例子
来源:互联网 发布:少女前线枪娘数据大全 编辑:程序博客网 时间:2024/06/08 09:44
本例子使用的数据库为PostgreSQL。
项目源代码下载地址为http://download.csdn.net/detail/wu_boy/9275509
Maven创建Web项目,架构如下图所示
Maven引用如下图所示
Spring配置文件applicationContext.xml如下
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> <description>Spring公共配置文件 </description> <context:component-scan base-package="com.wu.mybatis" /> <context:annotation-config/> <context:property-placeholder location="classpath:application.properties" /> <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close" lazy-init="false"> <property name="driverClass" value="${jdbc.driver}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation"> <value>classpath:mybatis-config.xml</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- scan for mappers and let them be autowired --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.wu.mybatis" /> <property name="annotationClass" value="com.wu.mybatis.dao.Mapper"></property> </bean></beans>
application.properties文件如下
jdbc.driver=org.postgresql.Driverjdbc.url=jdbc:postgresql://127.0.0.1:5432/postgresjdbc.username=postgresjdbc.password=postgres
dao包中的两个接口如下
package com.wu.mybatis.dao;import java.io.Serializable;public interface BaseDao<T, PK extends Serializable> { int insert(T o); T selectById(PK id);}
package com.wu.mybatis.dao;public @interface Mapper {}
user包中,User类如下
package com.wu.mybatis.user;public class User { private Integer id; private String userName; private String password; //此处省略了get/set方法,请自行补全
UserMapper接口如下
package com.wu.mybatis.user;import com.wu.mybatis.dao.BaseDao;import com.wu.mybatis.dao.Mapper;@Mapperpublic interface UserMapper extends BaseDao<User, Integer>{}
UserService接口如下
package com.wu.mybatis.user;public interface UserService { int save(User o); User findById(Integer id);}
UserServiceImpl类如下
package com.wu.mybatis.user;import javax.annotation.Resource;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;@Service@Transactionalpublic class UserServiceImpl implements UserService{ @Resource private UserMapper userMaper; @Override public int save(User o) { return userMaper.insert(o); } @Override public User findById(Integer id) { return userMaper.selectById(id); }}
UserMapper.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="com.wu.mybatis.user.UserMapper"> <insert id="insert" parameterType="user"> insert into user_mybatis (username,password) values (#{userName,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR}) </insert> <select id="selectById" parameterType="int" resultType="user"> select id,username,password from user_mybatis where id=#{id} </select></mapper>
mybatis-config.xml文件配置如下
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <!-- changes from the defaults for testing --> <setting name="cacheEnabled" value="false" /> <setting name="useGeneratedKeys" value="true" /> <setting name="defaultExecutorType" value="REUSE" /> </settings> <typeAliases> <typeAlias type="com.wu.mybatis.user.User" alias="user"/> </typeAliases></configuration>
web.xml文件配置如下
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>mybatis</display-name> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param></web-app>
建表语句如下
CREATE TABLE "public"."user_mybatis" ("id" int4 DEFAULT nextval('user_mybatis_id_seq'::regclass) NOT NULL,"username" varchar(32) COLLATE "default","password" varchar(32) COLLATE "default")WITH (OIDS=FALSE);ALTER TABLE "public"."user_mybatis" ADD PRIMARY KEY ("id");
测试类ServiceTest如下
package com.wu.mybatis.test;import org.junit.BeforeClass;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.wu.mybatis.user.User;import com.wu.mybatis.user.UserService;public class ServiceTest {private static ApplicationContext act = null; @BeforeClass public static void setUpBeforeClass() throws Exception { act = new ClassPathXmlApplicationContext("applicationContext.xml"); } @Test public void test() throws Exception{ UserService service=(UserService)act.getBean("userServiceImpl"); User o = new User(); o.setUserName("admin1"); o.setPassword("pass1"); service.save(o); }}
MyBatis和Spring基于接口编程,核心dao只有一个,即该例中的Dao,里面可以写一些通用接口。然后面向对象编程中,可以在实体Mapper中扩展自用接口。service中调用dao层接口时,由MyBatis代理实现。
以上是一个简单例子,代码都贴出来了,比较详细,有些地方可能有些简陋,也可作为MyBatis入门例子,仅供参考。
项目源代码下载地址为http://download.csdn.net/detail/wu_boy/9275509
0 0
- MyBatis3和Spring4基于接口编程的例子
- spring4和mybatis3整合
- Maven下的Spring4 + Struts2 + Mybatis3的例子
- spring4+mybatis3的整合
- 基于注解spring4.*,mybatis3.*最简单的SSM整合
- Mybatis+Spring基于接口编程的例子
- Spring4 Mybatis3 的开发配置
- SSM基于注解配置Spring4.1.6、springMVC4.1.6、mybatis3.2.8的maven框架搭建
- Spring4--Spring4整合mybatis3
- Spring4.2+SpringMVC+Mybatis3.4的集成
- Spring4.1.5+Mybatis3.2.8基于java config整合实现(Maven)
- 基于SpringMVC4.3.2+Spring4.3.2+MyBatis3.4.1搭建SSM框架
- mybatis3.2.6整合spring4.0和springMVC4.0开发
- spring4整合mybatis3
- Maven3 + Spring4 + SpringMVC4 + Mybatis3
- Mybatis3+Spring4+SpringMVC4 整合
- Struts2+Spring4+myBatis3整合
- Mybatis3+Spring4+SpringMVC4 整合
- Android的各种Drawable讲解
- strtoul函数功能讲解与实现
- MFC 下自定义消息中获取 Tab Control的子对话框的 句柄
- POJ3764 The xor-longest Path(字典树)
- 渣硕的校招求职经历
- MyBatis3和Spring4基于接口编程的例子
- 仿支付宝“数字增长动画”
- Android-->RatingBar自定义大小,自定义样式(图片)
- Android初识-JSON字符串解析详解
- 打造开发神器—Android Studio上的常用5个插件介绍
- OTA打包工具
- mysqlscript文档翻译
- js数组组合
- redis-高级应用