Mybatis-基本XML配置

官方文档 http://www.mybatis.org/mybatis-3/zh/index.html

先来熟悉其中的配置


我们先需要 mysql  数据库  Oracle 数据库 navicat 工具

navicat 下载地址 http://www.cncrk.com/downinfo/8714.html

             破解地址 https://blog.youkuaiyun.com/qq_21205435/article/details/78902052

Oracle  下载安装地址 http://www.ddooo.com/softdown/60921.htm


数据库 表

CREATE TABLE "TEST"."TBL_EMPLOYEE" 
   (	"ID" NUMBER(*,0), 
	"LAST_NAME" VARCHAR2(225), 
	"GENDER" NUMBER(*,0), 
	"EAMIL" VARCHAR2(225)
   ) 

工程目录


pom文件


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>mybatis-0531</groupId>
  <artifactId>mybatis-0531</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
		<spring.version>4.3.3.RELEASE</spring.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-api</artifactId>
		    <version>2.8.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.24</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<!--使用范围 -->
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-core</artifactId>
		    <version>2.8.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc6 -->
		<dependency>
		    <groupId>com.oracle</groupId>
		    <artifactId>ojdbc6</artifactId>
		    <version>11.2.0.3</version>
		</dependency>
	</dependencies>
</project>


Employee类


package com.prosay.entity;

import org.apache.ibatis.type.Alias;

@Alias("employee")
public class Employee {
	private Integer id;
	private String lastName; //和数据库的字段不一样 mybatis-config.xml 中的setting属性 
	private Integer gender;
	private String eamil;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getlastName() {
		return lastName;
	}
	public void setlastName(String lastName) {
		this.lastName = lastName;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	public String getEamil() {
		return eamil;
	}
	public void setEamil(String eamil) {
		this.eamil = eamil;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", gender="
				+ gender + ", eamil=" + eamil + "]";
	}
}


EmployeeMapper


package com.prosay.mapper;

import java.util.Hashtable;

import com.prosay.entity.Employee;

public interface EmployeeMapper {
	public Employee getEmployeeById(Integer id);
}


EmployeeMappeAnnotation


package com.prosay.mapper;

import org.apache.ibatis.annotations.Select;

import com.prosay.entity.Employee;

public interface EmployeeMapperAnnotation {
	@Select("select * from tbl_employee where id = #{id}")
	public Employee getEmployeeById(Integer id);
}
下面是我们的配置文件  DTD  文件约束


EmployeeMapper.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">
<mapper namespace="com.prosay.mapper.EmployeeMapper">

<!--
 namespace:空间命名 
 id: 唯一标识
 parameterType: 返回值类型
 #{id} 从传过来的参数中取出我们的id的值
 -->
<!-- 当数据库和名字不一样的时候使用 -->
<!-- public Employee getEmployeeById(Integer id); 
	id一样绑定方法
-->

  <!-- employee  别名 建议使用包名 -->
  <select id="getEmployeeById" resultType="employee" databaseId="oracle">
  <!-- 指定数据库 databaseId="mysql" -->
    select * from tbl_employee where id = #{id}
  </select>
</mapper>

log4j配置


<?xml version="1.0" encoding="UTF-8"?>  
<Configuration status="WARN">  
    <Appenders>  
        <Console name="Console" target="SYSTEM_OUT">  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />  
        </Console>  
    </Appenders>  
    <Loggers>  
        <Root level="DEBUG">  
            <AppenderRef ref="Console" />  
        </Root>  
    </Loggers>  
</Configuration>  


mybaitis-config.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>
<!-- 
	1.mybatis可以使用propertise来引入外部properties配置文件的内容
	2.resource 引入类路劲下的配置文件
	3.url 系统路劲下的配置文件
 -->
 
 <!-- 磁盘路劲 file:///D:\mybatisConfig.properties -->
  <properties resource="mybatisConfig.properties"></properties>
  
   <!-- 配置属性 多了空个不行  -->
  <settings>
  	<!-- 配置骆驼命名法 name = 名字  value = 值 -->
  	<setting name="mapUnderscoreToCamelCase" value="true"/>
  </settings>
  
  <!-- 
  	别名处理器
   -->
  <typeAliases>
  <!-- 单个别名处理器 type 指定的全类名;
  	      默认别名就是小写 employee
  	   alias 别名 	
   -->
  	<!-- 麻烦  <typeAlias alias="employee" type="com.prosay.entity.Employee"/> -->
  	<!-- 批量起别名 制定包 为当前包和以后的所有包起别名 -->
  	<package name="com.prosay.entity"/>
  	<!-- 注意当子包也有相同类名的时候会发生错误,是用我们的@Alias("")注解,解决问题,不区分大小写 -->
  </typeAliases>
  
  <!-- 
  	environments  环境配置  default 来切换环境属性
  	1.environment:一个具体的环境信息 id == 当前环境的的唯一标识
  		其中必须有 transactionManager   后面使用我们的spring来控制我们的事务
  					type:事务管理器的类型;JDBC|MANAGED
  				  dataSource: 数据源
  				  	type=”[UNPOOLED| 这个数据源的实现只是每次被请求时打开和关闭连接 不使用连接池
  				  		JndiDataSourceFactory
  				  	POOLED| 连接池技术
  				  		PooledDataSourceFactory
  				  	JNDI| EJB 或应用服务器这类容器
  				  		UnpooledDataSourceFactory
  		自定义的数据源:实现我们的dataSourceFactory type 全类名	
  -->
  <environments default="dev_oracle">
  	<environment id="">
  		<transactionManager type=""></transactionManager>
  		<dataSource type=""></dataSource>
  	</environment>
  
    <environment id="dev_mysql">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/> 
        <!-- <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/> -->
      </dataSource>
    </environment>
    
    <environment id="dev_oracle">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${orcl.driver}"/>
        <property name="url" value="${orcl.url}"/>
        <property name="username" value="${orcl.username}"/>
        <property name="password" value="${orcl.password}"/> 
      </dataSource>
    </environment>
  </environments>
  
  
  <!-- 支持多数据库 厂商
  	type="DB_VENDOR" VendorDatabaseIdProvider
  		得到数据库厂商标识
   -->
  <databaseIdProvider type="DB_VENDOR">
  	<!-- 为不同的数据库厂商起别名 -->
  	<property name="Mysql" value="mysql"/>
  	<property name="Oracle" value="oracle"/>
  	<property name="SQL Server" value="sqlserver"/>
  </databaseIdProvider>
  
  <!-- 将我们写好的sql映射文件(EmployeeMapper.xml) 
  	注册到全局配置文件(mybatis-config.xml)
  -->
  <mappers>  	
  	<!-- 包名使用 -->
  	<!-- mapper:注册一个sql映射 
  		resource:类路劲下的资源
  			EmployeeMapper.xml
  		url: 网络和磁盘
  			file:///var/mappers/PostMapper.xml
  		class:直接使用接口
  			配置文件名和接口名同名
  			1.有sql映射文件,映射名必须和接口名同名,并且在同一目录下
	  			<mapper class="com.prosay.mapper.EmployeeMapper"/> 
	  			<mapper resource="com/prosay/mapper/EmployeeMapper"/>
  			2.没有sql映射文件,所有的sql都是利用注解写在接口上
  				<mapper class="com.prosay.mapper.EmployeeMapperAnnotation"/>
  	 -->
    <mapper resource="EmployeeMapper.xml"/>
    <mapper class="com.prosay.mapper.EmployeeMapperAnnotation"/>
    <!-- 批量注册 xml配置方式 路劲名必须一样  -->
    <!-- <package name="com.prosay.mapper"/>  --> 
  </mappers>
</configuration>


mybatisConfig.properties


jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis
jdbc.username = root
jdbc.password = root

orcl.driver = oracle.jdbc.OracleDriver
orcl.url = jdbc:oracle:thin:127.0.0.1:1521:test
orcl.username = test
orcl.password = test


总结:

    基本上的标签都是用了一遍,ObjectFanctory对象工厂,和plugins等到以后写,

    注意的几点:

    1.在我们的mybaitis-config.xml 中的配顺序不能错,

    2.使用mapper映射时候的注意事项 包路径

    3.Mapper.xml使用的ResultType注意事项 扫描包路径时类名重名

要在Spring Boot项目中使用MyBatis-Plus,需要先添加相应的依赖。可以在项目的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 添加依赖后,在application.properties或application.yml文件中配置数据库连接信息。 然后,在项目中创建MyBatis-Plus的mapper接口和xml文件。mapper接口需要继承BaseMapper接口,xml文件中按照MyBatis的语法编写SQL语句。 接下来,需要在启动类中添加MyBatis-Plus的配置。可以使用MybatisPlusAutoConfiguration类来自动配置MyBatis-Plus,也可以手动配置。以下是手动配置的示例: ```java @Configuration @MapperScan("com.example.demo.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ``` 以上代码中,我们配置了分页插件PaginationInterceptor。同时,使用@MapperScan注解指定mapper接口所在的包路径。 最后,在xml文件中使用mapper标签来映射mapper接口。例如: ```xml <mapper namespace="com.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </resultMap> <select id="getUserById" resultMap="BaseResultMap"> select id,name,age from user where id=#{id} </select> <insert id="insertUser" parameterType="com.example.demo.entity.User"> insert into user(name,age) values(#{name},#{age}) </insert> <update id="updateUserById" parameterType="com.example.demo.entity.User"> update user set name=#{name},age=#{age} where id=#{id} </update> <delete id="deleteUserById" parameterType="int"> delete from user where id=#{id} </delete> </mapper> ``` 以上是MyBatis-Plus的基本配置和使用方法。如果需要更详细的配置和使用说明,可以参考MyBatis-Plus的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值