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();
}
}