一、前期准备工作
1、在bdqn包下建pojo包
在pojo包建实体类,将数据库中对应的属性添加进去,提供公有的get/set方法
2、创建Mybatis的核心配置文件
mybatis-config.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.bdqn.pojo"/></typeAliases></configuration>
3、创建database.properties配置文件
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8user=rootpassword=123456
二、中期准备工作
4、在cn.bdqn下创建dao层,创建UserMapper.xml和UserMapper接口,
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.dao.UserMapper"><select id="getUserById" parameterType="int" resultType="User">select * from smbms_user where id = #{id}</select></mapper>
UserMapper接口
package cn.bdqn.dao;import cn.bdqn.pojo.User;public interface UserMapper {public User getUserById(Integer id);}
5、接下来写Spring相关,写整合
首先在applicationContext.xml中配置相关文件
<!-- 自动代理 --><aop:aspectj-autoproxy></aop:aspectj-autoproxy><!-- spring整合mybatis --><!-- 1、声明bean 加载database.properties配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>classpath:database.properties</value></property></bean><!-- 配置数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName"><value>${driver}</value></property><property name="url"><value>${url}</value></property><property name="username"><value>${user}</value></property><property name="password"><value>${password}</value></property></bean><!-- 声明sqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="configLocation"><value>classpath:mybatis-config.xml</value></property></bean><!-- 扫描指定Mapper的包,使其注册为Mapper对象 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage"><value>cn.bdqn.dao</value></property></bean>
6、property中的name,
后面跟的是固定的名字,在class相应的包下是固定的;至此,配置结束
前面的6点,均为固定代码,除非名字和路径改变
三、Spring进行相关整合
7、创建service层,调用getUserById;创建serviceImpl和service;
ServiceImpl:
创建Bean属性,定义getUserById 的方法,传入Integer id;返回Bean属性.getUserById(Integer id);
package cn.bdqn.service.Impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import cn.bdqn.aop.service.UserService;import cn.bdqn.dao.UserMapper;import cn.bdqn.pojo.User;@Servicepublic class UserServiceImpl implements cn.bdqn.service.UserService{@Autowiredprivate UserMapper userMapper;public User getUserById(Integer id){return userMapper.getUserById(id);}public UserMapper getUserMapper() {return userMapper;}public void setUserMapper(UserMapper userMapper) {this.userMapper = userMapper;}}
抽接口Service
package cn.bdqn.service;import cn.bdqn.pojo.User;public interface UserService {public User getUserById(Integer id);}
8、创建测试类,输出数据库信息
getBean(“参数改为**ServiceImpl类型”);比如userServiceImpl;第一个字母要小写
UserMapperTest:
package cn.bdqn;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.bdqn.pojo.User;import cn.bdqn.service.UserService;public class UserMapperTest {@Testpublic void getUserById(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserService us = (UserService)context.getBean("userServiceImpl");//给下面的方法加前置后置User user = us.getUserById(1);//前置后置完成后才会输出下面的System.out.println(user.getPhone());}}
9、练习,利用Spring整合Mybatis中的provider
配置文件基本不变ProviderMapper.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.dao.ProviderMapper"><select id="getProviderById" parameterType="int" resultType="Provider">select * from smbms_provider where id = #{id}</select></mapper>ProviderMapper接口:package cn.bdqn.dao;import cn.bdqn.pojo.Provider;import cn.bdqn.pojo.User;public interface ProviderMapper {public Provider getProviderById(Integer id);}ProviderServiceImpl:package cn.bdqn.service.Impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import cn.bdqn.dao.ProviderMapper;import cn.bdqn.pojo.Provider;import cn.bdqn.service.ProviderService;@Servicepublic class ProviderServiceImpl implements ProviderService{@Autowiredprivate ProviderMapper providerMapper;public Provider getProviderById(Integer id){return providerMapper.getProviderById(id);}public ProviderMapper getProviderMapper() {return providerMapper;}public void setProviderMapper(ProviderMapper providerMapper) {this.providerMapper = providerMapper;}}ProviderService 接口:package cn.bdqn.service;import cn.bdqn.pojo.Provider;public interface ProviderService {public Provider getProviderById(Integer id);}ProviderMapperTest:package cn.bdqn;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.bdqn.pojo.Provider;import cn.bdqn.service.ProviderService;public class ProviderMapperTest {@Testpublic void getProviderById(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");ProviderService ps = (ProviderService)context.getBean("providerServiceImpl");Provider provider = ps.getProviderById(1);System.out.println(provider.getProContact());}}
