读书人

MyBatis,Spring调整简易教程

发布时间: 2012-12-27 10:17:10 作者: rapoo

MyBatis,Spring整合简易教程
在实际的项目开发中,我们需要将MyBatis和Spring进行整合,通过Spring 的依赖注入以减少代码的耦合。本文以MyEclipse和MySQL数据库为开发环境简单的讲解一下MyBatis和Spring的整合过程。

首先我们创建一个Java Project,名称任意,然后导入所需要包:spring3.1.1, mybatis-3.1.1.jar, mysql-connector-java-5.1.2-beta-bin.jar ,mybatis-spring-1.1.1.jar

第一步:创建数据库表
在Navicat下执行如下sql命令创建表User.

CREATE TABLE user(  id int(11) NOT NULL AUTO_INCREMENT,  username varchar(20) NOT NULL,  password varchar(20) NOT NULL,  PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后插入测试数据
INSERT INTO user VALUES ('1', 'admin', 'admin');


第二步:创建model
创建一个model包并在其下创建一个User.java文件。
package model;public class User {private int id;private String username;private String password;public User(){}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String toString(){ return "User [id = "+ id +" , username = "+ username +"]" + " , password = "+ password;}}


第三步:创—AO接口(这里我们对增删改查进行简单的实现)
创建一个包dao,并在其下创建一个UserMapper.java文件作为DAO接口。
package dao;import model.User;public interface UserMapper {public User selectUser(User user);public void insertUser(User user);public void updateUser(User user);public void deleteUser(int userId);}


第四步:实现DAO接口
在dao包下创建一个UserMapper.xml文件作为上一步创建的DAO接口的实现。
<?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="dao.UserMapper"><select id="selectUser" parameterType="model.User" resultType="model.User">SELECT * FROM user WHERE username=#{username} AND password=#{password}</select><insert id="insertUser" parameterType="model.User" flushCache="true">   INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})</insert><update id="updateUser" parameterType="model.User">UPDATE user SET password=#{password} WHERE id=#{id}</update><delete id="deleteUser" parameterType="int">DELETE FROM user WHERE id=#{userId}</delete></mapper>

这里对这个xml文件作几点说明:
1.namespace要指定为接口的类路径。
2.select,insert,update,delete的id必须要和UserMapper.java接口中的方法同名。

第五步:创建MyBatis的配置文件
在src下创建一个mybatis-config.xml文件,由于我们的数据源部分是要交给Spring管理,所以此处的配置文件只包含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><mappers><mapper resource="dao/UserMapper.xml"/></mappers></configuration>


第六步:在Spring中配置数据源
在src下创建一个ApplicationContext.xml文件作为Spring的配置文件,这里我们使用Spring自带的Jdbc数据源,读者可以根据实际需要替换为其他数据源。
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" 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-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!—配置数据源--><bean id="jdbcDataSource" ref="jdbcDataSource" />    <property name="configLocation" value="classpath:mybatis-config.xml"></property></bean><bean id="userMapper" value="dao.UserMapper"></property>    <property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean></beans>

关于Spring配置的说明:
Spring没有内置的提供对MyBatis的支持,配置sqlSessionFactory和userMapper所需要的class是来自于mybatis-spring-1.1.1.jar。

第七步:测试
在src下创建一个test包,并在其下创建一个test.java文件
package test;import model.User;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import dao.UserMapper;public class test {public static void main(String[] args) {ApplicationContext ctx=null;ctx=new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userMapper=(UserMapper)ctx.getBean("userMapper");User u=new User();u.setUsername("admin");u.setPassword("admin");System.out.println(userMapper.selectUser(u));//插入(去掉下面的注释进行调试)/*User insertUser=new User();insertUser.setUsername("testUsername");insertUser.setPassword("testPassword");userMapper.insertUser(insertUser);*///更新(去掉下面的注释进行调试)/*u.setId(1);u.setPassword("updatePassword");userMapper.updateUser(u);*///删除(去掉下面的注释进行调试)/*userMapper.deleteUser(9);*/}}










读书人网 >编程

热点推荐