MyBatis 基于注解的增删改查示例(Spring IOC注入)

 代码:

数据模型层

package com.sunline.entity;

import java.io.Serializable;

public class User implements Serializable{
   private Integer user_id;
   private String  user_name;
   private String  user_password;
   private String  user_kind;
   private Double  user_balance;
   private String  user_status;
public Integer getUser_id() {
	return user_id;
}
public void setUser_id(Integer user_id) {
	this.user_id = user_id;
}
public String getUser_name() {
	return user_name;
}
public void setUser_name(String user_name) {
	this.user_name = user_name;
}
public String getUser_password() {
	return user_password;
}
public void setUser_password(String user_password) {
	this.user_password = user_password;
}
public String getUser_kind() {
	return user_kind;
}
public void setUser_kind(String user_kind) {
	this.user_kind = user_kind;
}
public Double getUser_balance() {
	return user_balance;
}
public void setUser_balance(Double user_balance) {
	this.user_balance = user_balance;
}
public String getUser_status() {
	return user_status;
}
public void setUser_status(String user_status) {
	this.user_status = user_status;
}
@Override
public String toString() {
	return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_password=" + user_password + ", user_kind="
			+ user_kind + ", user_balance=" + user_balance + ", user_status=" + user_status + "]";
}
   
}

#数据访问层

   @数据操作接口

package com.sunline.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;

import com.sunline.entity.User;

public interface UserDao {
  /*
   * 插入一条用户记录
   */
	@Insert("insert into user(user_name,user_password,user_kind,user_balance,user_status)"
			+ " values(#{user_name},#{user_password},#{user_kind},#{user_balance},#{user_status})")
	@Options(useGeneratedKeys = true,keyProperty="id")
	int SaveUser(User user);
	
	/*
	 * 删除指定id的用户
	 */
	@Delete("delete from user where user_id = #{user_id}")
	int RemoveUser(@Param("user_id") Integer user_id);
	
	/*
	 * 修改用户的指定字段
	 */
	@Update("update user set user_name = #{user_name}, user_balance = #{user_balance} where user_id = #{user_id}")
	void ModifyUser(User user);
	
	/*
	 * 查找所有用户
	 */
	@Select("select * from user")
	List<User> findAll();
	
	/*
	 * 查找某个id的用户
	 */
	@Select("select * from user where user_id = #{user_id}")
	@Results({
		@Result(id=true,column="user_id",property="user_id"),
		@Result(column="user_name",property="user_name"),
		@Result(column="user_password",property="user_password"),
		@Result(column="user_kind",property="user_kind"),
		@Result(column="user_balance",property="user_balance"),
		@Result(column="user_status",property="user_status")
	})
	User findById(int user_id);
	
	/*
	 * 模糊查询
	 */
	@Select("select * from user where user_name like #{user_name} and user_balance >=#{user_balance}")
	public List<User> findByMoHu(User user);
	
	/*
	 * 动态SQL查询(有输入的则为查询条件)
	 */
	@SelectProvider(type = UserSqlProvider.class, method = "SelectByParam")
	List<User> findByDyna(Map<String, Object> param);
	
	/*
	 * 动态SQL修改参数(有输入的则为修改条件)
	 */
	@UpdateProvider(type = UserSqlProvider.class, method = "UpdateByParam")
	void UpdateUser(User user);
	
}

  @动态SQL生产类

package com.sunline.dao;

import java.util.Map;

import org.apache.ibatis.jdbc.SQL;

import com.sunline.entity.User;

public class UserSqlProvider {
    public String SelectByParam(Map<String , Object> param){
    	return new SQL(){
    		{
    		   SELECT("*");  
               FROM("user");
               if(param.get("user_id") !=null){
            	   WHERE("user_id = #{user_id}");
               }
               if(param.get("user_name") !=null){
            	   WHERE("user_name = #{user_name}");
               }
               if(param.get("user_password") !=null){
            	   WHERE("user_password = #{user_password}");
               }
               if(param.get("user_kind") !=null){
            	   WHERE("user_kind = #{user_kind}");
               }
               if(param.get("user_balance") !=null){
            	   WHERE("user_balance = #{user_balance}");
               }
               if(param.get("user_status") !=null){
            	   WHERE("user_status = #{user_status}");
               }
    		}
    	}.toString();
    }
    
    public String UpdateByParam(User user){
    	return new SQL(){
    		{
    		   UPDATE("user");
               if(user.getUser_name() !=null){
            	   SET("user_name = #{user_name}");
               }
               if(user.getUser_password() !=null){
            	   SET("user_password = #{user_password}");
               }
               if(user.getUser_kind() !=null){
            	   SET("user_kind = #{user_kind}");
               }
               if(user.getUser_balance() !=null){
            	   SET("user_balance = #{user_balance}");
               }
               if(user.getUser_status() !=null){
            	   SET("user_status = #{user_status}");
               }
               WHERE("user_id = #{user_id}");
    		}
    	}.toString();
    }
}

#业务逻辑层

package com.sunline.biz;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.sunline.dao.UserDao;
import com.sunline.entity.User;

@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
@Service("userBiz")
public class UserBiz {
    /*
     * 自动注入UserDao
     */
	@Autowired
	private UserDao userDao;
	
	/*
	 * 添加用户
	 */
	public void SaveUser(User user){
		userDao.SaveUser(user);
	}
	
	/*
	 * 删除指定id的用户
	 */
	public void DeleteUser(int user_id){
		userDao.RemoveUser(user_id);
	}
	
	/*
	 * 修改用户的指定字段
	 */
	public void ModifyUser(User user){
		userDao.ModifyUser(user);
	}
	
	/*
	 * 查找所有用户
	 */
	public List<User> findAll(){
		return userDao.findAll();
	}
	
	/*
	 * 根据id查找指定用户
	 */
	public User findById(int user_id){
		return userDao.findById(user_id);
	}
	
	/*
	 * 模糊查询
	 */
	public List<User> findByMoHu(User user){
		return userDao.findByMoHu(user);
	}
	
	/*
	 * 动态SQL查询(有输入的则为查询条件)
	 */
	public List<User> findByDyna(Map<String, Object> param){
		return userDao.findByDyna(param);
	}
	
	/*
	 * 动态SQL修改参数(有输入的则为修改条件)
	 */
	public void UpdateUser(User user){
		userDao.UpdateUser(user);
	}
}

#测试类

package com.sunline.test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.sunline.biz.UserBiz;
import com.sunline.entity.User;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
	    UserBiz userBiz = (UserBiz) ctx.getBean("userBiz");
	    
	    /*
	     * 1.添加用户 
	     */
	    User user = new User();
	    user.setUser_name("张宇");
	    user.setUser_password("123456");
	    user.setUser_kind("客户");
	    user.setUser_status("正常");
	    user.setUser_balance(6500.0);
	    
	    userBiz.SaveUser(user);
	    
	    /*
	     * 2.删除指定id的用户
	     */
	    userBiz.DeleteUser(7);
	    
	    /*
	     * 3.修改用户的指定字段
	     */
	    User user = new User();
	    user.setUser_id(5);
	    user.setUser_name("毛仁");
	    user.setUser_balance(8000.0);
	    userBiz.ModifyUser(user);
	    
	    /*
	     * 4.查找所有用户
	     */
	    List<User> list = userBiz.findAll();
	    for(User user : list){
	    	System.out.println("用户信息为: "+user.getUser_name()+" "+user.getUser_password()
	    	                   +" "+user.getUser_status()+" "+user.getUser_kind()+" "+user.getUser_balance());
	    }
	    
	    /*
	     * 5.根据id查找用户信息
	     */
	    User user = userBiz.findById(5);
    	System.out.println("用户信息为: "+user.getUser_name()+" "+user.getUser_password()
                            +" "+user.getUser_status()+" "+user.getUser_kind()+" "+user.getUser_balance());
	    
	    /*
	     * 6.模糊查询
	     */
	    User user = new User();
	    String user_name = "%"+"杨"+"%";
	    double user_balance = 3000.0;
	    user.setUser_name(user_name);
	    user.setUser_balance(user_balance);
	    List<User> list = userBiz.findByMoHu(user);
	    for(User us : list){
    	System.out.println("用户信息为: "+us.getUser_name()+" "+us.getUser_password()
    	                   +" "+us.getUser_status()+" "+us.getUser_kind()+" "+us.getUser_balance());
        }
	    
	    /*
	     * 7.动态SQL查询(有输入的则为查询条件)
	     */
	    Map<String, Object> param = new HashMap<String,Object>();
	    param.put("user_name", "杨旭");
	    param.put("user_status", "正常");
	    param.put("user_kind", "客户");
	    List<User> list = userBiz.findByDyna(param);
	    for(User us : list){
    	System.out.println("用户信息为: "+us.getUser_name()+" "+us.getUser_password()
    	                   +" "+us.getUser_status()+" "+us.getUser_kind()+" "+us.getUser_balance());
        }
	    
	    /*
	     * 8.动态SQL修改参数(有输入的则为修改条件)
	     */
	    User user = new User();
	    user.setUser_id(5);
	    user.setUser_name("毛仁义");
	    user.setUser_password("1234567");
	    user.setUser_balance(10000.0);
	    userBiz.UpdateUser(user);
	}

}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇潇雨歇_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值