mybatis系列一:mybatis实现增删改查

1.效果图:

mybatis系列一:mybatis实现增删改查_第1张图片


2.Mybatis的步骤:

本内容涉及到mysql数据库,先去下载一个数据库,新建一个User表和Article表

Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong');

Drop TABLE IF EXISTS `article`; Create TABLE `article` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `title` varchar(100) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 
-- 添加几条测试数据 -- ---------------------------- 
Insert INTO `article` VALUES ('1', '1', '11111', 'dsgfd'); 
Insert INTO `article` VALUES ('2', '1', '22222', 'dfsdgds'); 
Insert INTO `article` VALUES ('3', '1', 'dddd3','dfsfsdfd'); 
Insert INTO `article` VALUES ('4', '1', 'ddd4', '5555');


2.1先将mybatis-3.2.7.jar和mysql-connector-java-5.1.22-bin.jar两个需要用到的jar包拷到WEB-INF下面的lib文件夹

2.2 看上图中的架构,新建包和类,按顺序新建

Article类:

package com.mybatis.model;

public class Article {
	private int id;
	private User user;
	private String title;
	private String content;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
}

User类:

package com.mybatis.model;

public class User {
	private int id; 
	private String userName; 
	private String userAge; 
	private String userAddress;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserAge() {
		return userAge;
	}
	public void setUserAge(String userAge) {
		this.userAge = userAge;
	}
	public String getUserAddress() {
		return userAddress;
	}
	public void setUserAddress(String userAddress) {
		this.userAddress = userAddress;
	}
}

IUserOperation接口:

package com.mybatis.interfaces;
import com.mybatis.model.*;
import java.util.List;

public interface IUserOperation {
	//定义的接口名需与User.xml里的id值要对应
	public List getUserList(String userName);
	
	public List
getUserAticles(int id); public User selectUserByID(int id); public int insertUserInfo(User user); public int updateUserInfo(User user); public int deleteUserInfo(int id); }


新建User.xml:

 

 
    
	
	
	
	
	
	
	
		
		
		
		
	
	
	
	
	
	
	
	
	
	
		
		
		
	    
		
		
	
	
	
	
	
	
	
	 
	
		insert into `user`(userName,userAge,userAddress) values (#{userName},#{userAge},#{userAddress})
	
	
	
		update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}
	
	
	
		delete from `user` where id=#{id}
	
	






新建配置文件configuration.xml

 


	
	
		
		
	
	
		
			
			
				
				
				
				
			
		
	
	
		
	




最后开始测试,新建一个测试类:

package com.mybatis.test;
import com.mybatis.interfaces.IUserOperation;
import com.mybatis.model.User;
import com.mybatis.model.Article;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.util.List;

public class Test {
	private static SqlSessionFactory sqlFactory;
	private static Reader reader;
	private static User user;
	private static int Ret;
	/*static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方*/
	static {
		try {
			reader = Resources.getResourceAsReader("Configuration.xml");
			sqlFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static SqlSessionFactory getSession() {
		return sqlFactory;
	}
	
	//获取用户列表
	public static void GetUserList(List UserList)
	{
		if(UserList.size()>0){
		for(User u:UserList){
			System.out.println("Id:"+u.getId()+";UserName:"+u.getUserName()+";UserAge:"+u.getUserAge()+
			";UserAddress:"+u.getUserAddress());
		}
		}
		else{
			System.out.println("用户不存在!");
		}
	}
	
	//获取用户文章列表
	public static void GetUserArticle(List
articleList) { if(articleList.size()>0){ for(Article a:articleList){ System.out.println("UserName:"+a.getUser().getUserName()+";UserAddress:"+a.getUser().getUserAddress()+ ";ArticleTitle:"+a.getTitle()+";ArticleContent:"+a.getContent()); } } else{ System.out.println("用户不存在!"); } } public static void main(String[] args) { SqlSession session = sqlFactory.openSession(); try { IUserOperation operation=session.getMapper(IUserOperation.class); //新增 /*user=new User(); user.setUserName("Amyli"); user.setUserAge("20"); user.setUserAddress("Ludun BaLin"); Ret=operation.insertUserInfo(user); if(Ret>0){ System.out.println("新增成功!"); } else{ System.out.println("新增失败!"); }*/ //删除 /*Ret=operation.deleteUserInfo(27); if(Ret>0){ System.out.println("删除成功!"); } else{ System.out.println("删除失败!"); }*/ //修改 user = operation.selectUserByID(24); user.setUserAge("23"); user.setUserAddress("Chendu SiChuan"); Ret=operation.updateUserInfo(user); if(Ret>0){ System.out.println("修改成功!"); } else{ System.out.println("修改失败!"); } session.commit(); //记住,做增删改操作,一定要记得调用commit提交,否则无效。 //查询 user = operation.selectUserByID(24); System.out.println(user.getId()); System.out.println(user.getUserName()); System.out.println(user.getUserAge()); System.out.println(user.getUserAddress()); System.out.println(""); Test.GetUserList(operation.getUserList("DaLei")); System.out.println("文章:"); Test.GetUserArticle(operation.getUserAticles(24)); } finally { session.close(); } } }

里面有好几个细节要注意,具体看代码,里面有详细注释!


Mybatis代码下载 :Mybatis代码

你可能感兴趣的:(Mybatis)