如果对Mybatis还未入门的请看
http://josh198331.iteye.com/blog/1751163
本文是在MyBatis入门基础之上进行修改而来
一.修改UserMapper类增加对应的接口
import java.util.List;
public interface UserMapper { // 可以通过注入的方式生成映射本例不采用,本例采用Xml映射方式 // @Select("select * from user where username = #{username}") public User getUser(String username);
/** * 增加一个用户 * * @param user */ public void addUser(User user);
/** * 查询所有用户 * * @return */ public List<User> queryAll();
/** * 根据ID查找用户 * * @param id * @return */ public User getUserById(int id);
/** * 修改一个用户 * * @param user */ public void update(User user);
}
二.修改配置文件(user.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.fly31.mybatis.UserMapper"> <!-- 下面这段代码可有可无,如果没有的话可以在mapper类中通过注解的方式实现 --> <!-- 用户名不可重复 --> <select id="getUser" parameterType="java.lang.String" resultType="User"> select * from user where username = #{username} </select> <select id="getUserById" parameterType="int" resultType="User"> select * from user where id = #{id} </select> <!--查询所有记录--> <select id="queryAll" resultType="User">select * from user</select> <!-- 增加一个user --> <insert id="addUser" parameterType="User" > insert into user(id, username, password) values (#{id},#{username}, #{password}) </insert> <!-- 更新数据库 --> <update id="update" parameterType="User"> update user set username = #{username},password = #{password} where id=#{id} </update> </mapper>
说明:namespace在3.0一下可能不是很重要,在3.0及以上版本,命名空间很重要,必须要配置。
select:用于查询
id:是一个唯一标示,由于没有实现类,用默认mybatis的默认实现,所有id要用UserMapper 的方法名。
resultType:结果类型,如果返回的是个结果集,类型为结果集单元的类型
parameterType:参数类型,用#{……}可以取他的属性值。
三.写测试类 (MyBatisTest)我这里用的是junit 4
import java.util.List; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import com.fly31.mybatis.User; import com.fly31.mybatis.UserMapper; import com.fly31.utils.MyBatisUtil; public class MyBatisTest { @Test public void testGetUserByName() { // 获取SqlSession SqlSession session = MyBatisUtil.getSession(); // 获取Mapper UserMapper userMapper = session.getMapper(UserMapper.class); // 执行sql User user = userMapper.getUser("aaa"); if (user != null) { System.out.println("username:" + user.getUsername() + ", password:" + user.getPassword()); } session.close(); } @Test public void testGetAllUser() { // 获取SqlSession SqlSession session = MyBatisUtil.getSession(); // 获取Mapper UserMapper userMapper = session.getMapper(UserMapper.class); List<User> list = userMapper.queryAll(); for (User user : list) { System.out.println("username:" + user.getUsername() + ", password:" + user.getPassword()); } session.close(); } @Test public void testAddUser() { User user = new User(); user.setId(3); user.setUsername("ccc"); user.setPassword("123"); // 获取SqlSession SqlSession session = MyBatisUtil.getSession(); // 获取Mapper UserMapper userMapper = session.getMapper(UserMapper.class); userMapper.addUser(user); session.commit(); } @Test public void testUpdateUser() { // 获取SqlSession SqlSession session = MyBatisUtil.getSession(); // session.commit(false); // 获取Mapper UserMapper userMapper = session.getMapper(UserMapper.class); // 执行sql User user = userMapper.getUser("bbb"); user.setUsername("josh22"); userMapper.update(user); session.commit(); session.close(); } @Test public void testGetUserById() { // 获取SqlSession SqlSession session = MyBatisUtil.getSession(); // 获取Mapper UserMapper userMapper = session.getMapper(UserMapper.class); // 执行sql User user = userMapper.getUserById(2); if (user != null) { System.out.println("username:" + user.getUsername() + ", password:" + user.getPassword()); } session.close(); } }