SpringMyBatis解析1-使用示例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: MyBatis使用介绍 MyBatis的详细使用介绍  http://www.cnblogs.com/xrq730/category/796495.html 建立PO public class Person { private String id; private String name; //set get 方法、、、 } 建立Mappermapper是数据库操作的映射文件,也就是我们常说的dao文件。

MyBatis使用介绍

 

MyBatis的详细使用介绍  http://www.cnblogs.com/xrq730/category/796495.html

 

建立PO 

public class Person {  
    private String id;  
    private String name;  
//set get 方法、、、  
}  

建立Mapper

mapper是数据库操作的映射文件,也就是我们常说的dao文件。

public interface PersonDao {  
    public List<Person> query();  
    public void save(Person p);  
    public void delete(String id);  
}  

建立配置文件

配置文件主要用于程序中可变性高的设置,Mybatis的配置文件主要存在于configuration.xml中,当然configuration.xml中省略了其他mybatis的配置,例如settings里面的配置等等。

configuration:根元素。

properties:定义配置外在化。

settings:一些全局性的配置。

typeAliases:为一些类定义别名。

typeHandlers:定义类型处理,也就是定义Java类型与数据库中的数据类型之间的转换关系。

objectFactory:用于指定结果集对象的实例是如何创建的。

plugins:MyBatis的插件,插件可以修改MyBatis内部的运行规则。

environments:环境。

environment:配置MyBatis的环境。

transactionManager:事务管理器。

dataSource:数据源。

<?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="development">    
        <environment id="development">    
            <transactionManager type="JDBC" />    
            <dataSource type="POOLED">    
                   <property name="driver" value="com.mysql.jdbc.Driver" />  
                   <property name="url" value="jdbc:mysql://localhost:3306/test" />  
                   <property name="username" value="root" />  
                   <property name="password" value="root" />    
            </dataSource>    
        </environment>    
    </environments>    
    <!-- mapping 文件路径配置 -->    
    <mappers>    
        <mapper resource="resource/PersonMapper.xml" />    
    </mappers>    
</configuration>  

建立映射文件

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd" >  
<mapper namespace="net.itaem.dao.PersonDao" >  
 <resultMap id="resultMap" type="net.itaem.po.Person" >  
     <result column="id" property="id" jdbcType="CHAR" />  
    <result column="name" property="name" jdbcType="CHAR" />  
  </resultMap>  
  <!--添加-->   
  <insert id="save"  parameterType="net.itaem.po.Person">  
   insert into person(id,name) value(#{id,jdbcType=CHAR},#{name,jdbcType=CHAR})  
  </insert>  
  <!--查询-->  
  <select id="query"  resultMap="resultMap">  
   select * from person  
  </select>  
  <!--删除-->  
  <delete id="delete" parameterType="java.lang.String">  
   delete from person  where id=#{id,jdbcType=CHAR}  
  </delete>  
</mapper>  

建立测试类

public class Test {  
    public static void main(String[] args) throws Exception {  
        Reader reader=Resources.getResourceAsReader("resource/configuration.xml");  
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);  
        SqlSession session=sessionFactory.openSession();  
        PersonDao personDao=session.getMapper(PersonDao.class);  
        Person person=new Person("11","Fighter168");  
        personDao.save(person);  
        //这里一定要提交,不然数据无法插入  
        session.commit();  
        session.close();  
    }  
}  

Spring中使用MyBatis介绍

了解了MyBatis的独立使用过程后,我们再看看它与Spring整合的使用方式,比对之前的示例来找出Spring究竟为我们做了哪些操作来简化程序员的业务开发。由于在上面示例基础上作更改,所以,Person,PersonDao,映射文件保持不变。

创建Spring配置文件

里面主要配置的是数据源,sqlSessionFactory和Dao的信息。

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123abc"/> <!-- 连接池启动时候的初始连接数 --> <property name="initialSize" value="10"/> <!-- 最小空闲值 --> <property name="minIdle" value="5"/> <!-- 最大空闲值 --> <property name="maxIdle" value="20"/> <property name="maxWait" value="2000"/> <!-- 连接池最大值 --> <property name="maxActive" value="50"/> <property name="logAbandoned" value="true"/> <property name="removeAbandoned" value="true"/> <property name="removeAbandonedTimeout" value="180"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:/resource/cfg.xml"/> <property name="dataSource" ref="dataSource"/> </bean> <bean id="personDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="net.itaem.dao.PersonDao"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> </beans>

看到上面配置personDao,我们单独的使用一个Bean去创建它,也许我们会想到如果我们又几十甚至是几百个dao,那配置就可能很恐怖了,不过,Spring的作者也考虑到了这样的问题,针对这种情况,如果dao很多的情况,其实也是可以采取扫描dao的形式注入spring的。

创建MyBatis配置文件

mybatis的配置文件除了去掉environment标签,其他没啥区别。

<?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>    
    <!-- mapping 文件路径配置 -->    
    <mappers>    
        <mapper resource="resource/PersonMapper.xml" />    
    </mappers>    
</configuration>  

Spring使用MyBatis测试

public class SpringTest {  
    public static void main(String[] args) {  
        ApplicationContext context=new ClassPathXmlApplicationContext("resource/ApplicationContext.xml");  
        PersonDao personDao=(PersonDao) context.getBean("personDao");  
        Person person=new Person("12","Fighter168");  
        personDao.save(person);  
    }  
}  

在Spring中使用MyBatis是相当方便的,不需要我们去管理sqlSessionFactory以及SqlSession的管理,更不需要我们去操作简单的事务。

 

目录
相关文章
|
28天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
123 29
|
6天前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
1月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
1月前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
49 12
|
1月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
64 2
|
1月前
|
SQL JavaScript Java
Spring Boot 3 整合 Mybatis-Plus 实现数据权限控制
本文介绍了如何在Spring Boot 3中整合MyBatis-Plus实现数据权限控制,通过使用MyBatis-Plus提供的`DataPermissionInterceptor`插件,在不破坏原有代码结构的基础上实现了细粒度的数据访问控制。文中详细描述了自定义注解`DataScope`的使用方法、`DataPermissionHandler`的具体实现逻辑,以及根据用户的不同角色和部门动态添加SQL片段来限制查询结果。此外,还展示了基于Spring Boot 3和Vue 3构建的前后端分离快速开发框架的实际应用案例,包括项目的核心功能模块如用户管理、角色管理等,并提供Gitee上的开源仓库
289 11
|
2月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
100 4
|
2月前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
163 4
|
2月前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
184 3
|
3月前
|
Java 数据库连接 数据库
spring和Mybatis的逆向工程
通过本文的介绍,我们了解了如何使用Spring和MyBatis进行逆向工程,包括环境配置、MyBatis Generator配置、Spring和MyBatis整合以及业务逻辑的编写。逆向工程极大地提高了开发效率,减少了重复劳动,保证了代码的一致性和可维护性。希望这篇文章能帮助你在项目中高效地使用Spring和MyBatis。
120 1

推荐镜像

更多