springboot 整合MongoDB

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baofengyu90/article/details/86500356

1、先安装MongoDB,网上资料很多,就不多说了。或者看我的这篇安装教程(Win7 64位安装MongoDB 4.0.5)https://blog.csdn.net/baofengyu90/article/details/86498314

2、pom添加依赖

<dependency> 
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

3、MongoDB创建用户名和密码

连上服务器后,我是切换到test数据库,即use test,

然后执行下面语句,创建用户、设置密码、设置角色等:
db.createUser({"user":"mytest","pwd":"mytest","customData":{
employeeId:12345},"roles":["readWrite"]},{w:"majority",wtimeout:5000})

成功以后,会出现successfully added ....


参数的含义,待解释............

4、配置连接,在application.properties文件中添加如下(mytest为用户名和密码,test为数据库名称)

spring.data.mongodb.uri=mongodb://mytest:mytest@localhost:27017/test

5、分别新建UserDao,及UserImpl,及实体

public interface UserDao {

	public void saveUser(UserInfo userInfo);
	
}
@Service
public class UserDaoImpl implements UserDao{

	@Autowired
	private MongoTemplate mongoTemplate;
	
	@Override
	public void saveUser(UserInfo userInfo) {
		mongoTemplate.save(userInfo);
		System.out.println("新增完成...");
	}

}

这个用户实体可以简单写,我直接拿以前写好的,懒得改了

public class UserInfo implements Serializable {

	private static final long serialVersionUID = 1L;
	private Integer uid;

	private String username;// 帐号
	private String name;// 名称(昵称或者真实姓名,不同系统不同定义)
	private String password; // 密码;
	private String salt;// 加密密码的盐
	private byte state;// 用户状态,0:创建未认证(比如没有激活,没有输入验证码等等)--等待验证的用户 ,
						// 1:正常状态,2:用户被锁定.
	
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	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;
	}
	public String getSalt() {
		return salt;
	}
	public void setSalt(String salt) {
		this.salt = salt;
	}
	public byte getState() {
		return state;
	}
	public void setState(byte state) {
		this.state = state;
	}
	

	 /**
     * 密码盐.
     * @return
     */
    public String getCredentialsSalt(){
        return this.username+this.salt;
    }
    //重新对盐重新进行了定义,用户名+salt,这样就更加不容易被破解
}

6、写测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {

	@Autowired
	private UserDao userDao;
	
	@Test
	public void save(){
		UserInfo userInfo = new UserInfo();
		userInfo.setName("xiaoxiao1");
		userDao.saveUser(userInfo);
	}
}

验证结果:

猜你喜欢

转载自blog.csdn.net/baofengyu90/article/details/86500356