MyBatis-实例教程-单表的CRUD详解

一、自己手写配置文件

1.新建java工程

我在eclipse新建java project项目。然后建了两个包:org.mybatis.example和org.mybatis.javabean

第一个包用来放测试类和映射文件。

第二个包用来放数据库相对应的javaBean。

然后,在数据库里建立表:

-- Table "t_user" DDL

CREATE TABLE `t_user` (
  `user_name` varchar(20) NOT NULL default '',
  `password` varchar(20) default NULL,
  PRIMARY KEY  (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


 

2.导入相关包

必须导入的包:

mybatis-3.1.1.jar

mysql-connector-java-5.1.16-bin.jar(这个看你要连接什么数据库了)

另外,为了在测试的时候,能看到执行的SQL语句,我把log4j的包也导入了:

asm-3.3.1.jar

cglib-2.2.2.jar

commons-logging-1.1.1.jar

log4j-1.2.16.jar

 

还要加上log4j.properties配置文件:

log4j.properties:

log4j.rootLogger=DEBUG,CONSOLE 
log4j.addivity.org.apache=true  
# 应用于控制台  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.Threshold=DEBUG  
log4j.appender.CONSOLE.Target=System.out  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[thread] n%c[CATEGORY]%n%m[MESSAGE]%n%n  


放在了src/java/main目录下

3.写mybatis-config.xml文件

新建mybatis-config.xml文件,放在src/java/main目录下,内如:




  
    
      
      
        
        
        
        
      
    
  
  
    
  


其中,mapper标签,指向的是一个映射文件。如果你有多个文件,这里可以写多个。

4.写数据库表的映射文件StudentMapper.xml

在org.mabatis.example下新建TUserMapper.xml文件,内容如下:




	
	
		
		
	
	
	
		insert into t_user(user_name,password) values(
		#{userName},
		#{password}
		)
	
	
	
		update t_user
		
			user_name=#{userName},
			password=#{password}
		
		
			user_name=#{userName}
		
	

	
	
		delete from t_user
		
			user_name=#{userName}
		
	
	
	


	
	
	
	
		
			user_name=#{userName}
			and password=#{password}
		
	


每个sql语句等,我都写了注释,应该都算清楚了吧。单表的CRUD,这些掌握就足够使用了。

5.写CRUD四个方法并且测试

在org.mybatis.example下新建测试类Main,内容如下:

package org.mybatis.example;

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

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 org.mybatis.javabean.TUser;

public class Main {

    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        // 插入
        HashMap map = new HashMap();
        map.put("userName", "lisa");
        map.put("password", "100100");
        System.out.println("通过map插入结果:" + insert(factory.openSession(), map));

        // TUser user = new TUser();
        // user.setUserName("lili");
        // user.setPassword("abc001");
        // System.out.println("通过javabean插入结果:" + insert(factory.openSession(), user));
        // 更新
        // HashMap map = new HashMap();
        // map.put("userName", "lisa");
        // map.put("password", "990099");
        // System.out.println("通过map更新结果:" + update(factory.openSession(), map));

        // TUser user = new TUser();
        // user.setUserName("lili");
        // user.setPassword("001100");
        // System.out.println("通过javabean更新结果:" + update(factory.openSession(), user));

        // 删除
        // String userName = "lisa";
        // System.out.println("删除结果:" + delete(factory.openSession(), null));
        // 查询
        // System.out.println("查询总数据条数:" + selectCount(factory.openSession()));
        // TUser u = new TUser();
        // u.setUserName("lisa");
        // List list = selectList(factory.openSession(), u);
        // for (TUser user : list) {
        // System.out.println("name=" + user.getUserName() + ";pwd=" + user.getPassword());
        // }
    }

    /**
     * 
     * DOC 通过map或者javaBean插入.
     * 
     * @param sqlSession
     * @param map
     * @return
     */
    private static boolean insert(SqlSession sqlSession, Object mapOrJavaBean) {
        int i = sqlSession.insert("TUser.insert", mapOrJavaBean);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC 通过map或javaBean更新信息.
     * 
     * @param sqlSession
     * @param map
     * @return
     */
    private static boolean update(SqlSession sqlSession, Object mapOrJavaBean) {
        int i = sqlSession.update("TUser.update", mapOrJavaBean);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC 删除.
     * 
     * @param sqlSeesion
     * @param userName
     * @return
     */
    private static boolean delete(SqlSession sqlSession, String userName) {
        Map map = new HashMap();
        map.put("userName", userName);
        int i = sqlSession.delete("TUser.delete", map);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC 查询总数据条数.
     * 
     * @param sqlSession
     * @return
     */
    private static int selectCount(SqlSession sqlSession) {
        return sqlSession.selectOne("TUser.selectCount");
    }

    /**
     * 
     * DOC 按条件查询.
     * 
     * @param sqlSession
     * @param mapOrJavaBean
     * @return
     */
    private static List selectList(SqlSession sqlSession, Object mapOrJavaBean) {
        return sqlSession.selectList("TUser.select", mapOrJavaBean);
    }

}


最后,放一张项目结构图:

 

二、使用官网提供的工具生成配置文件

1.下载生成工具

如果你还没工具的话,可以去官网下载。我的前两篇文章里有写到下载地址,可以去看看。

下载好后,解压到某个目录。我解压的是到F盘

将数据库驱动jar包,考入到lib目录下

2.编写配置文件

新建java文件夹

编写配置文件config.xml





    

    

        
            
        

        
        

        
            
        

        
            
            
        

        
            
        

        
            
        

        


 

 

3.执行命令

命令行下执行:

看到successfully后,则可看到生成的文件

你可能感兴趣的:(其他相关知识)