Spring JdbcTemplate 使用一则
事务管理
transactionManager 与数据源关联的
this.transactionManager = new DataSourceTransactionManager(this.datasource);
this.jdbcTemplate = new JdbcTemplate(datasource);
this.transactionManager = new DataSourceTransactionManager(this.datasource);
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);// 返回事务状态记录
try {
..........
jdbcTemplate.execute("delete from bsmd_field");
jdbcTemplate.execute("delete from bsmd_references");
jdbcTemplate.execute("delete from bsmd_table");
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw e;
}finally{
}
映射为指定对象 RowMapper
RowMapper<ReferenceStruct> rowMapper=new BeanPropertyRowMapper<ReferenceStruct>(ReferenceStruct.class);
String sql = "SELECT " +
"name AS 'name' " +
",bsmd_table_name AS 'tableName' " +
",bsmd_field_name AS 'fieldName' " +
",ref_bsmd_table_name AS 'refTableName' " +
",ref_bsmd_field_name AS 'refFieldName' " +
"from bsmd_references ";
List<ReferenceStruct> refStructs= jdbcTemplate.query(sql, rowMapper);Spring MongoTemplate 使用一则
//插入
mongoTemplate.insert(userList, "userList"); //对应
mongoTemplate.insert("[{name: 12}]", "userList"); //可插入json的字符串
//查询
Pattern pattern = Pattern.compile("^.*8$",Pattern.CASE_INSENSITIVE);
Query query = new Query(Criteria.where("phone").regex(pattern));
SysUser findOne = mongoTemplate.findOne(query,SysUser.class,"userList");
//查询 2
Criteria criteria = new Criteria();
criteria.and("name").is("dd");
criteria.and("phone").is("12222222222");
Query query = new Query(criteria);
List<SysUser> findList = mongoTemplate.find(query, SysUser.class,"userList");排除自动装配数据库数据源问题
排除 DataSourceAutoConfiguration 自动装配无效, exclude 属性无效
原因是自动装配的类是阿里的 DataSourcePoolMetadataProvidersConfiguration
基于注解的配置是 org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext