数据库操作
java原创数据库大约 2 分钟约 557 字
1. 数据库操作
1.1. 批量插入
Dict dict=Dict.create();
dict.put("a",11);
System.out.println(dict.keySet());
Db.use().insert(Entity.create("").setFieldNames("","").setFields(dict::values));
2. 存储过程
2.1. 调用存储过程
import cn.hutool.db.ds.DSFactory
import cn.hutool.db.Entity
import java.sql.Types
import java.util.Map
import cn.hutool.db.DbUtil
import cn.hutool.db.Db
import cn.hutool.db.StatementUtil
import java.util.Map
import cn.hutool.db.sql.SqlExecutor
// var conn = Db.use('bjgc').getConnection()
import java.sql.SQLException;
import javax.sql.DataSource;
import cn.hutool.db.ds.simple.SimpleDataSource;
// var call=conn.prepareCall('{call bhg.test(?)}')
// call.setString(1,"123")
// var res=call.executeQuery()
try {
DataSource ds = new SimpleDataSource("jdbc:oracle:thin:@10.83.128.202:1521:bjgc", "report", "report");
var conn = ds.getConnection()
var call = conn.prepareCall('{call bhg.test(?,?)}')
call.setString(1, "123")
call.registerOutParameter(2, Types.VARCHAR);
var res = call.execute()
log.info(call.getString(2))
DbUtil.close(call)
conn.close()
} catch (e) {
log.info(e.asString())
}
return res
3. mongodb
3.1. 配置
spring:
data:
mongodb:
uri: mongodb://root:root@10.0.64.127:27017/admin
3.2. mongo.setting 配置文件
#每个主机答应的连接数(每个主机的连接池大小),当连接池被用光时,会被阻塞住 ,默以为10 --int
connectionsPerHost=100
#线程队列数,它以connectionsPerHost值相乘的结果就是线程队列最大值。如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误 --int
threadsAllowedToBlockForConnectionMultiplier=10
#被阻塞线程从连接池获取连接的最长等待时间(ms) --int
maxWaitTime = 120000
#在建立(打开)套接字连接时的超时时间(ms),默以为0(无穷) --int
connectTimeout=0
#套接字超时时间;该值会被传递给Socket.setSoTimeout(int)。默以为0(无穷) --int
socketTimeout=0
#是否打开长连接. defaults to false --boolean
socketKeepAlive=false
user = root
pass = root
database = admin
#---------------------------------- MongoDB实例连接
[master]
host = 10.0.74.127:27017
3.3. 实例
MongoDatabase db = MongoFactory.getDS ("10.0.64.127",27017).getDb ("admin");
MongoCollection<Document> collection = db.getCollection ("col");
BsonDocument document = new BsonDocument ();
Pattern pattern = Pattern.compile("d", Pattern.MULTILINE);
// document.put ("by", pattern);
FindIterable<Document> documents = collection.find (new Document ("likes.title",pattern));
MongoCursor<Document> iterator = documents.iterator ();
while (iterator.hasNext ()){
Document next = iterator.next ();
System.out.println (new JSONObject (next.get ("likes")).get ("title"));
}
Map<String, Object> map = new HashMap<>();
Map<String, String> map1 = new HashMap<>();
map1.put ("a", "a");
map1.put ("b", "1");
map.put ("by", map1);
collection.insertOne (new Document (map));
collection.insertOne (new Document ("by","{\"id\",123}"));
3.4. 插入数据
String json = "{ 'foo' : 'bar','list':{'name1':1,'id1':123} }";
// collection.find(Document.parse(json));
collection.insertOne(Document.parse(json));
3.5. json 数据转换成 Document
String json = "{ 'foo' : 'bar','list':{'name1':1,'id1':123} }";
Document.parse(json)
3.6. 插入数据
UpdateResult updateResult = collection.updateMany(new Document("_id", new ObjectId("66ecd0cd2b449276f936ce6a")), new Document("$set", Document.parse(json)));
UpdateResult updateResult = collection.updateMany(new Document("foo", "bar"), new Document("$set", Document.parse(json)));
System.out.println(updateResult);
