一. Mybits简单使用

  1. Mybits简单介绍
    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
  2. Mybits安装
    Mybits只用将对应的jar包导入项目,就可直接使用其中的类来管理数据库访问层次的代码。使用maven项目的话,将其服务添加到pom.xml中。
  3. 使用规则
  • 首先需要创建有关mybits的配置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">
<!-- XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration>
	<!-- <properties resource="jdbc.properties" /> -->
	<!-- 指定 MyBatis 所用日志的具体实现 -->
	<!-- <settings> <setting name="logImpl" value="LOG4J"/> </settings> -->
	<environments default="mysql">
		<!-- 环境配置,即连接的数据库。 -->
		<environment id="mysql">
			<!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->
			<transactionManager type="JDBC" />
			<!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 -->
			<dataSource type="POOLED">
				 <!--<property name="driver" value="${driver}"/> <property name="url" 
					value="${url}"/> <property name="username" value="${username}"/> <property 
					name="password" value="${password}"/> -->
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://127.0.0.1:3306/DB_POS" />
				<property name="username" value="×××" />
				<property name="password" value="×××" />
			</dataSource>
		</environment>
	</environments>
	<!-- mappers告诉了MyBatis去哪里找持久化类的映射文件 -->
	<mappers>
		<mapper resource="mapper.xml" />
	</mappers>
</configuration>

使用mybits的持久化操作类之前,都需要加载配置文件,因此,需要首先创建,当然。对于其中的有关配置还有好多,上面代码只是最基本的配置。

  • 建立映射文件
    上面的配置文件中可以看到属性,中间需要添加对应的映射文件具体位置。简单的代码如下:
<?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">
<mapper namespace="mapper">
  <insert id="save" parameterType="com.example.POS.AdminInfo" useGeneratedKeys="true">
    insert into AdminInfo(Aid,Aname,Apwd,Alevel) values(#{aid},#{aname},#{apwd},#{alevel})
  </insert>
  
  <select id="select" parameterType="String" resultType="map">
    select * from AdminInfo where Aname= #{aname}
  </select>
  
  <update id="update" parameterType="com.example.POS.AdminInfo">
      update AdminInfo set Aname=#{aname},Apwd=#{apwd},Alevel=#{alevel} where Aid=#{aid} 
  </update>
  
  <delete id="delete" parameterType="String">
     delete from AdminInfo where Aid=#{aid}
  </delete>
</mapper>

首先介绍一下该类映射文件中需要填入哪种内容。答案显而易见,填入的是sql语句,对于不同的sql语句使用不同的元素进行书写。不同的元素中又有不同的属性,以保证查询返回结果和检索条件的格式以及内容无误。
id是为改次的操作定义名字
useGeneratedKeys 用与(insert和update使用) 对于自动递增的列,可以设置为true,使用数据库自动生成
parameterType 用于表示传递数据或者索引条件的格式,可以是自定义类或者其他数据类型。类需要写出完全路径,否则无法识别

resultType 用于定义返回数据的类型,mybits可以直接将查询到的数据转化为相应的类或者是列表。

这三种是代码上用到的数据类型,这里只是使用这些元素简单实现了insert, update, delete , select。

  • 上面的xml文件穿件完毕之后,接下来就是类中的具体秩序化操作
    首先介绍一下mybits所需的持久化操作类 SqlSession 以及 SqlSessionFactory。

SqlSessionFactory
每一个Mybits应用程序都以一个SqlSessionFactory对象为核心,一旦被创建,应该在执行程序期间都存在。
常用方法 SqlSession openSession()

SqlSession
持久化操作对象,是应用程序和持久存储层之间执行交互操作的一个单线程对象。包含以数据库为背景的所有执行sql操作方法,底层封装了JDBC链接,可以直接执行已经映射的SQL语句。每一个线程都应该有自己的sqlsession实例,并且不被共享。
该实例的引用不可放在一个雷的静态字段和实例字段中,或者是放在任何类型的管理范围。sqlSession使用之后,需要尽快关闭。

简单使用,代码如下:

SqlSession session = null;
		try (InputStream is = Resources.getResourceAsStream("mybatis.xml");){
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
			session = sqlSessionFactory.openSession();
			AdminInfo adminInfo = new AdminInfo("16", "asda", "asda", "asda");
			session.insert("mapper.save", adminInfo);
			session.commit();
			List list = session.selectList("mapper.select","asda");
			list.forEach(row ->System.out.println(row));
			session.delete("mapper.delete","11");
			session.commit();
			
	     }catch(Exception e){
	    //	 session.rollback();
	    	 e.printStackTrace();
	     }finally {
	    	 try {
			if(session!=null) session.close();
			}catch(Exception e) {
				e.printStackTrace();
			}
		}

SqlSession的使用需要首先创建inputStream类,将配置文件写入,只有使用SqlSessionFactory来开启SqlSession。
然后就是直接调用session中的方法,将映射文档中的元素调用,传入检索条件,或者是接收返回的数据。对于需要更新数据库的操作(insert,update,delecte)需要调用commit()方法。

注意:使用过后的session,需要尽快关闭。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值