标签:pre doc 服务器 close row 情况 ssis call sql
Mybatis扩展
Map
使用map可以定制化sql的操作
实体类方法
void createUserByMap(HashMap<String, Object> map);
配置文件
<insert id="createUserByMap" parameterType="map">
insert into mybatis.user (`id`, `name`) values (#{userId}, #{userName})
</insert>
测试类
@Test
public void createUserByMap() {
// 获取sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
// 获取mapper对象
UserDao mapper = sqlSession.getMapper(UserDao.class);
HashMap<String, Object> map = new HashMap<>();
map.put("userId", 10);
map.put("userName", "aaaaa");
mapper.createUserByMap(map);
sqlSession.commit();
sqlSession.close();
}
注意配置文件的字段必须和map的可以保持一致
配置解析
核心配置文件
mybatis-config.xml
environments
<environment id="development">
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
mybatis可以配置多套环境,但每个但每个 SqlSessionFactory 实例只能选择一种环境
确定使用的环境直接修改environments的default属性即可。
transactionManager:事务管理器
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
properties
我们可以通过properties属性来引用配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true
username=root
password=qwe123
在核心配置文件中引入
<!--引入外部配置文件-->
<properties resource="db.properties">
<property name="username" value="demo"/>
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 这里写上你的mapper文件的路径-->
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
在使用的时候需要制定配置文件的路径
还可以在properties标签里面自定义属性
配置文件的优先级要高于自定义的
类型别名(typeAliases)
类型别名可为 Java 类型设置一个缩写名字。
它仅用于 XML 配置,意在降低冗余的全限定类名书写。
使用typeAlias
使用package
每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。
注解的方式
package com.ivy.pojo;
import org.apache.ibatis.type.Alias;
@Alias("user")
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name=‘" + name + ‘\‘‘ +
‘}‘;
}
}
默认的别名:
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator
在实体类比较少的时候使用第一种方式
实体类较多的情况下使用第二种
标签:pre doc 服务器 close row 情况 ssis call sql
原文地址:https://www.cnblogs.com/ivy-blogs/p/13619432.html