mybatis配置与使用

一.概念

MyBatis是一款优秀的持久层框架,他支持定制化SQL,存储过程以及高级映射。MyBatis可以使用简单的XML或注解来配置和映射原生类型,接口和java的POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

二.配置与简单调用语法

在自己项目中你需要加入建立一个属于自己配置文件的文件夹(config)来专门存放这些配置文件,方便在以后需要的时候调用。如下图
在这里插入图片描述
在config目录下所需要的SqlMap文件夹中存放的便是你对SQL语句的处理与存放,其余三个文件直接放置即可,其中SqlMapConfig.xml中需要放入数据库的配置信息,加载映射文件(Mapper),延迟加载配置,缓存的开启。

二.两种方式调用Mapper映射文件,并最简实现sql方式

(一)原始方式:进行实现类中方法的调用来实现Mapper映射文件中sql语句的实现,如下图:
<mapper namespace="test">

	<!-- 在 映射文件中配置很多sql语句 -->
	<!-- 需求:通过id查询用户表的记录 -->
	<!-- 通过 select执行数据库查询
	id:标识 映射文件中的 sql
	将sql语句封装到mappedStatement对象中,所以将id称为statement的id
	parameterType:指定输入 参数的类型,这里指定int型 
	#{}表示一个占位符号
	#{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称
	
	resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。
	 -->
	<select id="findUserById" parameterType="int" resultType="ssm.po.User">
		SELECT * FROM sport WHERE id=#{id}
	</select>
	
	
</mapper>


public User findUserById(int id) throws Exception {
		//继承SqlSessionDaoSupport,通过this.getSqlSession()得到sqlSessoin
		SqlSession sqlSession = this.getSqlSession();

		User user = sqlSession.selectOne("test.findUserById", id);

		return user;

	}
	
(二)接口方式:进行mapper文件的方式对sql方法的调用与查询,但这种方式需要保证Mapper文件中的id与接口所创建的方法名保持一致,如下图:
public interface UserMapper {
	
	
	//根据id查询用户信息
	public User findUserById(int id) throws Exception;
	
		

}

<mapper namespace="ssm.mapper.UserMapper">



	<select id="findUserById" parameterType="int" resultType="user">
		SELECT * FROM sport WHERE id=#{value}
	</select>
	
	
	
</mapper>


以上两种方式可以对方法中有关sql语句的东西进行执行。

三.映射方式的分类

分类方式主要有一对一映射,一对多映射,多对多映射

在配置方面上:

<select id="findUserById" parameterType="int" resultType="ssm.po.User">
		SELECT * FROM sport WHERE id=#{id}
	</select>
	

其中resultType主要啊针对单表一对一查询,reusultMap主要针对多表或级联查询,但两种方式所填入的都是映射目标的全限定名,区别在于里面的属性所映射的事物有所不同

四.orm逆向工程

逆向工程的出现大大增加了人工编写代码的效率,减少了不必要浪费的时间,在你所设计的数据库的基础上直接运行逆向工程的程序便可得出模板程序,直接应用在自己的项目中即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值