mybatis映射器用法

mybatis的概念:

        MyBatis是一款ORM模型,支持定制化 SQL、存储过程以及高级映射。可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

        具有的特点:

                        半自动化:支持定制化 SQL、存储过程以及高级映射;

                        集成方便:不仅方便 Spring 等 JavaEE 框架的集成,

                                        还与其他 ORM 模型集成也很方便。

mybatis映射器概念:

        MyBatis框架包括两种类型的XML文件,一类是配置文件,即mybatis-config.xml,另外一类是映射文件,例如XXXMapper.xml等。在MyBatis的配置文件mybatis-config.xml包含了<mappers></mappers>节点,这里就是MyBatis映射器。

引入映射器的两种方式:

<mappers>
		<!--第一种文件路径  -->
		<!--<mapper resource="com/ape/mapper/TeacherMapper.xml "/>  -->
		<!--第二种类路径
			1.将 sqlmapper文件对应的这个接口文件放在同一个包下
			2.将 sqlmapper文件和对应的接口文件文件名改为一样的
			3.将 sqlmapper 文件中namespace属性的值改为接口的类路径
		 -->
		 <!-- <mapper class="com.ape.mapper.StudentMapper"/> -->
		 <!--第三种包路径 -->
		 <package name="com.ape.mapper"/>
</mappers>

mybatis映射器分为:

       

Mapper接口开发需要遵循以下规范:

                1. Mapper.xml文件中的namespace与mapper接口的类路径相同。

                2. Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
                3. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
                4. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

        接口+xml映射器:               

xml文件中namespace为接口地址 id为接口的方法名
xml文件:
<mapper namespace="com.ape.mapper.StudentMapper">
	<insert id="add" parameterType="Student"  keyProperty="sid" useGeneratedKeys="true">
		insert into student(sname,birthday,ssex,classid,sid) 
		values(#{sname},#{birthday},#{ssex},#{classid},#{sid})	
		</insert>
</mapper>



接口文件:
public interface StudentMapper {
	public int add(Student s); 
	//修改
}

              

       注解+接口映射器:

                

public interface StudentMapper {
    //注解 没有了xml文件 原先接口的方法名与xml文件中的id名相同,
    xml文件中namespace为接口地址,
    现在直接把接口名弄成id名保持在xml文件中的特性
    @Select("select *from student")
	public List<Student> selectStudent();
使用步骤:
1.导包:
去下载mybatis-3.5.2的jar和,数据库mysql-connector-java-8.0.15的jar。
2.编写配置文件:mybatis-config.xml和jdbc.properties(jdbc.properties是对mybatis-config.xml中的一些参数进行外界传参)
mybatis-config.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元素外部文件配置 value后跟¥{里面填写键}  -->
	<properties resource="jdbc.properties"></properties>
	
	
	<typeAliases>
	<!-- typeAliases起别名在com.ape.bean全部别名为类名(大小写无所谓) -->
	<!-- 给每个类起别名 <typeAlias type="com.ape.bean.Student" alias="aa"/> -->
	<package name="com.ape.bean"/>
	</typeAliases>


	<!-- 和spring整合后 environments配置将废除 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}" />
				<property name="url"
					value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!--文件路径  -->
		<!--<mapper resource="com/ape/mapper/TeacherMapper.xml "/>  -->
		<!-- 类路径
			1.将 sqlmapper文件对应的这个接口文件放在同一个包下
			2.将 sqlmapper文件和对应的接口文件文件名改为一样的
			3.将 sqlmapper 文件中namespace属性的值改为接口的类路径
		 -->
		 <!-- <mapper class="com.ape.mapper.StudentMapper"/> -->
		 <!-- 包路径 -->
		 <package name="com.ape.mapper"/>
	</mappers>
</configuration>

jdbc.properties:

jdbc.driver=com.mysql.cj.jdbc.Driver    //驱动类
jdbc.url=jdbc:mysql://localhost:3306/myschool2?serverTimezone=GMT
服务器地址:端口/数据库名?参数名=参数值
jdbc.username=root //数据库账号
jdbc.password=123456    //密码

3.创建表的实体类

对应的字段名和类型 对应类中的数据类型名和数据类型

提供set()和get(),有参、无参构造方法以及toString()方法

4.创建mapper

用注解和xml文件都可以

5.编写测试类

public class lizhi{
    public static void main(String[] args) throws Exception{
        // 读取mybatis-config.xml文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

        // 初始化mybatis,创建SqlSessionFactory类的实例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 创建Session实例
        SqlSession session = sqlSessionFactory.openSession();
       
        //获得mapper接口的代理对象
        StudentMapper sm = session.getMapper(StudentMapper.class);
        // 直接调用接口的方法,查询id为1的Student数据
        Student s2 = sm.selectStudent(1);
        // 打印Peson对象
        System.out.println(s2);

        // 提交事务
        session.commit();
        // 关闭Session
        session.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值