开始学习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.entity
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql:*****
spring.datasource.username = root
spring.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)
@SpringBootTest
public 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.xml
mybatis.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 mapper
PUBLIC "-//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
本文详细介绍使用SpringBoot整合MyBatis的过程,包括通过注解和XML两种方式配置数据库连接及实现基本的CRUD操作。
4284

被折叠的 条评论
为什么被折叠?



