(学习笔记,仅帮助自己理解记忆,部分内容可能错误)
项目列表:
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>
<!--读取数据库配置文件-->
<properties resource="database.properties"></properties>
<!--配置项-->
<settings>
<setting name="logImpl" value="log4j"/>
</settings>
<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 resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
UserMapper配置文件:
(负责sql语句处理)
<?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">
<!--namespace为自己或映射的interface-->
<mapper namespace="mapper.UserMapper">
<!--sql映射文件-->
<select id="selCount" resultType="int">
SELECT COUNT(1) FROM smbms_user;
</select>
<select id="selAll" resultType="pojo.Smbms_User">
SELECT * FROM smbms_user;
</select>
</mapper>
MyBatisTool类代码:
(获取sqlSession对象,清除sqlSession对象,将SqlSessionFactory变成单例)
package Tool;
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 java.io.IOException;
import java.io.InputStream;
/**
* 工具类
* 创建sqlSession对象
* @author Yisermorn
* @create 2021-01-11-12:02
*/
public class MyBatisTool {
private static SqlSessionFactory factory;
static {
InputStream is = null;
try {
is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void close(SqlSession ss){
if(ss != null) ss.close();
}
public static SqlSession getSqlSession(){
return factory.openSession();
}
}
升级以接口的形式对应 UserMapper.xml
主要为在UserMapper.xml中的namespase对应于此接口;
接口中方法与mapper内id一致,返回值类型一致;
<mapper namespace="mapper.UserMapper">
做好这些,Java底层会自己注入,后台东西不晓得,但此时已经可以用了;
返回类型 变量名 = sqlsession.getMapper(映射对应的接口.class).方法();