mybatis

框架

框架的概念

框架,就是软件的半成品,完成了软件开发过程中的通用操作,程序员只需很少或者不用进行加工就能够实现特定的功能,从而简化开发人员在软件开发中的步骤,提高开发效率。

常用的框架

MVC框架:简化了Servlet的开发步骤

  • Struts2
  • SpringMVC

·持久层框架:完成数据库操作的框架

  • apache DBUtils
  • Hibernateo(全自动)
  • Spring JPA
  • MyBatis.

胶水框架: Spring

SSM的全称Spring SpringMVC MyBatis
SSH的全称Spring Struts2 Hibernate

MyBatis基础

MyBatis简介

MyBatis是一个半自动的ORM框架

ORM(Object Relational Mapping)对象关系映射,将Java中的一个对象与数据表中一行记录一一对应。
ORM框架提供了实体类与数据表的映射关系,通过映射文件的配置,实现对象的持久化。

MyBatis的发展

MyBatis的前身是iBatis,iBatis是Apache软件基金会提供的一个开源项目。
2010年iBatis迁移到Google code,正式更名为MvBatis
2013年迁移到GitHub

MyBatis的特点

  • 支持自定义SQL、存储过程
  • 对原有的JDBC进行了封装,几乎消除了所有JDBC代码,让开发者只需关
  • SQL本身支持XML和注解配置方式自定完成QRM操作,实现结果映射

JDBC和MyBatis对比

JDBC

  • SQL夹杂在Java代码中耦合度高,导致硬编码内伤
  • 维护不易且实际开发需求中SQL有变化,频繁修改的情况多见
  • 代码冗长,开发效率低

MyBatis

  • 轻量级,性能出色
  • SQL和Java编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据。
  • 开发效率稍逊于Hlbernate,但是完全能够接受

MyBatis的使用

核心配置文件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>
<!--配置链接数据库的环境-->
 	 <environments default="mysql">
  		<environment id="mysql">
 			<transactionManager type="JDBC"/>
 				<dataSource type="POOLED">
 					<property name="driver" value="com.mysql.jdbc.Driver"/>
 					<property name="url" value="jdbc:mysql://localhost:3306/chaper"/>
 					<property name="username" value="root"/>
 					<property name="password" value="123456"/>
 				</dataSource>
  		</environment>
 	 </environments>
 	 <!--引入映射文件-->
 	<mappers>
   		<mapper resource="com/qfedu/mapper/StudentMapper.xml"/>
 	</mappers>
</configuration>

配置文件

<?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接口的全类名-->
<mapper namespace="student">
	<select id="findStudentBySid" parameterType="Integer"
		resultType="com.qfedu.pojo.Student">
		select * from Student where sid = ${sid}
	</select>
	<select id="findStudentBySname" parameterType="String"
		resultType="com.qfedu.pojo.Student">
		select * from student where sname like '%${zhangsan}%'
	</select>
	<insert id="addStudent" parameterType="com.qfedu.pojo.Student">
		insert into student(sid,sname,age,course)values(#{sid},#{sname},#{age},#{course})
	</insert>
	<update id="updateStudent" parameterType="com.qfedu.pojo.Student">
		update student set sname=#{sname},course = #{course} where sid = #{sid}
	</update>
	<delete id="deleteStudent" parameterType="Integer">
		delete from  student where sid=#{sid}
	</delete>
</mapper>

Mapper接口

public interface StudentDao {
// insertStudent和sql语句的id相对于
    public int insertStudent(Student student);
}

测试文件

public class TestAdd {
	public static void main(String[] args) {
			// 加载核心配置文件
			InputStream in = Resources.getResourceAsStream( "mybatis-config.xml");
			//获取SqlSessionFactory
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
			//获取SqlSession 对象,SqlSession 是java程序和数据库的对话
			//参数为true自动提交事务,下方不需要sqlSession.commit();
			SqlSession sqlSession = factory.openSession(true);
			//获取Mapper接口的对象
			Student student = new Student();
		    student.setSid(19);
			student.setSname("guoxiaoliang");
			student.setAge("23");
			student.setCourse("C++");
			int result = sqlSession.insert("student.addStudent", student);
			if (result > 0) {
				System.out.println("�ɹ�����" + result + "������");
			} else {
				System.out.println("�������ʧ��");
			}
			sqlSession.commit();
			sqlSession.close();
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值