關于做網(wǎng)站的調(diào)查問卷外包公司
?導航:從零開始手寫mmo游戲從框架到爆炸(零)—— 導航-CSDN博客? ? ? ?
????????集成springboot-jpa,不用mybatis框架一個是方便對接不同的數(shù)據(jù)源。第二個目前規(guī)劃的游戲內(nèi)容可能對數(shù)據(jù)庫的依賴不是很大,jpa應該肯定能滿足要求了。我們先創(chuàng)建一個用戶表方便后續(xù)注冊和登錄的功能開發(fā)。
在eternity-server中引入依賴:
<!--jpa start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
創(chuàng)建實體:
package com.loveprogrammer.domain;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import javax.persistence.*;/*** @ClassName User* @Description TODO* @Author admin* @Date 2024/2/6 17:00* @Version 1.0*/
@Data
@AllArgsConstructor
@NoArgsConstructor
//使用JPA注解配置映射關系
@Entity //告訴JPA這是一個實體類(和數(shù)據(jù)表映射的類)
@Table(name = "tbl_user") //@Table來指定和哪個數(shù)據(jù)表對應;如果省略默認表名就是user;
public class User {@Id //這是一個主鍵@GeneratedValue(strategy = GenerationType.IDENTITY)//自增主鍵private Integer id;@Column(name = "nick_name", length = 50)private String nickName;@Column(name = "account", length = 50)private String account;@Column(name = "password", length = 50)private String password;@Column() //省略默認列名就是屬性名private String email;}
啟動后自動建表:
Hibernate: create table tbl_user (id integer not null auto_increment, account varchar(50), email varchar(255), nick_name varchar(50), password varchar(50), primary key (id)) engine=InnoDB
Dao,Service如下:
@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
}
public interface IUserService {List<User> getUserList();User findUserById(Integer id);void save(User user);void edit(User user);void delete(Integer id);
}
@Service
public class UserServiceImpl implements IUserService {@Autowiredprivate UserRepository userRepository;@Overridepublic List<User> getUserList() {return userRepository.findAll();}@Overridepublic User findUserById(Integer id) {Optional<User> user = userRepository.findById(id);return user.orElse(null);}@Overridepublic void save(User user) {userRepository.save(user);}@Overridepublic void edit(User user) {userRepository.save(user);}@Overridepublic void delete(Integer id) {userRepository.deleteById(id);}
}
整體結構如下:
全部源碼詳見:
gitee :?eternity-online: 多人在線mmo游戲 - Gitee.com
分支:step-07