MyBatis注解配置

1,核心配置文件:

<?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>
	<environments default="development">
		<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="10" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!--<mapper class="com.jvwl.rds.monitor.mybatis.RdsConfigMapper" /> -->
		<package name="com.jvwl.rds.monitor.mybatis" />
	</mappers>
</configuration>

2, 配置Mapper:

package com.jvwl.rds.monitor.mybatis;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectKey;

/**
 * Created by jervalj on 2018-09-12
 */
@Mapper
public interface RdsConfigDao {

    @Select("SELECT * FROM rds_config WHERE sid = #{id}")
    @Results(id = "RdsConfig2Map",
            value = {@Result(column = "para_value", property = "paraValue"),@Result(column = "para_code", property = "paraCode")})
    RdsConfig2 selectRdsConfig(int id);

    @Select("SELECT * FROM rds_config WHERE para_code = #{paraCode2}")
    @ResultMap("RdsConfig2Map")
    RdsConfig2 selectRdsConfigByCode(String paraCode);
    // RdsConfig2 selectRdsConfigByCode(@Param("paraCode") String paraCode);

    @SelectKey(before = false, keyProperty = "sid", resultType = Long.class, statement = {"select @@IDENTITY as sid"})
    @Insert("insert into rds_config (para_code,para_value,entry_id,entry_datetime) values (#{paraCode},#{paraValue},1,getdate())")
    int saveRdsConfig(RdsConfig2 rdsConfig2);
}

3,实体对象RdsConfig2

package com.jvwl.rds.monitor.mybatis;

import org.apache.ibatis.type.Alias;

import lombok.Data;

/**
 * Created by jervalj on 2018-09-12
 */
@Data
@Alias("RdsConfig2")
public class RdsConfig2 {

    private Long sid;
    private String paraCode;
    private String paraValue;
    private String aaaaa = "RdsConfig2";
}

4,测试代码MybatisMain4Annotation

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 MybatisMain4Annotation {

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

            @Override
            public void doCallback(SqlSession session) {
                RdsConfigDao mapper = session.getMapper(RdsConfigDao.class);
                RdsConfig2 item = mapper.selectRdsConfig(70);
                log.info(item.toString());
            }
        });
    }

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

            @Override
            public void doCallback(SqlSession session) {
                RdsConfigDao mapper = session.getMapper(RdsConfigDao.class);
                RdsConfig2 rdsConfig2 = new RdsConfig2();
                rdsConfig2.setParaCode("testKey");
                rdsConfig2.setParaValue("test12312");
                int count = mapper.saveRdsConfig(rdsConfig2);
                log.info("{count:{}}", count);
                log.info(rdsConfig2.toString());
            }
        });
    }

    private void submitDbTask(SessionCallback sessionCallback) throws Exception {
        String resource = "mybatis/mybatis-config2.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/2051458

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值