mybatis中的mapper.xml中 sql语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中的mapper.xml中 sql语句相关的知识,希望对你有一定的参考价值。
<insert id="insertUser" parameterType="User">
insert into vincent_user(name,age) values(#name,#age)
</insert>
#name,#age和哪个参数对应,是和insertUser(User user)中的user属性(name,age)对应吗
如果你的对象字段和数据库字段不对应
你的xml文件上面应该有对象和数据库字段映射的配置resultMap 参考技术A #age 是取对象的 age属性, $替换
mybatis_mapper动态代理
抛开接口的实现类,直接通过dao接口来定位到mappper中的SQL语句
1:修改StudentMapper.xml文件中的mapper标签的namespace属性
(mybatis会将当前的mapper.xml文件与StudentDao对应上)
<mapper namespace="com.doaoao.dao.StudentDao"2:需要将StudentDao接口中的方法名要与 StudentMapper.xml 文件中的id名称对应上
// 接口 public interface StudentDao { void insertStudent(Student student); void deleteStudent(int id); void updateStudent(Student student); List<Student> selectAllStudents(); Student selectStudentById(int id); Student selectStudentByAddress(int id); } // id名称 <insert id="insertStudent" parameterType="com.doaoao.bean.Student"> ... </insert>
<delete id="deleteStudent"> ... </delete>
<update id="updateStudent"> ... </update> <select id="selectAllStudents" resultType="student"> ... </select>
<select id="selectStudentById" resultType="student"> ... </select>3:不需要实现类,但在测试类中还是得获取SqlSession对象
// 执行测试方法之前会执行该方法 @Before public void init(){ sqlSession = MyBatisUtil.getSqlSession(); studentDao = sqlSession.getMapper(StudentDao.class); // 通过该方法可以获取StudentDao对象 } // 方法执行完成后需要关闭sqlSession @After public void closeSession(){ if(sqlSession != null){ sqlSession.close(); } }
// 下面代码省略,与之前相同注:将dao的实现类删除之后,mybatis底层只会调用selectOne()或selectList()方法。而框架选择方法的标准是dao层方法中用于接收返回值的对象类型。若接收类型为 List,则自动选择 selectList()方法;否则,自动选择 selectOne()方法。
本笔记参考自:小猴子老师教程 http://www.monkey1024.com
以上是关于mybatis中的mapper.xml中 sql语句的主要内容,如果未能解决你的问题,请参考以下文章
干掉mapper.xml!MyBatis新特性动态SQL真香!
MyBatis的Mapper.xml怎么同时执行多个sql语句