- Spring-JdbcTemplate详解,这都看不懂就安心去当个咸鱼吧!
2401_86367135
面试辅导大厂内推springsql数据库
jdbc.url=jdbc:mysql://localhost:3306/springjdbc?characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=falsejdbc.user=rootjdbc.password=1234可以通过HSQLDB自带的工具来初始化数据库表,这里我们写一个Bean,在Spring容器启动时自动创建一个users表:
- SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件
暗雪之格
Springspringboot数据库jarjava-ee
SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件H2是一个用Java开发的嵌入式数据库,它的主要特性使其成为嵌入式应用程序的理想选择。H2仅是一个类库,可以直接嵌入到应用项目中,而无需独立安装客户端和服务器端。常用开源数据库常用的开源数据库包括H2、Derby、HSQLDB、MySQL和PostgreSQL。相比之下,H2和HSQLDB非常适合作为嵌入式数据库使用,而其他数
- springboot auto-configuration 自动装配功能
尧、木子
spring专栏springbootjavaspring
springboot自动配置介绍在springboot官网给出了如下介绍:SpringBootauto-configurationattemptstoautomaticallyconfigureyourSpringapplicationbasedonthejardependenciesthatyouhaveadded.Forexample,ifHSQLDBisonyourclasspath,and
- SpringBoot 2.0 系列(三):流程详解(下)
ViYoung
自动配置SpringBoot自动配置尝试根据添加的jar依赖项自动配置Spring应用程序。例如,如果HSQLDB在我们的类路径上,并且我们没有手动配置任何数据库连接bean,那么SpringBoot将自动配置内存中的数据库。我们如果需要选择加入到自动配置可以通过将@EnableAutoConfiguration或@SpringBootApplication注释添加到我们的@Configurati
- 使用dbever连接 hsqldb
huan1213858
java
完整的url为jdbc:hsqldb:hsql://ip:端口/别名注意,hsqldb跟随应用启动和停止,所以当应用断点时,hsqldb也会连接不上导致查询数据失败,可以断点前进一步
- 2018-07-25 HSQLDB内存数据库使用
MiaLing007
hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,可以考虑一下使用它,相对其他数据库来说,其体积小,才563kb。仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容(不需要安装只需一个jar)HSQLDB的几种运行模式。●独立服务器模式:类似于其他关系数据库的标准客户机/服务器数据库配置,允许出现使用
- 数据库浅析
胡萝卜生萝卜
1、关系型数据库,RDBMS关系型数据库是以集合理论为基础的系统,实现未具有行和列的二维表。与RDBMS交互的标准方法,是用结构化查询语言SQL编写查询。数据值具有类型,并且系统强制使用类型更重要的是,表可以转化为新的、更复杂的表。其中包括许多开源数据库可供选择,包括MySQL、H2、HSQLDB、SQLite,当然,还有PostgreSQL。2、键-值数据库键-值存储是最简单的模型。顾名思义,K
- 小白新手web开发简单总结(八)-数据库HSQLDB实例
好人静
web应用开发web应用实例hsqldb
目录一前言二实例1.创建工程2.部分实例代码三总结一前言上一篇通过小白新手web开发简单总结(七)-数据库HSQLDB学习了什么是HSQLDB数据库,这一篇就是通过一个实例再去看下web应用是怎么读取HSQLDB数据库的。虽然里面里面用到的代码不一定是最精确的,但是通过这个实例自己对web应用开发又多了一些知识点的积累。二实例1.创建工程目前还不太清楚具体一个web应用应该创建什么工程,一开始自己
- 《MyBatis3源码深度解析》图书简介
m0_67392409
javajava后端
一、图书封面二、书籍目录前言4第1篇Mybatis3源码7第1章搭建Mybatis源码环境71.1Mybatis3简介71.2环境准备71.3获取Mybatis源码81.4导入Mybatis源码到IDE101.5HSQLDB数据库简介131.6本章小结16第2章JDBC规范详解172.1JDBCAPI简介172.1.1建立数据源连接182.1.2执行SQL语句192.1.3处理SQL执行结果192
- IntelliJ IDEA代码自动生成插件
程序员小美
源码分享图形化毕业设计intellij-idea数据库java
真正的大师,永远都怀着一颗学徒的心!一、项目简介IntelliJIDEA代码自动生成插件,理论上是可以通过自定义的模板,来生成各种你想要的代码。包括html,css,js,甚至是php代码二、实现功能支持各种数据库(MySQL、SQLServer、Oracle、Sybase、Derby、DB2、HSQLDB、H2、PostgreSQL、Sqlite)支持自定义模板支持多表业务逻辑三、技术选型htm
- windows上安装openfire
wilsonzane
openfireopenfire
1.安装前准备a.openfire运行在32位的JVM上,如果没有安装32位的jdk,请先系在安装b.openfire可以在内置数据库中保存数据,也可以在外部自定义数据库中保存数据。如果使用外部数据库保存数据,请预先安装。openfire支持MySQL,Oracle,MicrosoftSQLServer,PostgreSQL,IBMDB2,HSQLDB在这里,使用MySQL。openfire自
- java显示数据库_java查询数据库中的数据并显示
蓝天守护者ATCer
java显示数据库
java查询数据库中的数据并显示关注:93答案:2mip版解决时间2021-01-1716:29提问者笑低了眉眼2021-01-1704:11button.addSelectionListener(newSelectionAdapter(){@OverridepublicvoidwidgetSelected(SelectionEvente){//Driverd=neworg.hsqldb.jdbc
- Confluence与Jira整合之统一用户管理
caolaosanahnu
opensourcesharepointjdbcsqlserver数据库mysql服务器
http://leign.iteye.com/blog/566079Confluence与Jira整合之统一用户管理博客分类:JAVA配置管理MySQLHSQLDBWebXML说到Confluence与Jira的整合,首先就得提到用户的整合,有两种方式:1、通过统一使用外部数据库2、通过LDAP服务器这几天都在搞整合,配置出错导致重新配置也数不清次数了。。首先讲一讲用外部数据库统一用户管理使用这种
- 【DBeaver】DBeaver激活使用
小王爱写BUG
DBeaver是一个优秀的,通用的数据库管理工具和SQL客户端,使用java语言开发,其支持众多数据库产品,比如:MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby,等其他兼容JDBC的数据库。Dbeaver支持众多数据库,数据仓库,不仅可以MySQL,Oracle,PostgreSQL,SQLServer,DB2,MariaDB
- pagehelper分页查询
今天的代码敲了吗
Java学习java
pagehelper分页查询PageHelper是MyBatis框架中提供的分页插件,它支持Oracle、Mysql、MariaDB、SQLite、Hsqldb、PostgreSQL六种数据库。使用PageHelper可以方便地进行分页查询,只需在SQL查询前调用PageHelper.startPage方法并传入两个参数:page=页码,rows=每页显示的条数。例如,PageHelper.sta
- 常用数据库validationQuery语句
何以解忧08403
数据库oraclesql
常用数据库validationQuery语句validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句。每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQuery。DataBasevalidationQueryhsqldbselect1fromINFORMATION_SCHEMA.SYSTEM_USERSOrac
- MyBatis快速入门(19)Mybatis分页插件
郭艺宾
MyBatis学习mybatisjava
下面讨论mybatis中经典的分页插件的使用方法。1.引入分页插件2.配置拦截器插件helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,infor
- DBeaver连接mysql驱动下载失败怎么办?
重名8080
数据库mysqljdbcoraclejava
DBeaver[1]是一个通用的数据库管理工具和SQL客户端,支持MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby,以及其他兼容JDBC的数据库。DBeaver提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB数据,修改数据库结构等等。DBeaver[1]是一个通用的数据库管理工具和
- 关于 SAP Commerce Cloud 开发环境的 HSQLDB
在SAPCommerceCloud本地安装文档里,提到了HSQLDB:HSQLDB(HypersonicSQLDatabase)是一个开源的关系型数据库管理系统(RDBMS),它完全用Java编写,支持SQL标准,并提供了高性能和嵌入式数据库的功能。HSQLDB具有轻量级、快速、易于使用以及广泛的兼容性等特点,使其在各种应用场景中得到广泛应用。本文将详细介绍HSQLDB的特点、用法以及通过示例演示
- JavaDemo——Hsqldb内存数据库模式基本使用
FlyLikeButterfly
JavaDemoshsqldb内存数据库
一开始在eclipse里用maven引用hsqldb,结果发现MavenDependencies里是有jar包的,也有jdbcDriver.class,但代码里的Class.forName("org.hsqldb.jdbcDriver")就是找不到driver类,不知啥原因,查了一番好像是存在这样问题,最后只好去maven仓库里把jar拷贝过来,加到classpath里,不使用maven。(文章最
- PageHelper是怎么分页的
Robinsyn_L
数据库mybatisjava数据库
目录1、前言2、基本流程3、源码分析3.1、存储分页参数3.2、改造SQL3.3、分页查询3.4、使用Page创建PageInfo对象1、前言PageHelper是mybatis提供的分页插件,通过PageHelper.startPage(pageNo,pageLimit)就可以帮我们实现分页,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数
- mybatis整合pagehelper实现分页
我不是臭弟弟
mybatispagehelper
Mybatis框架的分页插件PageHelper是目前我用过的最简单的分页插件了,该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。使用非常的简单,步骤如下:先创建一个springboot项目,然后使用mybatis—generator来自动生成mapper和pojo具体实现可以参考之前的一篇博客(很烂)https://blog
- JAVA创建DataSource
maxzhao_
title:JAVA创建DataSourcedate:2020-01-17author:maxzhaotags:JAVADataSourcecategories:JAVADB为什么会用到DataSource?在我读oauth2源码的时候,Spring中提供了大量的测试代码,运行测试代码更方便自己理解,但是测试代码中使用的大多都是Hsqldb等等,我想连接我的开发库(MySql8)进行测试。传统的连
- maven3.3.9的简单示例以及部署
oiooooio
mavenjavamaven
参见:https://maven.apache.org/plugins/maven-deploy-plugin/1、修改pom.xml用于deploy请按照下文pom.xml有颜色的内容修改自己的pom.xml文件:4.0.0com.chongshi.testhello1.0AdditionalSchemaCrawlerLintjunitjunit4.11testorg.hsqldbhsqldb2
- sqlmap使用
阿尼奥赛哟
1.sqlmap简介SQLmap是一款用来检测与利用SQL漏洞的注入神器。开源的自动化SQL注入工具,由Python写成,具有如下特点:完全支持MySQL、Oracle、PostgreSQL、MicrosoftSQLServer、MicrosoftAccess、IBMDB2、SQLite、Firebird、Sybase、SAPMaxDB、HSQLDB和Informix等多种数据库管理系统。完全支持
- DBeaver安装与使用
onnoA
1.WindowsDBeaver是一个通用的数据库管理工具和SQL客户端,支持MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby,以及其他兼容JDBC的数据库DBeaver有两个版本普通的Dbeaver是完全免费使用的,在dbeaver官网就可以直接下载DbeaverEE企业版的工具,比普通版多了部分功能,如链接RedisMong
- PageHelper的概述和基本使用
冰块儿+奶茶
Oracle
PageHelper介绍PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。本项目在github的项目地址:https://github.com/pagehelper/Mybatis-PageHelper本项目在gitosc的项目地址:http://git.oschi
- PageHelper使用方法
猿三少
mybatis
PageHelper插件的使用一、PageHelper介绍PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。二、使用方法1.导入依赖com.github.pagehelperpagehelper5.1.22.使用xmlselect*fromaccms_casemap
- PageHelper详解
32码奴
postgresql数据库sql
PageHelperpagehelper是mybatis提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。使用方法原始样式,每页显示多条数据,现在的需求是每页显示4条数据后端导入依赖依赖:pagehelper开始分页Service方法调用SQL查询前添加PageHelper.startPagePageHelper.star
- (linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
QGS-CD
开源数据库sqllinux
(linux-x86-ARM)安装DBeaver21.3通用的数据库管理工具和SQL客户端DBeaver是免费和开源(GPL)为开发人员和数据库管理员通用数据库工具。官网地址https://dbeaver.io/download/DBeaver是一个通用的数据库管理工具和SQL客户端,支持MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,D
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str