Mybatis学习笔记(六)

来源:互联网 发布:农村淘宝软件下载 编辑:程序博客网 时间:2024/05/16 08:45

1、Mybatis和Spring的集成

SqlSessionFactoryBean:为整合应用提供SqlSession对象资源;

MapperFactoryBean:根据指定的Mapper接口生成Bean实例;

MapperScannerConfigurer:根据指定包批量扫描Mapper接口并生成实例。

2、实例

(1)目录结构


(2)User.java

package cn.hwd.mybatis.bean;public class User {private Integer id;private String name;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public User() {super();// TODO Auto-generated constructor stub}public User(Integer id, String name, String password) {super();this.id = id;this.name = name;this.password = password;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password + "]";}}

(3)UserMapper.java

package cn.hwd.mybatis.mapper;import cn.hwd.mybatis.bean.User;public interface UserMapper {public User findUserById(Integer id) throws Exception;}

(4)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="cn.hwd.mybatis.mapper.UserMapper"><select id="findUserById" parameterType="int" resultType="user">  select * from user where id=#{id}</select>  </mapper>

(5)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"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-4.3.xsd">        <context:property-placeholder location="classpath:db.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}" />    </bean>    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!-- mybatis配置文件 -->        <property name="configLocation" value="classpath:sqlMapConfig.xml" />        <!-- 数据源 -->        <property name="dataSource" ref="dataSource" />    </bean>        <!-- 配置MapperFactoryBean来生成Mapper接口的代理 -->    <!-- <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">    <property name="mapperInterface" value="cn.hwd.mybatis.mapper.UserMapper" />    <property name="sqlSessionFactory" ref="sqlSessionFactory" />    </bean> -->        <!-- 使用MapperScannerConfigurer,它将会查找指定路径下的映射器并自动为它们创建MapperFactoryBean -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">    <property name="basePackage" value="cn.hwd.mybatis.mapper" />    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />    </bean>    </beans>

(6)db.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/hwdjdbc.username=rootjdbc.password=mysql

(7)log4j.properties

# 定义log输出级别log4j.rootLogger=DEBUG, Console# 定义log输出为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppender# 指定输出格式,其中%p表示日志级别 ,%t表示当前线程名,%m表示日志内容,%n表示换行log4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%5p [%t] - %m%n

(8)sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><typeAliases><package name="cn.hwd.mybatis.bean" /></typeAliases>    </configuration>

(9)UserDaoTest.java

package cn.hwd.mybatis.dao;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.hwd.mybatis.bean.User;import cn.hwd.mybatis.mapper.UserMapper;public class UserDaoTest {@Testpublic void testFindUserById() throws Exception {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");          UserMapper userMapper =         (UserMapper) applicationContext.getBean("userMapper");        User user = userMapper.findUserById(1);        System.out.println(user);}}

(10)pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>cn.hwd</groupId>  <artifactId>Mybatis47</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <name>Mybatis47</name>  <url>http://maven.apache.org</url>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <build>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.0</version>        <configuration>          <source>1.7</source>          <target>1.7</target>        </configuration>      </plugin>    </plugins>  </build>  <dependencies>  <dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>4.8.2</version>  </dependency>  <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>4.3.10.RELEASE</version>    </dependency>  <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis</artifactId>  <version>3.2.6</version>  </dependency>  <dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>5.1.30</version>  </dependency>  <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis-spring</artifactId>  <version>1.2.2</version>  </dependency>  <dependency>  <groupId>log4j</groupId>  <artifactId>log4j</artifactId>  <version>1.2.16</version>  </dependency>  <dependency>  <groupId>commons-dbcp</groupId>  <artifactId>commons-dbcp</artifactId>  <version>1.2.2</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-jdbc</artifactId>  <version>4.3.10.RELEASE</version>  </dependency>  </dependencies></project>

(11)、运行结果


原创粉丝点击