如果之前学过hibernate框架,再来看mybatis框架,应该会相对容易一些,但是仍然会比较吃力,特别是对于新人来说,虽然网上很多前辈都做了很多总结,可以借鉴,但是仍然有很多细节问题,比较散,在这里,我会将我学习过程中遇到的各种问题以及解决的方案都贴出来,希望可以帮到一些初学的朋友,共勉。
前面说了mybatis有点像hibernate的命名查询,是将sql语句写在配置文件中,然后在代码中调用这个sql,
调用sql有两种方式,一种是直接使用session.select()、session.insert()、session.delete()、session.update()方法进行调用,还有一种是通过接口的形式,这种方式比较常用,用起来也相对比较方便,这里先介绍第一种写法
创建一个简单的User类,
package com.entity;
public class Users {
private int id;
private String name;
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;
}
}
配置User.xml:
这里只写了最简单的几个sql,至于复杂的sql语句,比如分页等,后面会详细说
<?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.entity.Users">
<!-- 添加一条记录 #可以防止sql注入,解析成为字符串-->
<insert id="insertvalues" parameterType="Users">
insert into users(id,name) values(seq_user.nextval,#{name})
</insert>
<!-- 删除一条记录 -->
<delete id="deleteOneUsers" parameterType="Users">
delete from users where id=#{id}
</delete>
<!-- 更新一条记录 -->
<update id="updateOneUsers" parameterType="Users">
update users set name=#{name} where id=#{id}
</update>
<!-- 查询一条记录 -->
<select id="selectUserById" resultType="Users" parameterType="int">
select * from users where id = #{id}
</select>
<!-- 查询全部记录 -->
<select id="selectAllUsers" resultType="Users" parameterType="int">
select * from users
</select>
<delete id="deleteAllUsers" paramete