Mybatis环境搭建及实例演示

1.环境介绍
Java环境:jdk1.8.0_131
开发工具:eclipse
数据库:mysql
lib下的jar包:
Mybatis环境搭建及实例演示_第1张图片
2.工程结构图
Mybatis环境搭建及实例演示_第2张图片
3.配置文件
Mybatis环境搭建及实例演示_第3张图片

  • log4j.properties
# Global logging configuration
# 在开发环境下日志级别要设置成DEBUG,生产环境下设置成info或error
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 
  • db.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/datacube?useSSL=false&&serverTimezone=GMT%2B8&&useUnicode=true&&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

datacube是数据库;username是MySQL用户名;password是MySQL密码

  • sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>	
	<!-- 加载属性文件 -->
	<properties resource="db.properties">
		<!-- properties中还可以配置一些属性名和属性值 -->
		<!-- <property name="" value=""/> -->
	</properties>
	
	<!-- 全局配置参数,需要时再设置 -->
	<!-- <settings>
	
	</settings> -->
	
	<!-- 别名定义 -->
	<typeAliases>
		<!-- 针对单个别名定义
		type:类型的路径
		alias:别名
		 -->
		<!--<typeAlias type="cn.itcast.mybatis.po.User" alias="user"/>  -->
		
		<!-- 批量别名定义
		指定包名:mybatis自动扫描包中的po类,自定义别名,别名就是类名(首字母大写或小写都可以)
		 -->
		<package name="cn.itcast.mybatis.po"/>
	</typeAliases>
	
	
	<!-- 和spring整合后environment配置将废除 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 ,事务控制由mybatis-->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池,由mybatis管理 -->
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}"></property>
				<property name="url" value="${jdbc.url}"></property>
				<property name="username" value="${jdbc.username}"></property>
				<property name="password" value="${jdbc.password}"></property>
			</dataSource>
		</environment>
	</environments>
	<!-- 加载映射文件 -->
	<mappers>
		<mapper resource="sqlmap/User.xml"/>
		<!-- 通过resource加载单个映射文件 -->
		<!--<mapper resource="mapper/UserMapper.xml"/>
  -->		
		
		<!-- 通过mapper接口加载映射文件
		遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在同一目录中
		上面规范的前提是:使用的是mapper代理方法
		 -->
		<!--  <mapper class="cn.itcast.mybatis.mapper.UserMapper"/>-->
		
		<!-- 批量加载mapper
		指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
		遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在同一目录中
		上面规范的前提是:使用的是mapper代理方法
		 -->
		<package name="cn.itcast.mybatis.mapper"/>
	</mappers>
</configuration>

至此完成项目的环境搭建,下面是具体实例操作:

4.用户自定义对象
在这里插入图片描述

package cn.itcast.mybatis.po;

public class User {
     
	private int  UserId;
	private String AdminId;
	private String UserName;
	private String Password;
	private int UserType;
	private String EmailAddr;
	private int Email_Status;
	public String getAdminId() {
     
		return AdminId;
	}
	public void setAdminId(String adminId) {
     
		AdminId = adminId;
	}
	@Override
	public String toString() {
     
		return "User [UserId=" + UserId + ", AdminId=" + AdminId + ", UserName=" + UserName + ", Password=" + Password
				+ ", UserType=" + UserType + ", EmailAddr=" + EmailAddr + ", Email_Status=" + Email_Status + "]";
	}
	public int getUserType() {
     
		return UserType;
	}
	public void setUserType(int userType) {
     
		UserType = userType;
	}
	public String getEmailAddr() {
     
		return EmailAddr;
	}
	public void setEmailAddr(String emailAddr) {
     
		EmailAddr = emailAddr;
	}
	public int getEmail_Status() {
     
		return Email_Status;
	}
	public void setEmail_Status(int email_Status) {
     
		Email_Status = email_Status;
	}
	public int getUserId() {
     
		return UserId;
	}
	public void setUserId(int userId) {
     
		UserId = userId;
	}
	public String getUserName() {
     
		return UserName;
	}
	public void setUserName(String userName) {
     
		UserName = userName;
	}
	public String getPassword() {
     
		return Password;
	}
	public void setPassword(String password) {
     
		Password = password;
	}
}

5.mapper.xml和mapper.java
在这里插入图片描述

  • mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离
注意:使用mapper代理开发,namespace有特殊重要的作用
 -->
<mapper namespace="cn.itcast.mybatis.mapper.UserMapper">
	<!-- 在映射文件中配置很多sql语句 -->
	<!-- 通过select执行数据库查询
	id:标识映射文件中的sql,称为statement的id
	将sql语句封装到mappedStatement对象中,所以将id称为statement的id
	parameterType:指定输入参数的类型,这里指定int型
	#{
     }表示一个占位符号
	#{
     id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数是简单类型,#{
     }中的参数名可以任意,可以value或其他名称
	resultType:指定sql输出结果的所映射的Java对象类型,select指定resultType表示将单条记录映射成Java对象
	 -->
	 <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
	 	select * from users where userid = #{
     value}
	 </select>
</mapper>

  • mapper.java
package cn.itcast.mybatis.mapper;

import java.util.List;

import cn.itcast.mybatis.po.User;
import cn.itcast.mybatis.po.UserCustom;
import cn.itcast.mybatis.po.UserQueryVo;

public interface UserMapper {
     
	//根据id查询用户信息
	public User findUserById(int id) throws Exception;
}

6.测试代码
在这里插入图片描述

package cn.itcast.mybatis.mapper;

import static org.junit.Assert.*;

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

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.junit.Before;
import org.junit.Test;

import cn.itcast.mybatis.dao.UserDao;
import cn.itcast.mybatis.dao.UserDaoImpl;
import cn.itcast.mybatis.po.User;
import cn.itcast.mybatis.po.UserCustom;
import cn.itcast.mybatis.po.UserQueryVo;

public class UserMapperTest {
     
	private SqlSessionFactory sqlSessionFactory;
	//此方法是在执行testFindUserById之前执行
	@Before
	public void setUp()throws Exception{
     
		//创建sqlSessionFactory
		//mybatis配置文件
		String resource = "sqlMapConfig.xml";
		//得到配置文件流
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//创建会话工厂
	    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}
	@Test
	public void testFindUserById() throws Exception {
     
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		//创建UserMapper的对象,mybatis自动生成mapper代理对象
		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
				
		//调用UserMapper的方法
		User user = userMapper.findUserById(1);
				
		System.out.println(user);
	}
}

7.测试结果
Mybatis环境搭建及实例演示_第4张图片

你可能感兴趣的:(框架,mybatis,mysql,java)