简单搭建mybatis开发环境

目录

前言    

1、项目目录结构总览

2、准备工作

2.1 新建测试项目,下载jar包

2.2 创建数据库表(本文使用的mysq数据库)

3、环境搭建

3.1 根据目录结构创建对应文件,导包

3.2 配置资源文件

3.3 department包中代码编写(用于sqlSession调用sql)

3.4 user包中代码编写(用于Mapper接口调用sql)

4、功能测试

4.1 通过sqlSession调用sql

4.2 通过Mapper接口调用sql


前言    

    mybatis 众所周知,很优秀的一款持久层框架,具体的概念就不说了,本文就简单的描述下mybatis开发环境的搭建吧。由于mybatis可以通过sqlSession调用sql(延续ibatis)也可以通过Mapper接口调用sql,所以下面从两部分测试下。

1、项目目录结构总览

简单搭建mybatis开发环境_第1张图片

2、准备工作

2.1 新建测试项目,下载jar包

    项目需要2类包,一是mysql驱动包,一个是mybatis的jar和日志包,日志包在mybatis下的lib目录里。

    mysql驱动包下载地址:https://dev.mysql.com/downloads/connector/j/
    mybatis的jar包和日志包下载地址:https://github.com/mybatis/mybatis-3/releases

2.2 创建数据库表(本文使用的mysq数据库)

    本文需要创建fw_department和fw_user表,创建表的脚本如下(数据自己加):

CREATE TABLE `fw_department` (
  `depid` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '部门ID',
  `parentdepid` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT '父部门ID',
  `depno` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '部门编号',
  `depname` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '部门名称',
  PRIMARY KEY (`depid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE `fw_user` (
  `userid` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '人员ID',
  `userno` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT '人员编号',
  `username` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT '人员姓名',
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

3、环境搭建

3.1 根据目录结构创建对应文件,导包

    按照目录结构创建文件,将下载的jar包导入到项目中WEB-INF\lib目录下,并选中所有jar包并点击右键--》Build Path--》Add to Build Path。

3.2 配置资源文件

资源文件包括三部分,分别为jdbc.properties、mybatis-config.xml和log4j.properties
3.2.1 配置jdbc.properties文件内容(用于mybatis全局配置文件),内容如下(根据自己的数据库名称、用户名和密码配置):

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=true
jdbc.username=root
jdbc.password=123456

3.2.2 配置mybatis-config.xml全局配置文件,内容如下:




    

	
    
        
    
    
    
        
        
        
        
        
        
        
    
    
    
        
        
        
        
    

    
        
            
            
            
            
                
                
                
                
            
        
    

    
    
        
        
        
        
        
         
        
    

3.2.3 配置log4j.properties,此文件可根据自己需求配置,以下是简单配置:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3.3 department包中代码编写(用于sqlSession调用sql)

3.3.1 完善部门DTO对象
    内容是基本属性、get方法、set方法和重写的toString()方法(用于后面测试)。
3.3.2 完善DepartmentMapper.xml
    内容是简单的查询sql,需要注意的是namespace可以随意设置,只要唯一就行,没有通过mapper接口调用sql时设置的那么严格。如下:




    

3.4 user包中代码编写(用于Mapper接口调用sql)

3.4.1 创建用户DTO对象(略)
3.4.2 创建UserMapper接口和UserMapper.xml
注意:
    1、接口中的方法名和UserMapper.xml中select配置的ID必须一致;
    2、接口必须和UserMapper.xml在同一目录下(如果mapper文件是通过class配置的,则此条必须注意,否则可以忽略);
    3、UserMapper.xml中namespace设置的为接口的全路径。
UserMapper.xml内容如下:




    

4、功能测试

至此必要的代码已经写完了,测试代码如下:

public static void main(String[] args) throws Exception {
	String resource = "resources/mybatis-config.xml";
	InputStream stream = Resources.getResourceAsStream(resource);
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
	SqlSession sqlSession = sqlSessionFactory.openSession();
	//使用sqlSession执行sql
	testSqlSession(sqlSession);
	//使用mapper接口执行sql
	testMapper(sqlSession);
	sqlSession.close();
}

4.1 通过sqlSession调用sql

public static void testSqlSession(SqlSession sqlSession) {
	DepartmentDTO depDTO = sqlSession.selectOne("department.findDepartmentByID", "001001");
	System.out.println(depDTO.toString());
}

4.2 通过Mapper接口调用sql

public static void testMapper(SqlSession sqlSession) {
	UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
	UserDTO userDTO = userMapper.findUserByID("111");
	System.out.println(userDTO.toString());
}

部分测试结果如下:

DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection 1271041075.
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@4bc28c33]
DEBUG [main] - ==>  Preparing: select depid, parentdepid, depno, depname from fw_department where depid = ? 
DEBUG [main] - ==> Parameters: 001001(String)
DEBUG [main] - <==      Total: 1
[depID=001001,parentDepID=0,depNO=101,depName=财务部]
DEBUG [main] - ==>  Preparing: select userid, userno, username from fw_user where userid = ? 
DEBUG [main] - ==> Parameters: 111(String)
DEBUG [main] - <==      Total: 1
[userID=111,userNO=19092601,userName=张三]

 

你可能感兴趣的:(MyBatis)