弄了一天,记录下过程
首先ressources.propeties
database=MYSQL
database.driver=com.mysql.jdbc.Driver
database.password= ***
database.url=********
database.username=**********
database.driverClassName=net.sf.log4jdbc.DriverSpy
mongo.hostport=127.0.0.1:27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
#\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4
mongo.connectTimeout=1000
#\u7B49\u5F85\u65F6\u95F4
mongo.maxWaitTime=1500
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
#Socket\u8D85\u65F6\u65F6\u95F4
mongo.socketTimeout=1500
mongo.slaveOk=true
这是配置中的参数
mongodb.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 加载mongodb的属性配置文件 -->
<context:property-placeholder location="classpath:META-INF/spring/resources.properties"/>
<!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 -->
<mongo:mongo id="mongo" replica-set="${mongo.hostport}">
<!-- 一些连接属性的设置 -->
<mongo:options connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}"
auto-connect-retry="${mongo.autoConnectRetry}" socket-keep-alive="${mongo.socketKeepAlive}"
socket-timeout="${mongo.socketTimeout}" slave-ok="${mongo.slaveOk}"
write-number="1" write-timeout="0" write-fsync="true" />
</mongo:mongo>
<mongo:db-factory dbname="database" mongo-ref="mongo" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<!-- <constructor-arg ref="mongo" />
<constructor-arg name="databaseName" value="database" /> -->
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
</beans>
mongoTemplate这个是用来操作数据库的,我们在是service注入注解注入这个,就可以对数据库操作
比如
@Service
public class ClassesServiceImpl implements ClassesService {
@Inject
protected ClassesMapper classesMapper;
@Inject
protected MongoTemplate mongoTemplate;
@Override
public Classes getClasses4(Classes classes) {
// TODO Auto-generated method stub
DB db=mongoTemplate.getDb();
System.out.println(db);
return null;
}
}
//user 实体类
public class User{
@Id
private String id;
private String name;
private String username;
private String password;
private String telephone;
private String salt;
private String mobile;
private String email;
private Date loginDate;
private String loginIp;
private Boolean locked;
private Boolean isStaff;
private Boolean isAdmin;
private Boolean isApply;
private String wechatID;
private String imageUrl;
private Integer status;
//get set 方法省略
}
@Service
public class UserServiceImpl implements UserService {
@Inject
protected MongoTemplate mongoTemplate;
@Override
public List<User> findAlls() {
// TODO Auto-generated method stub
return mongoTemplate.findAll(User.class, "user");
}
@Override
public void deletemongo(Integer id) {
// TODO Auto-generated method stub
mongoTemplate.remove(new org.springframework.data.mongodb.core.query.Query(Criteria.where("id").is(id)), User.class, "user");
}
@Override
public User findOnemongo(Integer id) {
//return mongoTemplate.findOne(new org.springframework.data.mongodb.core.query.Query(Criteria.where("_id").is(id)), User.class, "user");
return mongoTemplate.findById(id, User.class, "user");
}
@Override
public WriteResult updateOnemongo(Integer id) {
//Update update=new Update();
//update.set("username", "chengxuemnan");
return mongoTemplate.updateMulti(new org.springframework.data.mongodb.core.query.Query(Criteria.where("id").is(id)), new Update().set("username", "che"), User.class,"user");
}
}