做笔记
前提:安装好eclipse、jdk、tomcat、
新建java web 项目
运行成功的前提:数据库有flower表并有相关字段和数据
导入jar包
jar包及mybatis相关文档获取:
链接:https://pan.baidu.com/s/100EVv4WKdELIzlrg_LhIRg
提取码:ix04
在src下新建全局配置文件(编写jdbc四个变量)
2.1在src下新建xml文件(名字随便取)
2.2在全局配置文件中引入DTD或schema(帮助文档中有)
全局配置文件内容:
<?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">
<!-- 使用原生是事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/><!-- mysql版本5.x.x的不一样我的是8.x的 -->
<property name="url" value="jdbc:mysql://localhost:3306/ssm?serverTimezone=GMT%2B8"/><!-- mysql版本5.x.x的不一样我的是8.x的 -->
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
<!--
还可以配置其它可能用到的数据库比如:orcal mongodb等
<environment id="orcal"></environment>
<environment id="mongodb"></environment>
-->
</environments>
<!-- 加载mapper.xml文件 -->
<mappers>
<mapper resource="top/klxy/mapper/FlowerMapper.xml" />
</mappers>
</configuration>
新建以mapper结尾的包,在包下新建:实体类名+Mapper.xml
实体类如下:
package top.klxy.pojo;
public class Flower {
private int id;
private String name;
private double price;
private String production;
public Flower(int id, String name, double price, String production) {
super();
this.id = id;
this.name = name;
this.price = price;
this.production = production;
}
public Flower() {
super();
}
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;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getProduction() {
return production;
}
public void setProduction(String production) {
this.production = production;
}
@Override
public String toString() {
return "Flower [id=" + id + ", name=" + name + ", price=" + price + ", production=" + production + "]";
}
}
xml文件内容如下:
该文件作用:编写需要执行的sql语句(增删查改)。也是mybatis的核心学习内容
<?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:理解成实现类的全路径(包名+类名) -->
<mapper namespace="a.b">
<!-- id方法名
parametype定义参数类型
resultType返回值类型
如果方法的返回值是list,在resultType中写List的泛型
因为mybatis对jdbc封装,一行一行的读取数据的
-->
<select id="selAll" resultType="top.klxy.pojo.Flower">
select * from flower
</select>
<!--
<insert id=""></insert>
<delete id=""></delete>
<update id=""></update> -->
</mapper>
测试结果(只有在单独使用mybatis时使用,最后ssm整合时候下面代码都不需要编写 )
代码如下:
package top.klxy.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 top.klxy.pojo.Flower;
public class Test {
public static void main(String[] args) throws IOException {
// 使用类加载器加载mybatis配置文件(它也加载关联的映射文件)
InputStream is = Resources.getResourceAsStream("mybatis.xml");
// 使用工厂设计模式 构建SqlSession的工厂
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);
}
session.close();
}
}
运行结果如下:
完毕!!