目录
1、配置数据源
在pom文件中加入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2、Jpa 配置
在application-dev.properties 或者类似文件中
#开发环境
#端口配置
server.port=8080
#数据库连接配置
spring.datasource.url=jdbc:mysql://localhost/spring_boot_demo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# JPA
spring.jpa.hibernate.ddl-auto= update
spring.jpa.show-sql=true
3、实体类
@Entity
public class RoncooUserLog {
@Id
@GeneratedValue
private Integer id;
@Column
private Date createTime;
@Column
private String userName;
@Column
private String userIp;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserIp() {
return userIp;
}
public void setUserIp(String userIp) {
this.userIp = userIp;
}
@Override
public String toString() {
return "RoncooUserLog [id=" + id + ", createTime=" + createTime + ", userName="
+ userName + ", userIp=" + userIp + "]";
}
}
4、定义接口(继承 JpaRepository)
public interface RoncooUserLogDao extends JpaRepository<RoncooUserLog, Integer> {
/**
* @param string
* @return
*/
@Query(value = "select u from RoncooUserLog u where u.userName=?1")
List<RoncooUserLog> findByUserName(String userName);
/**
* @param string
* @param string2
* @return
*/
List<RoncooUserLog> findByUserNameAndUserIp(String string, String string2);
/**
* @param exampl
* @param pageable
* @return
*/
Page<RoncooUserLog> findByUserName(String userName, Pageable pageable);
}
5、测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootDemo141ApplicationTests {
@Autowired
private RoncooUserLogDao roncooUserLogDao;
@Test
public void insert() {
RoncooUserLog entity = new RoncooUserLog();
entity.setUserName("无境");
entity.setUserIp("192.168.0.1");
entity.setCreateTime(new Date());
roncooUserLogDao.save(entity);
}
@Test
public void delete() {
roncooUserLogDao.delete(1);
}
@Test
public void update() {
RoncooUserLog entity = new RoncooUserLog();
entity.setId(2);
entity.setUserName("无境2");
entity.setUserIp("192.168.0.1");
entity.setCreateTime(new Date());
roncooUserLogDao.save(entity);
}
@Test
public void select() {
RoncooUserLog result = roncooUserLogDao.findOne(1);
System.out.println(result);
}
@Test
public void select2() {
List<RoncooUserLog> result = roncooUserLogDao.findByUserName("无境");
System.out.println(result);
}
@Test
public void select3() {
List<RoncooUserLog> result = roncooUserLogDao.findByUserNameAndUserIp("无境", "192.168.0.1");
System.out.println(result);
}
// 分页
@Test
public void queryForPage() {
Pageable pageable = new PageRequest(0, 20, new Sort(new Order(Direction.DESC, "id")));
Page<RoncooUserLog> result = roncooUserLogDao.findByUserName("无境", pageable);
System.out.println(result.getContent());
}
}
6、扩展进行自定义的查询
1. 使用内置的关键词查询
http://docs.spring.io/spring-data/jpa/docs/1.10.2.RELEASE/reference/html/
2. 使用自定义语句查询
各种语法,具体查看
http://docs.spring.io/spring-data/jpa/docs/1.10.2.RELEASE/reference/html/
这个优先级比上面的高
@Test
public void select2() {
List<RoncooUserLog> result = roncooUserLogDao.findByUserName("无境");
System.out.println(result);
}
@Test
public void select3() {
List<RoncooUserLog> result = roncooUserLogDao.findByUserNameAndUserIp("无境", "192.168.0.1");
System.out.println(result);
}
// 分页
@Test
public void queryForPage() {
Pageable pageable = new PageRequest(0, 20, new Sort(new Order(Direction.DESC, "id")));
Page<RoncooUserLog> result = roncooUserLogDao.findByUserName("无境", pageable);
System.out.println(result.getContent());
}