首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Mybatis中配备Mapper的方法

2013-04-07 
Mybatis中配置Mapper的方法Mybatis中配置Mapper的方法package com.tiantian.mybatis.model public class

Mybatis中配置Mapper的方法

Mybatis中配置Mapper的方法

package com.tiantian.mybatis.model; public class User { private int id; private String name; private int age; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } }


?

然后我要利用Mybatis对它做一个简单的增删改查操作,那么如果利用xml配置Mapper的方式来定义的话,我对应的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.tiantian.mybatis.mapper.UserMapper">    <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyColumn="id">       insert into t_user(name, age) values(#{name}, #{age})    </insert>       <update id="updateUser" parameterType="User">       update t_user set name=#{name}, age=#{age} where id=#{id}    </update>       <select id="findById" parameterType="int" resultType="User">       select * from t_user where id=#{id}    </select>       <delete id="deleteUser" parameterType="int">       delete from t_user where id=#{id}    </delete></mapper>

package com.tiantian.mybatis.mapperinterface; import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update; import com.tiantian.mybatis.model.User; public interface UserMapper { @Insert("insert into t_user(name, age) values(#{name}, #{age})") public void insertUser(User user); @Update("update t_user set name=#{name}, age=#{age} where id=#{id}") public void updateUser(User user); @Select("select * from t_user where id=#{id}") public User findById(int id); @Delete("delete from t_user where id=#{id}") public void deleteUser(int id); }

<mappers> <mapper resource="com/tiantian/mybatis/mapper/UserMapper1.xml"/> <mapper url="file:///E:/UserMapper.xml"/> </mappers>

<?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.tiantian.mybatis.mapperinterface.UserMapper"> </mapper>

package com.tiantian.mybatis.mapperinterface; import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update; import com.tiantian.mybatis.model.User; public interface UserMapper { @Insert("insert into t_user(name, age) values(#{name}, #{age})") public void insertUser(User user); @Update("update t_user set name=#{name}, age=#{age} where id=#{id}") public void updateUser(User user); @Select("select * from t_user where id=#{id}") public User findById(int id); @Delete("delete from t_user where id=#{id}") public void deleteUser(int id); }

<mappers> <mapper name="code"> <mappers> <package name="com.tiantian.mybatis.mapperinterface"/> </mappers>

这四种注册Mapper的方式就是我想在这篇文章中表达的。总结一下:

    <mappers>       <!-- 通过package元素将会把指定包下面的所有Mapper接口进行注册 -->       <package name="com.tiantian.mybatis.mapperinterface"/>       <!-- 通过mapper元素的resource属性可以指定一个相对于类路径的Mapper.xml文件 -->       <mapper resource="com/tiantian/mybatis/mapper/UserMapper.xml"/>       <!-- 通过mapper元素的url属性可以指定一个通过URL请求道的Mapper.xml文件 -->       <mapper url="file:///E:/UserMapper.xml"/>       <!-- 通过mapper元素的class属性可以指定一个Mapper接口进行注册 -->       <mapper style="text-indent: 21.0pt;">下面将对上面的代码给出一些对应的测试代码。先贴出测试对应的Mybatis的配置文件:

<?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>     <properties resource="config/jdbc.properties"></properties>    <typeAliases>       <package name="com.tiantian.mybatis.model"/>    </typeAliases>    <environments default="development">       <environment id="development">           <transactionManager type="JDBC" />           <dataSource type="POOLED">              <property name="driver" value="${jdbc.driver}" />              <property name="url" value="${jdbc.url}" />              <property name="username" value="${jdbc.username}" />              <property name="password" value="${jdbc.password}" />           </dataSource>       </environment>    </environments>    <mappers>       <package name="com.tiantian.mybatis.mapperinterface"/>       <mapper resource="com/tiantian/mybatis/mapper/UserMapper.xml"/>    </mappers></configuration>

package com.tiantian.mybatis.test; import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Before;import org.junit.Test; import com.tiantian.mybatis.model.User;import com.tiantian.mybatis.util.Util; /** * * 这个类主要用来测试直接使用SqlSession访问定义在UserMapper.xml文件中的statement * */public class UserMapperTest { SqlSessionFactory sqlSessionFactory = null; @Before public void before() { sqlSessionFactory = Util.getSqlSessionFactory(); } @Test public void testInsert() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setName("张三"); user.setAge(30); sqlSession.insert("com.tiantian.mybatis.mapper.UserMapper.insertUser", user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testUpdate() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("李四"); user.setAge(34); sqlSession.update("com.tiantian.mybatis.mapper.UserMapper.updateUser", user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testFind() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = sqlSession.selectOne("com.tiantian.mybatis.mapper.UserMapper.findById", 1); System.out.println(user.getId() + "--" + user.getName() + "--" + user.getAge()); } finally { sqlSession.close(); } } @Test public void testDelele() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { sqlSession.delete("com.tiantian.mybatis.mapper.UserMapper.deleteUser", 2); sqlSession.commit(); } finally { sqlSession.close(); } } }

package com.tiantian.mybatis.test; import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Before;import org.junit.Test; import com.tiantian.mybatis.model.User;import com.tiantian.mybatis.util.Util; /** * *这个类是测试直接使用SqlSession访问UserMapper接口中使用注解定义好的statement * */public class UserMapperTest2 { SqlSessionFactory sqlSessionFactory = null; @Before public void before() { sqlSessionFactory = Util.getSqlSessionFactory(); } @Test public void testInsert() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setName("张三"); user.setAge(30); sqlSession.insert("com.tiantian.mybatis.mapperinterface.UserMapper.insertUser", user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testUpdate() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("李四"); user.setAge(34); sqlSession.update("com.tiantian.mybatis.mapperinterface.UserMapper.updateUser", user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testFind() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = sqlSession.selectOne("com.tiantian.mybatis.mapperinterface.UserMapper.findById", 1); System.out.println(user.getId() + "--" + user.getName() + "--" + user.getAge()); } finally { sqlSession.close(); } } @Test public void testDelele() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { sqlSession.delete("com.tiantian.mybatis.mapperinterface.UserMapper.deleteUser", 3); sqlSession.commit(); } finally { sqlSession.close(); } } }

package com.tiantian.mybatis.test; import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Before;import org.junit.Test; import com.tiantian.mybatis.mapperinterface.UserMapper;import com.tiantian.mybatis.model.User;import com.tiantian.mybatis.util.Util; /** * *这个类是测试使用SqlSession获取UserMapper接口来执行使用注解定义在UserMapper接口中的statement * */public class UserMapperTest3 { SqlSessionFactory sqlSessionFactory = null; @Before public void before() { sqlSessionFactory = Util.getSqlSessionFactory(); } @Test public void testInsert() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setName("张三"); user.setAge(30); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.insertUser(user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testUpdate() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("李四"); user.setAge(34); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.updateUser(user); sqlSession.commit(); } finally { sqlSession.close(); } } @Test public void testFind() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.findById(1); System.out.println(user.getId() + "--" + user.getName() + "--" + user.getAge()); } finally { sqlSession.close(); } } @Test public void testDelele() { SqlSession sqlSession = sqlSessionFactory.openSession(); try { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.deleteUser(5); sqlSession.commit(); } finally { sqlSession.close(); } } }

?

?

?

?

?

热点排行