环境搭建
全局配置文件
<?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>
<!-- default 引用environment 的id,当前所使用的环境-->
<environments default="default">
<!-- 声明可以使用的环境-->
<environment id="default">
<!-- 使用原生JDBC 事务-->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
<property name="username" value="root"/>
<property name="password" value="smallming"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>
</mappers>
</configuration>
type 属性可取值
JDBC,事务管理使用JDBC 原生事务管理方式
MANAGED 把事务管理转交给其他容器
type 属性
POOLED 使用数据库连接池
UNPOOLED 不使用数据库连接池
JNDI java 命名目录接口技术.
mapper包
- 包名以mapper 结尾
- 文件名:实体类名+Mapper.xml
- xml文件会生成对应类
- 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">
<!-- namesapce:生成类的全路径(包名+类名) -->
<mapper namespace="a.b" >
<!-- id:方法名
parameterType:定义参数类型
resultType:返回值类型.
如果方法返回值是list,在resultType 中写List 的泛型,
因为mybatis
对jdbc 封装,一行一行读取数据
-->
<select id="selAll"
resultType="com.bjsxt.pojo.Flower">
select * from flower
</select>
</mapper>
调用
1.代码
InputStream is =
Resources.getResourceAsStream("myabtis.xml");
//使用工厂设计模式
SqlSessionFactory factory = new
SqlSessionFactoryBuilder().build(is);
//生产SqlSession
SqlSession session=factory.openSession();
List<Flower> list =
session.selectList("a.b.selAll");
for (Flower flower : list) {
System.out.println(flower.toString());
}
session.close();
- 三种调用方式
selectList 返回值为list<>
selectOne 返回值为object
selectMap 返回值为map