根据项目需要设计相应实体类
本项目想利用管理员信息管理为例,实现Springboot、Sqlite、Jpa三者结合。所以本项目创建管理员类,以后会增加其他类练习!
import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration;
import javax.persistence.*;
@Entity
@Table(name = "admin")
public class Admin extends JpaRepositoriesAutoConfiguration {
@Id
@GeneratedValue
@Column(name = "id")
public Integer id;
public String name;
public String password;
public Admin() {
}
public Admin(Integer id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "admin{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
自定义Repository创建方法
本项目想要使用JPA,必须有Repository方法来集成。由于JPA抛弃了Sqlite数据库的相关方法,所以方法都需要自己设定。
import com.shop.sma.entity.Admin;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import javax.transaction.Transactional;
@Repository
@Transactional
public interface AdminRepository extends JpaRepository<Admin, Integer> {
@Query(value = "select * from admin where name=?1 and password=?2", nativeQuery = true)
public Admin findAdminByName(String name, String password);
@Query(value = "insert into admin(name,password) values(?1, ?2)", nativeQuery = true)
@Modifying
public int adminInsert(String name, String password);
@Query(value = "update admin set password=?1 where name=?2", nativeQuery = true)
@Modifying
public int adminUpdate(String password, String name);
@Query(value = "update admin set name=?1,password=?2 where id=?3", nativeQuery = true)
@Modifying
public int adminEditById(String name, String password, Integer id);
}
Controller层数据处理
本次小项目的Controller层负责Sqlite数据库与前端页面数据交互,并将数据段放入某个特定方法进行应有的处理。
import com.shop.sma.entity.Admin;
import com.shop.sma.mapper.AdminRepository;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject