Springboot整合mybatis
来源:互联网 发布:网络问卷有什么问题 编辑:程序博客网 时间:2024/06/16 00:27
开始学习springboot,找到大神的文章不错,记录下学习过程以备以后忘了啥的。
主要是向 纯洁的微笑 本文出处:http://www.ityouknow.com/
1.注解方式整合
项目结构:
pom文件引入相关jar包
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>
application.properties文件中添加数据库相关配置:
mybatis.type-aliases-package=com.zzm.test.domain.entityspring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql:*****spring.datasource.username = rootspring.datasource.password = *****
实体类UserEntity
public class UserEntity implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String id; private String userSex; private String nickName; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUserSex() { return userSex; } public void setUserSex(String userSex) { this.userSex = userSex; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public UserEntity() { super(); } public UserEntity(String userSex, String nickName) { super(); this.userSex = userSex; this.nickName = nickName; }}
重点是这个Mapper
public interface UserMapper { @Select("SELECT * FROM users") @Results({ @Result(property = "userSex",column = "user_sex"), @Result(property = "nickName",column = "nick_name") }) List<UserEntity> getAll(); @Select("SELECT * FROM users WHERE id = #{id}") @Results({ @Result(property = "userSex", column = "user_sex"), @Result(property = "nickName", column = "nick_name") }) UserEntity getOne(Long id); @Insert("INSERT INTO users(user_sex,nick_name) VALUES(#{userSex}, #{nickName})") void insert(UserEntity user); @Update("UPDATE users SET user_Sex=#{userSex},nick_name=#{nickName} WHERE id =#{id}") void update(UserEntity user); @Delete("DELETE FROM users WHERE id =#{id}") void delete(Long id);}
然后是spring的配置类
定义了下mapper扫描路径和启动。(在每个mapper类上加@MapperScan注解也可以)
@SpringBootApplication@MapperScan("com.zzm.test.domain.mapper")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
然后测试类测试
import org.junit.Assert;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import com.zzm.test.domain.entity.UserEntity;import com.zzm.test.domain.mapper.UserMapper;@RunWith(SpringRunner.class)@SpringBootTestpublic class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testInsert() throws Exception { userMapper.insert(new UserEntity("男", "李雷")); userMapper.insert(new UserEntity("女", "韩梅梅")); userMapper.insert(new UserEntity("男", "小明")); Assert.assertEquals(3, userMapper.getAll().size()); } @Test public void testQuery() throws Exception { List<UserEntity> users = userMapper.getAll(); System.out.println(users.toString()); } @Test public void testUpdate() throws Exception { UserEntity user = userMapper.getOne(2L); System.out.println(user.toString()); user.setNickName("neo"); userMapper.update(user); Assert.assertTrue(("neo".equals(userMapper.getOne(2l).getNickName()))); }}
一切ok 库中也有了数据。
2简单XML文件整合
项目结构:
pom文件配置同注解方式
application.properties中新增
mybatis.config-locations=classpath:mybatis/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/*.xml
指定配置文件和mapper.xml文件位置
实体类UserEntity同上
UserMapper
public interface UserMapper { List<UserEntity> getAll(); UserEntity getOne(Long id); void insert(UserEntity user); void update(UserEntity user); void delete(Long id);}
Application配置类同上
mybatis-config
<?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> <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> </configuration></beans>
user-mapper
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.zzm.test.domain.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.zzm.test.domain.entity.UserEntity" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="user_sex" property="userSex" /> <result column="nick_name" property="nickName" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > id, user_sex, nick_name </sql> <select id="getAll" resultMap="BaseResultMap" > SELECT <include refid="Base_Column_List" /> FROM users </select> <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" > SELECT <include refid="Base_Column_List" /> FROM users WHERE id = #{id} </select> <insert id="insert" parameterType="com.zzm.test.domain.entity.UserEntity" > INSERT INTO users (user_sex,nick_name) VALUES (#{userSex}, #{nickName}) </insert> <update id="update" parameterType="com.zzm.test.domain.entity.UserEntity" > UPDATE users SET <if test="userSex != null">user_Sex = #{userSex},</if> nick_name = #{nickName} WHERE id = #{id} </update> <delete id="delete" parameterType="java.lang.Long" > DELETE FROM users WHERE id =#{id} </delete></mapper>
测试类UserMapperTest同上
清空下原来表(truncate users)中数据重新测试,一切ok
阅读全文
0 0
- SpringBoot学习:SpringBoot整合mybatis
- SpringBoot和Mybatis整合
- springboot 整合mybatis
- springboot+mybatis+dubbo整合
- SpringBoot整合MyBatis
- SpringBoot整合Mybatis
- springBoot整合mybatis
- springboot与mybatis整合
- springboot和mybatis整合
- Springboot整合Mysql+Mybatis
- springboot、mybatis、activemq整合
- SpringBoot整合MyBatis
- SpringBoot 整合mybatis
- SpringBoot + Mybatis 整合demo
- springboot整合mybatis
- SpringBoot-整合MyBatis
- Springboot 整合 Mybatis
- SpringBoot-09整合MyBatis
- Spring事务机制—声明式事务
- Tomcat 工作原理
- BZOJ 1694 & 1742 [Usaco 2005 nov] 区间DP 解题报告
- 关于自定义view 以及view中的动画实现
- Go 语言——数据类型
- Springboot整合mybatis
- logcat命令补充(补充之前博文logcat抓取(崩溃、超时、异常、错误) )
- iOS开发:兼容适配iPhone X
- Android数据存储——SharedPreferences的使用
- 第三章-数字图像处理学习笔记
- C语言文件读写
- 使用httpclient 进行网络线程管理时,出现
- linux下java环境变量配置
- 如何使用Flexbox和CSS Grid,实现高效布局