mybatis与spring整合

本文介绍了一个使用MyBatis与Spring框架集成的例子,包括所需的依赖库、数据库表结构定义、实体类、接口定义、XML映射文件、Spring配置文件及测试类等关键部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所需jar包:

mybatis

mybatis-3.2.0.jar

mybatis-spring-1.1.1.jar

log4j-1.2.17.jar

spring

spring-aop-3.2.0.RELEASE.jar

spring-beans-3.2.0.RELEASE.jar

spring-context-3.2.0.RELEASE.jar

spring-core-3.2.0.RELEASE.jar

spring-expression-3.2.0.RELEASE.jar

spring-jdbc-3.2.0.RELEASE.jar

spring-test-3.2.4.RELEASE.jar

spring-tx-3.2.0.RELEASE.jar

 

aopalliance-1.0.jar

cglib-nodep-2.2.3.jar

commons-logging-1.1.1.jar

MYSQL驱动包】

mysql-connector-java-5.0.4-bin.jar

数据表:

CREATE TABLE s_user(
	user_id INT AUTO_INCREMENT PRIMARY KEY,
	user_name VARCHAR(30),
	user_birthday DATE,
	user_salary DOUBLE
)

User.java

package com.lx.domain;

import java.util.Date;
/**
 * CREATE TABLE s_user(
	user_id INT AUTO_INCREMENT PRIMARY KEY,
	user_name VARCHAR(30),
	user_birthday DATE,
	user_salary DOUBLE
)
 * 
 *
 */
public class User {

	private int id;
	private String name;
	private Date birthday;
	private double salary;
	public User() {
		super();
	}
	public User(int id, String name, Date birthday, double salary) {
		super();
		this.id = id;
		this.name = name;
		this.birthday = birthday;
		this.salary = salary;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", birthday=" + birthday
				+ ", salary=" + salary + "]";
	}
	
}

接口:

UserMapper.java

package com.lx.mapper;

import java.util.List;

import com.lx.domain.User;

public interface UserMapper {

	void save(User user);

	void update(User user);

	void delete(int id);

	User findById(int id);

	List<User> findAll();
}

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"> 
	
	<!-- 
	   namespace:必须与接口的全类名一致
	
	 -->
	<mapper namespace="com.lx.mapper.UserMapper"> 
           <!-- 
              id:必须对应每个接口中的方法
            -->
           <insert id="save" parameterType="User">
            insert into s_user(user_name,user_birthday,user_salary) values(#{name},#{birthday},#{salary})
           </insert>
           
            <update id="update">
            update s_user set user_name=#{name},user_birthday=#{birthday},user_salary=#{salary} where user_id=#{id}
            </update>
           
           <delete id="delete" parameterType="int">
             delete from s_user where user_id=#{id} 
           </delete>
           
           <select id="findById" parameterType="int" resultType="User">
             select user_id id ,user_name name,user_birthday birthday,user_salary salary from s_user where user_id=#{id}
           </select>

           <select id="findAll" resultType="User">
             select user_id id ,user_name name,user_birthday birthday,user_salary salary from s_user
           </select>

	</mapper>

beans.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:p="http://www.springframework.org/schema/p" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
	
	<!-- 1. 数据源 : DriverManagerDataSource -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource ">
       <property name="url" value="jdbc:mysql://localhost:3306/hibernate1"/>
       <property name="username" value="root"/>
       <property name="password" value="mair"/>
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    </bean>
	
	<!-- 
		2. mybatis的SqlSession的工厂: SqlSessionFactoryBean 
			dataSource / typeAliasesPackage
			dataSource:数据源
			typeAliasesPackage:指定实体类的包名,将类名自动映射成简单类名
	-->
     
     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="com.lx.domain"/>
     </bean>
	
	<!-- 
		3. mybatis自动扫描加载Sql映射文件 : MapperScannerConfigurer 
			sqlSessionFactory / basePackage
			basePackage:扫描sql指定所在的包
	-->
	
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	   <property name="basePackage" value="com.lx.mapper"/>
	   <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
	</bean>
	
	
	<!-- 4. 事务管理 : DataSourceTransactionManager -->
	
	<bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	    <property name="dataSource" ref="dataSource"/>
	</bean>

	<!-- 5. 使用声明式事务 -->
	<tx:annotation-driven transaction-manager="tx"/>
	
	
</beans>

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>
	<!-- Spring整合myBatis后,这个配置文件基本可以不要了-->
	<!-- 设置外部配置文件 -->
	<!-- 设置类别名 -->
	<!-- 设置数据库连接环境 -->
	<!-- 映射文件 -->	
</configuration>

测试类:

package com.lx.test;

import java.util.Date;
import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.lx.domain.User;
import com.lx.mapper.UserMapper;
@RunWith(SpringJUnit4ClassRunner.class)//使用spring测试框架
@ContextConfiguration("/beans.xml") //加载spring配置文件
public class SMTest {
    
	@Autowired
	private UserMapper userMapper;
	
	@Test
	public void addUser()
	{
		User user = new User(-1, "Jeny",new Date(), 3000);
	    userMapper.save(user);	
	}
	@Test
	public void updateUser()
	{
		User user = new User(1, "scala", new Date(), 3001);
		userMapper.update(user);
	}
	@Test
	public void findUserById()
	{
		User user = userMapper.findById(1);
		System.out.println(user);
	}
	@Test
	public void findAll()
	{
		List<User> users = userMapper.findAll();
		for(User u:users)
		{
			System.out.println(u.getName());
		}
	}
	
	@Test
	public void deleteUser()
	{
		userMapper.delete(2);
	}
	
}

工程结构:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值