目录结构:
步骤:
1、创建User表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`userName` varchar(50) default NULL,
`userAge` int(11) default NULL,
`userAddress` varchar(200) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong');
2、编写User.java
package org.zsm.study.mybatis.domain;
public class User {
private int id;
private String userName;
private String userAge;
private String userAddress;
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 getUserAge() {
return userAge;
}
public void setUserAge(String userAge) {
this.userAge = userAge;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
3、配置mybatis.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>
<typeAlias alias="User" type="org.zsm.study.mybatis.domain.User"/>
</typeAliases>
<mappers>
<mapper resource="org/zsm/study/mybatis/domain/User.xml"/>
</mappers>
</configuration>
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="org.zsm.study.mybatis.inter.IUserOperation">
<resultMap type="User" id="resultListUser">
<id column="id" property="id" />
<result column="userName" property="userName" />
<result column="userAge" property="userAge" />
<result column="userAddress" property="userAddress" />
</resultMap>
<insert id="addUser" parameterType="User" useGeneratedKeys="true"
keyProperty="id">
insert into user(userName,userAge,userAddress)
values(#{userName},#{userAge},#{userAddress})
</insert>
<update id="updateUser" parameterType="User" >
update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress}
where id=#{id}
</update>
<select id="selectUserByID" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
</mapper>
5、编写IUserOperation接口
package org.zsm.study.mybatis.inter;
import java.util.List;
import org.zsm.study.mybatis.domain.User;
public interface IUserOperation {
public void addUser(User user);
public void updateUser(User user);
public User selectUserByID(int id);
public List<User> selectUsers(String username);
public void deleteUser(int id);
}
6、配置spring.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"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 引入jdbc配置文件 -->
<context:property-placeholder location="jdbc.properties"/>
<!-- 创建jdbc数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<property name="user" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<!-- 创建SqlSessionFactory,同时指定数据源 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="mybatis-config.xml"/>
</bean>
<!-- 定义映射接口 -->
<bean id="UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
<!-- 映射器对象接口,必须的
value="映射的命名空间接口 -->
<property name="mapperInterface" value="org.zsm.study.mybatis.inter.IUserOperation"/>
</bean>
</beans>
7、测试
public class MybatisSpringTest {
private ApplicationContext ctx = null;
@Before
public void setUp() throws Exception {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
@After
public void tearDown() throws Exception {
ctx = null;
}
@Test
public void testGetUser() {
IUserOperation userOperation = (IUserOperation) ctx.getBean("UserMapper");
User user =userOperation.selectUserByID(1);
System.out.println(user.getUserName()+" "+user.getUserAddress());
}
@Test
public void testAddUser(){
User user = new User();
user.setUserName("zhangsan");
user.setUserAge("22");
user.setUserAddress("hubei wuhan");
IUserOperation userOperation = (IUserOperation) ctx.getBean("UserMapper");
userOperation.addUser(user);
}
}