代码:
数据模型层
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);
}
}