Mybatis(五)Spring整合Mybatis之mapper动态代理开发
2018-12-19 09:15
302 查看
原文链接:http://www.cnblogs.com/soft2018/p/10141243.html
要操作的数据库:
IDEA创建的Java工程,目录结构如下:
一、导包
1、spring的jar包
2、Mybatis的jar包
3、Spring+mybatis的整合包。
4、Mysql的数据库驱动jar包。
5、数据库连接池的jar包。
6、日志包
二、书写数据库对应的bean类
public class User { private Integer uId; private String username; private String sex; private String address; public Integer getuId() { return uId; } public void setuId(Integer uId) { this.uId = uId; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "uId=" + uId + ", username='" + username + '\'' + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; } }
三、mapper动态接口UserMapper与对应的映射文件UserMapper.xml
import dyh.bean.User; public interface UserMapper { public User findUserById(Integer id); }
<?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="dyh.mapper.UserMapper"> <select id="findUserById" parameterType="Integer" resultType="User"> SELECT * FROM users WHERE uId = #{uId} </select> </mapper>
四、配置文件
(1)、jdbc.properties文件
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/school?characterEncoding=utf-8 jdbc.username=root jdbc.password=dyhroot
(2)、spring核心配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 数据库连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxActive" value="10" /> <property name="maxIdle" value="5" /> </bean> <!-- Mybatis的工厂 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 核心配置文件的位置 --> <property name="configLocation" value="classpath:sqlMapConfig.xml"/> </bean> <!-- Mapper动态代理开发 --> <!--<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">--> <!--<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>--> <!--<property name="mapperInterface" value="dyh.mapper.UserMapper"/>--> <!--</bean>--> <!-- Mapper动态代理开发 扫描 --> <!--开发时候都是用扫描方式进行开发--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 基本包 --> <property name="basePackage" value="dyh.mapper"/> </bean> </beans>
(3)、Mybatis核心配置文件sqlMapConfig.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> <!--别名的应用,一定要特别注意标签是有顺序的,不然会报异常--> <typeAliases> <!--这样写就是该文件中所有的"dyh.bean.User" 都用User代替了--> <!--这样写有一个弊端,就是除了用户之外还有其他实体类,比如Order、Customer…… 那就要写n别名了,所以不推荐使用--> <!--<typeAlias type="dyh.bean.User" alias="User"/>--> <!--推荐使用包的形式--> <package name="dyh.bean"/> </typeAliases> <!-- Mapper的位置 Mapper.xml 写Sql语句的文件的位置 --> <mappers> <!--<mapper resource="orderMapper/OrderMapper.xml"/>--> <!--使用mapper接口类路径 如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/> 注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。--> <package name="dyh.mapper"/> <!--注册指定包下的所有mapper接口 如:<package name="cn.itcast.mybatis.mapper"/> 注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。--> <!--注意:但是这两种引入sql映射文件的办法,用IDEA的maven工程,这样写有问题,还没找到原因,有可能是不可以这么书写--> </mappers> </configuration>
(4)、日志文件配置log4j.properties
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
五、测试
public class MybatisTest { @Test public void fun(){ ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml"); UserMapper userMapper = (UserMapper) ct.getBean("userMapper"); User user = userMapper.findUserById(1); System.out.println(user); } }
测试结果:
转载于:https://www.cnblogs.com/soft2018/p/10141243.html
相关文章推荐
- mybatis3整合spring4-采用mapper动态代理的方式开发Dao
- Spring与MyBatis整合上_Mapper动态代理方式
- mybatis和spring整合之dao方法和mapper代理开发方法之记录
- Spring和Mybatis整合(mapper代理开发)
- Mybatis-Spring整合Mapper代理开发
- Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合
- 31Mybatis_mybatis和spring整合-mapper代理开发
- (五)mybatis学习之mapper代理开发方式及与spring整合
- Mybatis整合spring(Mapper代理形式开发dao)
- mybatis和spring整合开发(mapper代理)
- mapperMybatis整合spring(Mapper代理形式开发 扫描包形式配置)
- Mybatis-Spring整合Mapper代理开发
- Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合
- MyBatis之Mapper动态代理开发
- Spring+SpringMVC+MyBatis深入学习及搭建(二)之MyBatis原始Dao开发和mapper代理开发
- JavaEE_Mybatis_SpringMVC_整合开发_lesson2_Mapper代理开发方式
- MyBatis开发Dao层的两种方式(Mapper动态代理方式)
- Spring+SpringMVC+Mybatis大整合(SpringMVC采用REST风格、mybatis采用Mapper代理)
- 【Spring+SpringMVC+MyBatis深入学习及搭建】02.MyBatis原始Dao开发和mapper代理开发
- Spring与Mybatis的整合之Mapper代理的整合方式