ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyBatis基础

2022-08-30 22:00:09  阅读:189  来源: 互联网

标签:xml name 基础 Mybatis user MyBatis applicationContenxt User


MyBatis是什么

这里就引用一下,Mybatis官方文档的定义,来简单说明一下Mybatis的整体作用:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

如何使用

普通Java项目使用Mybatis

这里就不再赘述了,官方文档里面有保姆级别的介绍,大家可以去参考,地址是:https://mybatis.net.cn/getting-started.html

Spring使用Mybatis

  1. 引入Maven配置
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.10</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.7</version>
    </dependency>
  1. 创建DB配置文件
db.driverClass=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
db.username=root
db.password=root
  1. applicationContenxt.xml中增加配置加载
<context:property-placeholder location="classpath:db.properties"/>
  1. applicationContenxt.xml中初始化数据源
    <bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${db.driverClass}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.username}"/>
        <property name="password" value="${db.password}"/>
    </bean>
  1. applicationContenxt.xml中创建sqlSessionFactory,并指定mapper xml位置
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="datasource"/>
        <property name="mapperLocations" value="classpath*:com/vinson/learn/dao/**/*.xml"/>
    </bean>

applicationContenxt.xml中指定mapper位置

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.vinson.learn.dao"/>
    </bean>

其中,Mapper和其对应的代码如下:

package com.vinson.learn.dao;

import com.vinson.learn.bean.User;
import org.apache.ibatis.annotations.Param;

public interface UserDao {

//    @Select("select * from user where name = #{name}")
    User getByName(@Param("name") String name);


    void addUser(User user);

}

<?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="com.vinson.learn.dao.UserDao">
    <insert id="addUser">
        insert into user(name,age) values (#{name}, #{age})
    </insert>
    <select id="getByName" resultType="com.vinson.learn.bean.User">
        select * from user where name = #{name}
    </select>

</mapper>
  1. 目录结构如下:

  2. 如果需要开启注解事务的可以,参照如下方式,applicationContenxt.xml中增加:

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <constructor-arg ref="datasource" />
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>
  1. 代码中的使用方式是:
 @Autowired
    private UserDao userDao;

    @Transactional(rollbackFor = Exception.class)
    @Override
    public User getUserByName() {
        User user = userDao.getByName("mike");
        //....省略.....

SpringBoot使用Mybatis

常用的标签

标签:xml,name,基础,Mybatis,user,MyBatis,applicationContenxt,User
来源: https://www.cnblogs.com/vinson-zhang/p/16635614.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有