05 MyBatis——环境搭建及demo

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);
	}
}

  

  

原文地址:https://www.cnblogs.com/Scorpicat/p/12404187.html