[一步是咫尺,一步即天涯]
使用前面的文章解决了Mybatis的配置问题后,本文我们正式来介绍使用Mybatis来开发,从最简单的增改删查开始,后面我们会逐步介绍Mybatis的更多用法,敬请期待!
惯例,先来看看我们的准备工作有:
a.操作系统 :win7 x64
b.基本软件:MySQL,Mybatis,SQLyog
-------------------------------------------------------------------------------------------------------------------------------------1.创建Mybatis02工程,工程结构图如下:
2.pom文件内容如下:
<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>com.java.mybatis</groupId> <artifactId>mybatis03</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mybatis01</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> </project>
-------------------------------------------------------------------------------------------------------------------------------------
【鉴于篇幅的关系,下文中确实的其他文件请参照前文HelloWorld工程】
1.修改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="com.csdn.ingo.dao.UserDao"> <select id="findUserById" parameterType="String" resultType="User"> select * from sysuser where id=#{id} </select> </mapper>2.修改UserDao文件,具体内容如下:
package com.csdn.ingo.dao; import com.csdn.ingo.entity.User; /** *@author 作者 E-mail:ingo *@version 创建时间:2016年4月17日下午6:26:40 *类说明 */ public interface UserDao { User findUserById(String id); }3.创建单元测试类UserTest.java,具体内容如下 :
package com.csdn.ingo.main; import static org.junit.Assert.*; import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.csdn.ingo.dao.UserDao; import com.csdn.ingo.entity.User; import com.csdn.ingo.util.SqlSessionFactoryUtil; /** *@author 作者 E-mail:ingo *@version 创建时间:2016年4月18日下午5:14:16 *类说明 */ public class UserTest { private static Logger log = Logger.getLogger(UserTest.class); private SqlSession sqlSession = null; private UserDao userDao = null; @Before public void setUp() throws Exception { log.info("方法执行前调用"); sqlSession = SqlSessionFactoryUtil.openSession(); } @After public void tearDown() throws Exception { log.info("方法执行后调用"); sqlSession.close(); } @Test public void testSelet() { UserDao userDao = sqlSession.getMapper(UserDao.class); String id = "admin"; User curUser = userDao.findUserById(id); if(curUser!=null){ log.info("成功找到用户:"+curUser.getId()); } } }4.测试方法:在testUpdate()方法上,右键--->run as --->junit test即可。
如果发生错误,请仔细对照上文。
--------------------------------------------------------------------------------------------------------------------------------------------------------
1.在UserMapper.xml文件中增加update语句,具体内容如下:
<update id="updateUser" parameterType="User"> update sysuser set password=#{password} where id=#{id} </update>2.在UserDao中增加update方法,具体内容:
public interface UserDao { User findUserById(String id); int updateUser(User newUser); }3.创建修改单元测试用例,具体内容如下:
@Test public void testUpdate() { UserDao userDao = sqlSession.getMapper(UserDao.class); User curUser = new User("admin","changed"); int re = userDao.updateUser(curUser); sqlSession.commit(); if(re==1){ log.info("UpdateUser:"+curUser.getId()); } }
4.测试方法:在testUpdate()方法上,右键--->run as --->junit test即可。
如果发生错误,请仔细对照上文。
--------------------------------------------------------------------------------------------------------------------------------------------------------
<insert id="insertUser" parameterType="User" > insert into sysuser (Id,password) values(#{id},#{password}) </insert>2.在UserDao中增加insert方法,具体内容:
public interface UserDao { User findUserById(String id); int insertUser(User newUser); int updateUser(User newUser); }3.创建插入单元测试用例,具体内容如下:
@Test public void testInsert() { UserDao userDao = sqlSession.getMapper(UserDao.class); User newUser = new User("customer222","customer222"); int re = userDao.insertUser(newUser); sqlSession.commit(); if(re==1){ log.info("insertUser:"+newUser.getId()); } }
4.测试方法:在testUpdate()方法上,右键--->run as --->junit test即可。
如果发生错误,请仔细对照上文。
--------------------------------------------------------------------------------------------------------------------------------------------------------
<delete id="deleteUser" parameterType="String"> delete from sysuser where id=#{id} </delete>2.在UserDao中增加delete方法,具体内容:
public interface UserDao { User findUserById(String id); int insertUser(User newUser); int updateUser(User newUser); int deleteUser(String id); }3.创建修改单元测试用例,具体内容如下:
@Test public void testDelete() { UserDao userDao = sqlSession.getMapper(UserDao.class); String id = "customer"; int re = userDao.deleteUser(id); sqlSession.commit(); if(re==1){ log.info("deleteUser:"+id); } }
4.测试方法:在testUpdate()方法上,右键--->run as --->junit test即可。
如果发生错误,请仔细对照上文。
-------------------------------------------------------------------------------------------------------------------------------------