Mybatis后端测试的个人见解?

Mybatis如何理解?

1 resources下的映射文件XXMapper.xml语法:

	1 映射文件中XX是指你选择的entity内部创建的实体类
	由<mapper namespace="">
	此处命名必须跟项目中的某个接口名同名
		<select id="" resultType="" parameterType="">
	id 命名必须与映射文件中的Sql语句的id一一对应;
		增删改查以及模糊查询等
		</select>
	</mapper>组成
	示例包名为:
		package cn.smbms
		cn.smbms.后面跟dao、entity、mapper、service、servlet、util;
	
	定义一个查询接口 List<User>findUserByName( String name);
		resultType:传入实体类的路径,一般运用在查询中,需要返回值的
		parameterType: 传入SQL语句的参数类型,传入路径,一般用于增删改
		注:
		查询一般需要将id和resultType以及parameterType 全部定义出来
		增删改不需要resultType 返回数值
		
	整体示例语法:
	<mapper namespace="cn.smbms(包名).mapper.UserMapper">
		<select id="addUser" resultType="cn.smbms.entity.User" parameterType="java.lang.String">
				select * from user where name like concat('%',#{userName},'%')
		</select>
	</mapper>

2、导入pom.xml

导入mybatis和mysql所需的依赖库
<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.36</version>
    </dependency>

3、实体类

以最简单的查询为主:
	package cn.kgc.entity;
	public class User {
	 //定义数据库的用户id,用户名,和用户密码
	    private Integer id;
    	private String userName;
    	private String userPassword;
    //给定义的数据进行get和set的方法
    	 public Integer getId() {
             return id;
    	}
   		 public void setId(Integer id) {
             this.id = id;
   		 }
   		 public String getUserName() {
            return userName;
    	}
    	 public void setUserName(String userName) {
            this.userName = userName;
  	    }
    	 public String getUserPassword() {
           return userPassword;
        }
         public void setUserPassword(String userPassword) {
           this.userPassword = userPassword;
        }
	 }

4、配置 mybatis-config.xml核心文件

//1、抬头部分导入用中文字符集在线引用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
        "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
 //2、配置主体文件
 <configuration>
 //此处建议使用environment环境用development(开发)来定义
    <environments default="development">
        <environment id="development">
        //transactionManager事务管理器用来处理事务
            <transactionManager type="JDBC"></transactionManager>
            //dataSource数据源用来定义数据来源
            <dataSource type="POOLED">
            //property 配置数据库中的默认属性
                <property name="driver" value="com.mysql.jdbc.Driver"/> //驱动程序
                <property name="url" value="jdbc:mysql://localhost:3306/smbms"/> //资源定位器
                <property name="username" value="root"/> //用户名
                <property name="password" value="ok"/> //密码
            </dataSource>
        </environment>
    </environments>
// 开发人员为了方便开发使用配置引用resources资源包下的对象不需要编写SQL,不需要在以前DAO中增加方法
    <mappers>
        <mapper resource="cn/kgc/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

5、编写 mapper/UserMapper.java 接口方法

package cn.kgc.mapper;
import cn.kgc.entity.User;
import java.util.List;

public interface UserMapper {
//以查询为例
    public List<User> findByName(String userName);
}

6、利用工具类方法抽离封装公共部分

package cn.smbms.utils;

import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	private static SqlSessionFactory factory;
	
	static{ //类加载时执行此处
		try {   //将资源以流的方式获取
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			//定义一个工厂模式模型,设置流模式
			factory = new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		} 
	}
	//封装sqlSession
	public static SqlSession getSqlSession(){
        SqlSession sqlSession=null;
        if (factory!=null){
            sqlSession = factory.openSession();
        }
        return sqlSession;
    }
}

7、创建测试类进行运行测试

package cn.kgc.test;
import cn.kgc.entity.User;
import cn.kgc.mapper.UserMapper;
import cn.kgc.util.MybatisUtil;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

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

public class MybatisTest {
    @Test
     public  void  findByName(){
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        List<User> list = sqlSession.getMapper(UserMapper.class).findByName("xxx");
        for (User user:list){
        System.out.println("id"+user.getId()+"name"+user.getUserName()+"password"+user.getUserPassword());
        }
		sqlSession.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值