Mybatis 的主要开发过程

Mybatis 的主要开发过程

1、编写SqlMapConfig.xml
  • 配置文件例子:

    <!DOCTYPE configuration
    
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
    <configuration>
    
    	<!-- 和spring整合后 environments配置将废除-->
    
    	<environments default="development">
    
    		<environment id="development">
    
    		<!-- 使用jdbc事务管理-->
    
    			<transactionManager type="JDBC" />
    
    		<!-- 数据库连接池-->
    
    			<dataSource type="POOLED">
    
    				<property name="driver" value="com.mysql.jdbc.Driver" />
    
    				<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
    
    				<property name="username" value="root" />
    
    				<property name="password" value="mysql" />
    
    			</dataSource>
    
    		</environment>
    
    	</environments>
    
    <!-- 加载mapper.xml -->
    
    <mappers>
    
    	<mapper resource="sqlmap/User.xml" />
    
    </mappers>
    
    </configuration>
    
2、编写mapper.xml,其中定义了statement。建议命名规则,表名+mapper.xml。
  • 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,所以在mapper.xml以statement为单位管理sql语句。

  • 
    
    <?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命名空间,为了对sql语句进行隔离,方便管理 ,mapper开发dao方式,使用namespace有特殊作用 -->
    <mapper namespace="test">
    
    	<!-- 根据id查询用户信息 -->
    	<!-- 
    		id:唯一标识 一个statement。
    		#{}:表示 一个占位符,如果#{}中传入简单类型的参数,#{}中的名称随意。
    		parameterType:输入 参数的类型,通过#{}接收parameterType输入 的参数。
    		resultType:输出结果 类型,不管返回结果是多条还是单条,指定单条记录映射的pojo类型。
    	 -->
    	<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
    		SELECT * FROM USER WHERE id= #{id}
    	</select>
    	
    	<!-- 添加用户
    	parameterType:输入参数的类型,User对象 包括 username,birthday,sex,address
    	#{}接收pojo数据,可以使用OGNL解析出pojo的属性值
    	#{username}表示从parameterType中获取pojo的属性值
    	selectKey标签:用于进行主键返回,定义了获取主键值的sql
    	order:设置selectKey中sql执行的顺序,相对于insert标签中语句来说
    	keyProperty:将主键值设置到哪个属性
    	resultType:select LAST_INSERT_ID()的结果类型
    	 -->
    	<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
    		<selectKey keyProperty="id" order="AFTER" resultType="int">
    			select LAST_INSERT_ID()
    		</selectKey>
    		
    		INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address})
    	</insert>
    </mapper>
    
    • 其中使用的占位符:

      1、#{}:如果#{}中传入简单类型的参数,#{}中的名称随意,mybatis自动将接收的参数内容,进行java类型和jdbc类型的转换。程序员不需要考虑参数的类型,比如:如需要传入字符串,mybatis会最终自动拼接,就是参数两边加双引号。

      2、${}:表示sql的拼接,将参数的内容不加修饰拼接在sql语句上,比如模糊查询的时候,‘ %小明% ’,如果使用的是#{},结果拼接后的sql结果将会是’ % ’ 小 明 ’ % ';

3、编程通过配置文件创建出SqlSessionFactory。
  • String resource="SqlMapCofig.xml";
    //加载配置文件到输入流中
    InputStream inputStream=Resource.getResourceAsStream(resource);
    //创建会话工厂
    SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    
4、通过SqlSessionFactory创建出SqlSession
5、通过SqlSession操作数据库。

---->如果是添加,更新,删除等sql操作,则还需要SqlSession.commit()。

6、SqlSession使用完成之后需要关闭,SqlSession.close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值