MyBatis简单示例入门

本文详细介绍MyBatis框架的入门使用,包括Maven依赖配置、核心配置文件解析、映射文件定义、实体对象创建及测试代码实现。通过具体实例展示如何进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入门实例请参考: http://www.mybatis.org/mybatis-3/zh/getting-started.html

1, Maven依赖:

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.6</version>
		</dependency>

其它用到的包:

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.18</version>
		</dependency>
		<dependency>
			<groupId>org.testng</groupId>
			<artifactId>testng</artifactId>
			<version>6.8.21</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.5</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.25</version>
		</dependency>

2, 核心配置文件:mybatis-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>
	<settings>
		<setting name="cacheEnabled" value="true" />
		<setting name="lazyLoadingEnabled" value="true" />
		<setting name="multipleResultSetsEnabled" value="true" />
		<setting name="useColumnLabel" value="true" />
		<setting name="useGeneratedKeys" value="false" />
		<setting name="autoMappingBehavior" value="PARTIAL" />
		<setting name="autoMappingUnknownColumnBehavior" value="WARNING" />
		<setting name="defaultExecutorType" value="SIMPLE" />
		<setting name="defaultStatementTimeout" value="25" />
		<setting name="defaultFetchSize" value="100" />
		<setting name="safeRowBoundsEnabled" value="false" />
		<setting name="mapUnderscoreToCamelCase" value="false" />
		<setting name="localCacheScope" value="SESSION" />
		<setting name="jdbcTypeForNull" value="OTHER" />
		<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString" />
	</settings>
	<typeAliases>
		<typeAlias alias="RdsConfigAlias" type="com.jvwl.rds.monitor.mybatis.RdsConfig" />
	</typeAliases>
	<environments default="uat">
		<environment id="prod">
			<transactionManager type="JDBC" /><!--JDBC|MANAGED -->
			<dataSource type="JNDI"><!--JNDI|POOLED|UNPOOLED -->
				<property name="initial_context" value="org.jboss.naming.remote.client.InitialContextFactory" />
				<property name="data_source" value="xxx/jdbc/DWDB" />
			</dataSource>
		</environment>
		<environment id="development">
			<transactionManager type="JDBC" /><!--JDBC|MANAGED -->
			<dataSource type="UNPOOLED"><!--JNDI|POOLED|UNPOOLED -->
				<property name="driver" value="" />
				<property name="url" value="" />
				<property name="username" value="" />
				<property name="password" value="" />
			</dataSource>
		</environment>
		<environment id="uat">
			<transactionManager type="JDBC" /><!--JDBC|MANAGED -->
			<dataSource type="POOLED"><!--JNDI|POOLED|UNPOOLED -->
				<property name="driver" value="" />
				<property name="url" value="" />
				<property name="username" value="" />
				<property name="password" value="" />
				<property name="poolMaximumActiveConnections" value="3" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="mybatis/RdsConfigMapper.xml" />
	</mappers>

</configuration>

3, mybatis/RdsConfigMapper.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="mybatis.RdsMapper">
	<select id="selectRdsConfig" resultType="RdsConfigAlias">
		select * from rds_config where sid = #{id}
	</select>
	<select id="selectRdsConfig2" resultMap="RdsConfig2Map">
		select * from rds_config where sid = #{id}
	</select>
	<resultMap type="com.jvwl.rds.monitor.mybatis.RdsConfig" id="RdsConfig2Map">
		<id column="sid" property="sid" />
		<result column="para_code" property="paraCode" />
		<result column="para_value" property="paraValue" />
	</resultMap>

	<insert id="insert" parameterType="RdsConfigAlias">
		<selectKey resultType="_long" keyProperty="sid" order="AFTER"> select @@IDENTITY as sid </selectKey>
		insert into rds_config (para_code,para_value,entry_id,entry_datetime) values (#{paraCode},#{paraValue},1,getdate())
	</insert>
</mapper>

4,实体对象RdsConfig:

package com.jvwl.rds.monitor.mybatis;

import lombok.Data;

/**
 * Created by jervalj on 2018-09-12
 */
@Data
public class RdsConfig {

    private Long sid;
    private String para_code;
    private String paraCode;
    private String paraValue;
}

5. 测试代码MybatisMain4Xml

package com.jvwl.rds.monitor.mybatis;

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;
import org.testng.annotations.Test;

import lombok.extern.slf4j.Slf4j;

/**
 * Created by jervalj on 2018-09-12
 */
@Slf4j
public class MybatisMain4Xml {

    @Test
    public void myTest1() throws Exception {
        submitDbTask(new SessionCallback() {

            @Override
            public void doCallback(SqlSession session) {
                RdsConfig item = (RdsConfig) session.selectOne("mybatis.RdsMapper.selectRdsConfig", 70);
                log.info(item.toString());
            }
        });
    }

    @Test
    public void myTest2() throws Exception {
        submitDbTask(new SessionCallback() {

            @Override
            public void doCallback(SqlSession session) {
                RdsConfig item = (RdsConfig) session.selectOne("mybatis.RdsMapper.selectRdsConfig2", 70);
                log.info(item.toString());
            }
        });
    }

    @Test
    public void myTest3() throws Exception {
        submitDbTask(new SessionCallback() {

            @Override
            public void doCallback(SqlSession session) {
                RdsConfig rdsConfig = new RdsConfig();
                rdsConfig.setParaCode("333");
                rdsConfig.setParaValue("555");
                int count = session.insert("mybatis.RdsMapper.insert", rdsConfig);
                session.commit();
                log.info("{count:{}}", count);
                log.info(rdsConfig.toString());
            }
        });
    }

    private void submitDbTask(SessionCallback sessionCallback) throws Exception {
        String resource = "mybatis/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sessionFactory.openSession();
        sessionCallback.doCallback(session);
        session.close();
    }
}

 

转载于:https://my.oschina.net/jerval/blog/2051451

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值