增删改查

Mybatis基本操作

1.增删改查
实体类:user

public class User {
    private int id;
    private String name;
    private Dept dept;
    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 Dept getDept() {
        return dept;
    }
    public void setDept(Dept dept) {
        this.dept = dept;
    }

}

Dept

public class Dept {
    private int id;
    private String name;
    private List<User> users;

    public List<User> getUsers() {
        return users;
    }
    public void setUsers(List<User> users) {
        this.users = users;
    }
    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;
    }
}

映射文件:
UserMapper:

<?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.fuwenjun.dao.UserMapper"> 

    <!--
        1: id:表示一个sql句柄(相当于在jdbc的statement对象)
        2: paremeterType :输入参数的类型 ,在sql语句中,通过占位符#{}来接收此参数
        3:resultType: sql操作返回的结果类型
      -->
     <resultMap type="com.fuwenjun.entity.User" id="userMap">
        <id property="id" column="id"  />
        <result property="name" column="name"/>
        <association property="dept" resultMap="com.fuwenjun.dao.DeptMapper.deptMap">
            <id property="id" column="id"  />
            <result property="name" column="deptname"/>  <!--注意如果dept中name与user中name一致 那么查出来的dept的name将会变成user的name,
所以需要将的dept表中相同的字段的名修改名称如:dept中id为deptid需要与user中id字段不同-->
        </association>  
    </resultMap>
    <select id = "getUserById" parameterType = "int" 
        resultMap = "userMap"   >       
        SELECT u.id,u.name,d.deptid,d.deptname 
        FROM USER  u , dept  d 
        WHERE u.deptId=d.deptid AND u.id= #{ id }
    </select>
    <!--查询所有用户信息 :有问题.... -->  
    <select id = "getUserList" resultMap="userMap">
        select *
        from user
    </select>
    <!-- 保存用户 -->
    <insert id="save" >
        insert into user(id,name,deptId) values(#{id},#{name},#{dept.id})
    </insert>
    <update id="update">
        UPDATE USER SET NAME=#{ name },deptId=#{ dept.id } WHERE id=#{ id } 
    </update>
    <delete id="delete">
        DELETE FROM USER WHERE id = #{ id }
    </delete>
</mapper>

DeptMapper:

<?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.fuwenjun.dao.DeptMapper"> 

    <!--
        1: id:表示一个sql句柄(相当于在jdbc的statement对象)
        2: paremeterType :输入参数的类型 ,在sql语句中,通过占位符#{}来接收此参数
        3:resultType: sql操作返回的结果类型
      -->
     <resultMap type="com.fuwenjun.entity.Dept" id="deptMap">
        <id property="id" column="deptid"  />
        <result property="name" column="deptname"/>
        <collection property="users" resultMap="com.fuwenjun.dao.UserMapper.userMap">
            <id property="id" column="id"  />
            <result property="name" column="name"/>
        </collection>
    </resultMap>
    <select id = "getDeptById" parameterType = "int" 
        resultMap = "deptMap"   >
        select id,deptname
        from dept
        where id=#{ 0 }
    </select>
    <select id="getAllDept" resultMap="deptMap">
        select deptid,deptName from dept
    </select>
    <select id="getUserByDept" resultMap="com.fuwenjun.dao.UserMapper.userMap">
        SELECT u.id,u.name 
        FROM dept d,USER u 
        WHERE d.deptid=u.deptid AND d.deptid=#{ id }
    </select>


</mapper>

使用Mapper代理进行数据库操作
例:Mapper接口
UserMapper:

import java.util.List;

import com.fuwenjun.entity.User;

public interface UserMapper {
    public User getUserById(int id);
    public List<User> getUserList();
    public void save(User u);
    public void update(User u);
    public void delete(int id);

}

service 业务逻辑层表现:


import com.fuwenjun.dao.UserMapper;
import com.fuwenjun.entity.User;
public class UserService {
    private UserMapper userMapper;
    public void setUserMapper(UserMapper userMapper) {
        this.userMapper = userMapper;
    }
    public User findById(int Id){
        return userMapper.getUserById(Id);
    }
    public void save(User u){
        userMapper.save(u);

    }
    public void update(User u){
        userMapper.update(u);
    }
    public void delete(int id){
        userMapper.delete(id);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值