Spring Boot中引入mybatis

1、mybatis整合

生成数据库表对应的Dao、Model、Mapping文件;mybatis配置信息,包括扫描包、JDBC属性、数据源等。
1.1、 生成ORMapping文件
UserInfoMapper

package com.test.demo.mybatis.dao;

import com.test.demo.mybatis.entity.UserInfo;

public interface UserInfoMapper {
	UserInfo selectByUsername(String username);
}

UserInfo

package com.test.demo.mybatis.entity;

public class UserInfo {
	private Long id;
	private String username;
	private String name;
	private String password;
	private String salt;
	private String state;

	get...
	set...
}

UserInfoMapper.xml

<?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.test.demo.mybatis.dao.UserInfoMapper">
	<resultMap id="BaseResultMap" type="com.test.demo.mybatis.entity.UserInfo">
		<id column="ID" jdbcType="DECIMAL" property="id" />
		<result column="USERNAME" jdbcType="VARCHAR" property="username" />
		<result column="NAME" jdbcType="VARCHAR" property="name" />
		<result column="PASSWORD" jdbcType="VARCHAR" property="password" />
		<result column="SALT" jdbcType="VARCHAR" property="salt" />
		<result column="STATE" jdbcType="VARCHAR" property="state" />
	</resultMap>
	<sql id="Base_Column_List">
		ID, USERNAME, NAME, PASSWORD, SALT, STATE
	</sql>
	<select id="selectByPrimaryKey" parameterType="java.lang.Long"
		resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from ORCL.USER_INFO
		where ID = #{id,jdbcType=DECIMAL}
	</select>
	<select id="selectByUsername" parameterType="java.lang.String"
		resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from ORCL.USER_INFO
		where username = #{id,jdbcType=VARCHAR}
	</select>

</mapper>

1.2、 mybatis配置
pom.xml

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<!-- created by mvn install command -->
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc7</artifactId>
			<version>12.1.0</version>
		</dependency>

application.properties

mybatis.mapper-locations=classpath*:com/test/demo/mybatis/mapper/*.xml
# 控制台输出sql
logging.level.com.test.demo.mybatis.dao=debug

spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@10.xx.xx.37:1521:xe
spring.datasource.username=orcle1
spring.datasource.password=orcle1

DemoApplication

@SpringBootApplication
// 在启动类中添加对mapper包扫描@MapperScan
@MapperScan({"com.test.demo.mybatis.dao"})
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

新增mybatis-config.xml

<configuration>
	<typeAliases>
		<typeAlias alias="Integer" type="java.lang.Integer" />
		<typeAlias alias="Long" type="java.lang.Long" />
		<typeAlias alias="HashMap" type="java.util.HashMap" />
		<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
		<typeAlias alias="ArrayList" type="java.util.ArrayList" />
		<typeAlias alias="LinkedList" type="java.util.LinkedList" />
	</typeAliases>
</configurati

2、业务模拟

2.1、 controller
HelloController中增加方法。

	@Resource
	UserInfoService service;
	
	@RequestMapping("/getUserByName")
	public UserInfo getDmCxbb(UserInfo key) {
		return this.service.findByUsername(key.getUsername());
	}

2.2、 Service层
UserInfoService接口

package com.test.demo.mybatis.service;
import com.test.demo.mybatis.entity.UserInfo;
public interface UserInfoService {
	/** 通过username查找用户信息 */
	public UserInfo findByUsername(String username);
}

UserInfoServiceImpl实现类

@Service
public class UserInfoServiceImpl implements UserInfoService {
	@Resource
	UserInfoMapper userDao;

	@Override
	public UserInfo findByUsername(String username) {
		return userDao.selectByUsername(username);
	}
}

3、运行

启动DemoApplication后,在浏览器中访问如下地址:
http: //cos6743:8081/getUserByName?username=yangtom
返回json:
{“id”:802,“username”:“yangtom”,“name”:“10001”,“password”:“1111153885f51222d0b”,“salt”:null,“state”:null}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot Starter 是 Spring Boot 应用程序的预配置模块,可以帮助我们快速集成常用框架。MyBatis 是一个持久层框架,用于映射 Java 对象到数据库表。 如果要在 Spring Boot 应用程序使用 MyBatis,可以创建自定义的 Spring Boot Starter 来简化配置。 步骤如下: 1. 创建一个 maven 项目,并在 pom 文件添加依赖 spring-boot-starter、mybatis-spring-boot-starter。 2. 创建一个配置类,来配置 MyBatis。 3. 创建一个自动配置类,用于自动配置 MyBatis。 4. 创建一个 starter 类,用于向 Spring Boot 提供自动配置。 5. 在 pom 文件添加相关信息,用于发布到 maven 仓库。 6. 发布到 maven 仓库,并在其他项目使用。 如果你想要详细了解,可以参考官网上关于 Spring Boot Starter 的文档。 ### 回答2: 要自定义 Spring Boot Starter 操作 MyBatis 数据库,可以按照以下步骤进行操作: 1. 创建一个 Maven 项目,并指定父项目为 Spring Boot Starter Parent。 2. 在项目的 pom.xml 文件添加必要的依赖,包括 Spring Boot Starter、MyBatis 和相应的数据库驱动程序。 3. 创建一个自定义的配置类,用于配置 MyBatis 的数据源、事务管理器等。 4. 在配置类使用 @Configuration 注解标注该类为配置类,并使用 @EnableConfigurationProperties 注解引入配置属性。 5. 创建一个自定义的 Starter 类,用于自动配置 MyBatis 相关的组件。 6. 在 Starter 类使用 @Configuration 注解标注该类为配置类,并使用 @EnableAutoConfiguration 注解启用自动配置。 7. 在 Starter 类使用 @ConditionalOnClass 注解,指定条件,在类路径下存在 MyBatis 相关的类时才进行自动配置。 8. 在 Starter 类使用 @Import 注解,导入配置类,将自定义的配置应用到 Spring Boot 项目。 9. 编写自定义的配置文件,用于配置 MyBatis 的相关属性,例如数据库连接信息、Mapper 扫描路径等。 10. 在项目的 pom.xml 文件添加 spring.factories 文件,将自定义的 Starter 类注册到 Spring Boot 应用。 11. 在 Spring Boot 项目添加对自定义 Starter 的依赖,可通过 Maven 依赖坐标来引入。 12. 配置项目的 application.properties 或 application.yml 文件,指定数据库相关的信息以及其他自定义属性。 经过以上步骤的操作,就可以自定义 Spring Boot Starter 来操作 MyBatis 数据库了。可以通过引入自定义的 Starter 来简化项目的配置,并在应用直接使用 MyBatis 进行数据库操作,提高开发效率和代码的可维护性。 ### 回答3: 自定义Spring Boot Starter操作Mybatis数据库涉及以下步骤: 1. 创建一个新的Maven项目,并在pom.xml文件添加Spring BootMybatis依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> ``` 2. 创建一个自定义的starter模块,在其定义配置类和Mybatis相关配置: ```java @Configuration @AutoConfigureAfter(DataSourceAutoConfiguration.class) @EnableConfigurationProperties(MybatisProperties.class) public class MybatisAutoConfiguration { @Autowired private MybatisProperties properties; @Autowired(required = false) private List<Interceptor> interceptors; @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setDataSource(dataSource); factory.setConfiguration(properties.getConfiguration()); if (interceptors != null) { factory.setPlugins(interceptors.toArray(new Interceptor[0])); } return factory.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } } ``` 3. 创建自定义的配置类MybatisProperties,用于定义数据库的相关配置: ```java @ConfigurationProperties(prefix = "spring.mybatis") public class MybatisProperties { private Configuration configuration; // 其他配置... // Getter和Setter方法 } ``` 4. 在resources目录下创建配置文件application.yml,配置数据库相关信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: username password: password spring: mybatis: configuration: map-underscore-to-camel-case: true cache-enabled: true ``` 5. 在使用的项目添加自定义的starter依赖,并在application类上添加@EnableMybatis注解: ```java @SpringBootApplication @EnableMybatis public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 通过以上步骤,我们就可以自定义Spring Boot Starter来操作Mybatis数据库了。这样做的好处是,可以将Mybatis的配置和操作封装在starter,使得项目更加简洁,并且能够方便地重用该starter。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值