0 本文demo下载地址
链接:https://pan.baidu.com/s/1qrOt6pg1LlirX4s3I44ATQ
提取码:a62x
1 下载地址
http://qunying2.jb51.net:81/201905/tools/mybatis_jb51.rar
2 引入MyBatis的jar包及依赖包
在粘贴到lib下builde Path即可。
内部包说明
3 在src下新建全局配置文件
配置文件即xml文件,主要用于存储连接数据库的四个变量(driver,url,user,password)。
配置文件名没有要求(比如MyBatis.xml),地址也是。
3.1 在全局配置文件中引入DTD或schema(不导就没有提示(直接按alt+/)):
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
3.1.1 如果按上面这样导了网络资源还是没有提示,就手动导入本地资源:window->preference->xml->xml catalog->add->浏览本地文件:mybatis-3-config.dtd
3.2 全局配置文件内容
千万注意!以下代码请直接复制使用,多一个空格都会报错,而且不告诉你错在哪儿,比如:第一个感叹号前后无空格。
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
完整配置示例:
<?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="POOOLED"> <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="xiaohei1120"/> </dataSource> </environment> </environments> <mappers> <mapper resource = "cn/xiaohei/mapper/FlowerMapper.xml"/> </mappers> </configuration>
3.2.1<transactionManager/>type属性的可取纸
- JDBC:事务管理使用JDBC原生事务管理方式
- MANAGED:把事务管理转交给其它容器
3.2.2 <dataSource> type属性
- POOLED 使用数据库连接池
- UNPOOLED 不适用数据库连接池
- JNDI :java命名目录接口
3.3 重要:Mapper示例
在原式mvc模式中,我们又dao包(接口)和daoImpl包。在MyBatis中,无需使用dao包和daoImpl包,而改用mapper包,包中写xml文件,相当于daoImpl中的实现类。
通过一定的机制,MyBatis解析这些xml文件作为与数据库操作的的接口。
举个例子:Flower为一个实例,要写它的怎删改查方法,只需要写在对象的实体名+Mapper.xml文件中即可,如下:
重要注意!以下部分代码请直接复制粘贴使用,多写一个空格都会报错,血的领悟。另:id不能重复,不能留空,不然也报错!
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
完整示例代码:
<?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:理解为daoImpl实现类的全路径(包名+类名) --> <mapper namespace="cn.xiaohei.mapper.FlowerMapper"> <!-- 查询:select标签 id:方法名 parameterType:定义参数类型 resultType:定义返回值类型(包名+类名) 如果返回值是list,在resultType中写List的泛型 --> <select id="selAll" resultType="cn.xiaohei.pojo.Flower"> select * from flower </select> <!-- 新增标签 --> <!-- 注意!Id不能重复,即使留空都算重复!!!!!!!!! --> <insert id="1"></insert> <!-- 删除 --> <delete id="2"></delete> <!-- 改 --> <update id="3"></update> </mapper>
4 测试配置是否成功的代码
package cn.xiaohei.test; 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 cn.xiaohei.pojo.Flower; public class Test { public static void main(String[] args) throws Exception { InputStream is = Resources.getResourceAsStream("MyBatis.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); //生产SQLSession SqlSession session = factory.openSession(); //调用方法:包名.类名.方法名(id) List<Flower> list = session.selectList("cn.xiaohei.mapper.FlowerMapper.selAll"); System.out.println(list); } }