主要有两个xml配置文件:sqlmapconfig.xml 、usermapper.xml
sqlmapconfig.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="druid.properties"></properties>
<environments default="enviroment">
<environment id="enviroment">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/wocnz/dao/mapper/usermapper.xml"/>
</mappers>
</configuration>
usermapper.xml
<?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">
<mapper namespace="com.wocnz.dao.mapper.usermapper">
<select id="getUserByID" resultType="com.wocnz.POJO.userdir" >
SELECT * from user_dir
</select>
<select id="selectUser" resultType="com.wocnz.POJO.user">
select * from user;
</select>
</mapper>
//测试代码
@Test
public void test() throws Exception{
InputStream in= Resources.getResourceAsStream("sqlmapconfig.xml");
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(in);
//传入参数true,设置为事务自动提交
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//全限定类名
//List<user> objects = sqlSession.selectList("com.wocnz.dao.mapper.usermapper.selectUser");
usermapper mapper = sqlSession.getMapper(usermapper.class);
List<user> users = mapper.selectUser();
System.out.println(users);
sqlSession.close();
}
使用sqlSession.selectList(“com.wocnz.dao.mapper.usermapper.selectUser”);需要传入全限定类名.id,id是mapper文件中的增删查改标签id
不传入全限定类名调用会报错
druid.properties
#mysql jdbc
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///space?serverTimezone=UTC
jdbc.username=root
jdbc.password=123456
mybatis 默认的事务管理不是自动进行提交的,以下代码需要传入true
sqlSessionFactory.openSession(true);