官方推荐的是对于mybatis中的开发一般建议的是使用xml的开发,注解也是可以,毕竟使用xml的一般都可以用注解,但是mybatis的注解开发只能是一些简单的sql,面对一些较为复杂的sql语句时就有些力不从心。
比如我们在进行匹配数据库column名和类的属性名的时候,使用的xml中的resultMap注解中是不可能的。
但是一些简单的还是可以的。
<?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>
<properties resource="db.properties"/>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- <setting name="logImpl" value="LOG4J"/>-->
</settings>
<typeAliases>
<package name="com.li.pojo"/>
<!-- <typeAlias type="com.li.pojo.User" alias="user"/>-->
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></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>
</environments>
<mappers>
<mapper class="com.li.dao.UserMapper"/>
</mappers>
</configuration>
注意一下使用xml在进行注册时用的类注册
public interface UserMapper {
@Select("select * from user")
List<User> getAllUsers();
}
上面的这个Select就是注解的实现查询所有人的操作,其他的以此类推。
顺便有一点可以补充的,就是在进行增删改的时候我们需要进行进行事务的提交,但是我们可以在工具类中开启sqlSession时这样做
return sqlSessionFactory.openSession(true);
他这是一个重载的方法,设置为true代表开启自动的事务提交。