SpringMyBatis解析1-使用示例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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的管理,更不需要我们去操作简单的事务。

 

目录
相关文章
|
8月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
459 0
|
5月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1025 1
Spring boot 使用mybatis generator 自动生成代码插件
|
5月前
|
Java 数据库连接 API
Java 对象模型现代化实践 基于 Spring Boot 与 MyBatis Plus 的实现方案深度解析
本文介绍了基于Spring Boot与MyBatis-Plus的Java对象模型现代化实践方案。采用Spring Boot 3.1.2作为基础框架,结合MyBatis-Plus 3.5.3.1进行数据访问层实现,使用Lombok简化PO对象,MapStruct处理对象转换。文章详细讲解了数据库设计、PO对象实现、DAO层构建、业务逻辑封装以及DTO/VO转换等核心环节,提供了一个完整的现代化Java对象模型实现案例。通过分层设计和对象转换,实现了业务逻辑与数据访问的解耦,提高了代码的可维护性和扩展性。
230 1
|
4月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
157 0
|
5月前
|
SQL Java 数据库
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
238 1
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
843 29
|
10月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
555 29
|
10月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
9月前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
8月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
705 0

热门文章

最新文章

推荐镜像

更多
  • DNS