Springboot整合mybtis(注解与xml)、jpa、reids
1、整合mybatis
2、整合jpa
3、整合redis
1、springboot整合mybatis(注解与配置文件)
1、引入pom文件
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>
2、创建实体
package city.albert.entity; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 11:32 AM */ public class Article { private int id; private String title; private String content; @Override public String toString() { return "Article{" + "id=" + id + ", title='" + title + '\'' + ", content='" + content + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
3、编写mapper
package city.albert.mapper; import city.albert.entity.Article; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 11:34 AM */ @Mapper public interface ArticleMapper { Article queryById(Integer id); @Select("select * from t_article where id=#{xxx}") Article queryByAnnId(Integer id); }
4、编写xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTDMapper3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="city.albert.mapper.ArticleMapper"> <select id="queryById" resultType="city.albert.entity.Article"> SELECT * from t_article where id=#{xxx} </select> </mapper>
5、配置文件
#数据库配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springbootdata?serverTimezone=UTC&useSSL=false spring.datasource.username=root spring.datasource.password=root #mybtis配置 #开启驼峰 mybatis.configuration.map-underscore-to-camel-case=true #指定mapper的xml文件 mybatis.mapper-locations=classpath*:mapper/*.xml #指定实体别名 #mybatis.type-aliases-package=city.albert.entity
6、测试
@Autowired private ArticleMapper articleMapper; @Test public void mybatis(){ Article article = articleMapper.queryById(1); System.out.println(article); Article article1 = articleMapper.queryByAnnId(1); System.out.println(article1); }
2、springboot整合JPA
1、引入pom文件
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.1.6.RELEASE</version> </dependency>
2、编写实体类
package city.albert.entity; import javax.persistence.*; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 11:26 AM */ @Entity @Table(name = "t_comment") public class JpaComment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(name = "a_id") private int aId; private String author; private String content; @Override public String toString() { return "Comment{" + "id=" + id + ", aId=" + aId + ", author='" + author + '\'' + ", content='" + content + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getaId() { return aId; } public void setaId(int aId) { this.aId = aId; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
3、编写mapper
package city.albert.mapper; import city.albert.entity.JpaComment; import org.springframework.data.jpa.repository.JpaRepository; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 11:58 AM */ public interface JpaCommentMapper extends JpaRepository<JpaComment,Integer> { }
4、配置数据库连接,并测试
#数据库配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springbootdata?serverTimezone=UTC&useSSL=false spring.datasource.username=root spring.datasource.password=root
测试
@Autowired private JpaCommentMapper jpaCommentMapper; @Test public void jpa(){ List<JpaComment> all = jpaCommentMapper.findAll(); for (JpaComment jpaComment : all) { System.out.println(jpaComment); }
3、springboot整合reids
1、引入pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.5.RELEASE</version> </dependency>
2、创建实体对象
package city.albert.entity; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed; import javax.persistence.Id; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 12:36 PM * @RedisHash 指定在redis存储空间中的存储位置 */ @RedisHash(value = "person") public class Person { /** * @Id 指定主键 默认在redis中自动生成字符创的主键 */ @Id private String id; /** * @Indexed 指定在redis空间自动生成二级索引,如果没有设置二级索引通过该字段查询则为空 */ @Indexed private String name; @Indexed private Integer age; private Address address; @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
package city.albert.entity; import org.springframework.data.redis.core.index.Indexed; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 12:36 PM */ public class Address { @Indexed private String city; @Indexed private String country; public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } @Override public String toString() { return "Address{" + "city='" + city + '\'' + ", country='" + country + '\'' + '}'; } }
3、创建mapper
package city.albert.mapper; import city.albert.entity.Person; import org.springframework.data.repository.CrudRepository; /** * @author niunafei * @function * @email niunafei0315@163.com * @date 2020/6/30 12:43 PM */ public interface PersonRepository extends CrudRepository<Person, String> { /** * 更具springdata的命名规则进行查询 * @param name * @return */ Person findByAddress_City(String name); }
4、配置文件并测试
#Reids
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.password=
测试:
@Autowired private PersonRepository repository; @Test public void redis(){ Person person=new Person(); person.setName("张三"); person.setAge(12); Address address=new Address(); address.setCity("北京"); address.setCountry("中国"); person.setAddress(address); repository.save(person); Person byAddress_city = repository.findByAddress_City("北京"); System.out.println(byAddress_city); }