我有一个在tomcat 6下运行的基于Spring的Web应用程序.现在,我想使用c3p0连接池而不是tomcat的默认DBCP.所以,从c3p0帮助文档中,我已经定义了context.xml
类似的数据源:
<Resource name="jdbc/sample" auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@someServer:1551:xyz"
username="userName"
password="pwd"
validationQuery="SELECT 1 FROM dual"
testOnBorrow="true"
testWhileIdle="true"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="20"
minPoolSize="5"
acquireIncrement="1"
/>
Run Code Online (Sandbox Code Playgroud)
现在,文档说,我应该包括以下内容web.xml
:
<resource-ref>
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
我还有以下内容applicationContext.xml
:
<jee:jndi-lookup id="sampleDataSource" resource-ref="true"
jndi-name="jdbc/sample" />
Run Code Online (Sandbox Code Playgroud)
当我启动tomcat时,我得到了
javax.naming.NameNotFoundException:名称jdbc未绑定在此Context中
没有c3p0并在tomcat6中使用默认连接池工作正常.
任何帮助,将不胜感激.
我有一个单线程应用程序,在本地文件系统上的3个不同文件中使用3个SQLite数据库.
我创建了一个DbAdapter
帮助器类来打开与SQLite数据库文件的连接.在这个类中,我有一个open
创建连接的close
方法,以及一个释放所有内容的方法.
从派生的类访问3个数据库DbAdapter
.
在我的程序中,每个数据库访问都是这样的:
MyDbAdapter DB = new MyDBAdapter();
int stuff = DB.getStuff(); // queries the database
DB.close();
// now do something with `stuff`
Run Code Online (Sandbox Code Playgroud)
我已经登录了stdout
所有来电DbAdapter.open
和DbAdapter.close
.每次都有一个open()
,close()
紧随其后.
我也小心翼翼地关闭我Statement
的所有s(这将导致关联的ResultSet
s被关闭).
所以我想我的数据库访问是干净的,因为我试图让它们尽可能短,并且我不再需要它时立即释放所有资源.
然而,我仍然得到一个java.sql.SQLException: database is locked
.
有什么我做得不好吗?我知道我没有显示任何代码,但是我必须发布大量代码并且它不相关.我只是问我是否在这里使用最佳实践,因为我认为我这样做,而且我仍然会遇到异常.
这是使用Java 1.6,Xerial.org的sqlite-jdbc-3.7.2驱动程序,在Mac OS 10.6 x64上
我可以使用 Jersey Client 连接到使用 IPv6 的 REST 资源吗?
我收到此错误:
com.sun.jersey.api.client.ClientHandlerException: java.net.MalformedURLException: For input string: ":94ea:d2bc:c189:209c%10:8100"
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:128)
at com.sun.jersey.api.client.Client.handle(Client.java:551)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:556)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:69)
at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:475)
at com.bmc.aps.agent.jersey.JerseyClient.put(JerseyClient.java:168)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.MalformedURLException: For input string: ":94ea:d2bc:c189:209c%10:8100"
at java.net.URL.<init>(URL.java:601)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at java.net.URI.toURL(URI.java:1081)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:139)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:126)
... 8 more
Run Code Online (Sandbox Code Playgroud)
在例外情况下,ip 被切断(:94ea:d2bc:c189:209c%10
而不是fe80::94ea:d2bc:c189:209c%10
)。在调试中,我可以看到 Web 资源 URI 正常。
我在Windows 7中使用AutoHotKey脚本将剪贴板的内容作为一系列击键发送。我是AutoHotKey的新手,但我想知道是否有某种方法可以调整每次发送两次击键之间的时间。当前,脚本中的唯一一行如下:
^!k:: Send %clipboard%
Run Code Online (Sandbox Code Playgroud)
我希望能够将两次击键之间的时间(目前看来大约是每秒50个字符)增加到每秒10个字符。
我正在使用它来使用终端仿真器将击键发送到微控制器。我遇到的问题是,当我实际手动键入击键时,所有内容都会按原样进行注册,但是当我将剪贴板内容作为击键发送时,出现了问题,我希望减慢输入速度找出问题所在。本质上,在尝试另一个更复杂的解决方案之前,我想排除输入速度的问题。
如果有人有任何想法,将不胜感激。谢谢!
我正在尝试遵循材料设计模型,通过在活动之间进行活动时共享的视图来动画到新的位置/属性.我正在使用https://developer.android.com/training/material/animations.html上的指南.但是,这些动画需要API 21,我的应用程序需要达到更大的市场份额,所以我只想在设备具有适当的API级别时显示动画.我该如何做到这一点?
目前,我陷入了第一步.当我将该行添加<item name="android:windowContentTransitions">true</item>
到我的style.xml时,我收到一个错误,因为我的最低API要求是11(我的目标是21).我发现的唯一解决方案是将最小API更改为21.
PS我正在使用Android Studio 1.0.1
我刚刚开始学习如何使用Dagger,并且已经将我的Backend
连接类转换为自动注入.
该类处理Retrofit并执行网络请求.它曾经有静态方法,但现在它是一个对象,例如:
Backend.fetchPost(context, 42); // old way
mBackend.fetchPost(42); // mBackend is an injected field
Run Code Online (Sandbox Code Playgroud)
上下文用于检索AccountManager
使用我的后端服务器提供OAuth令牌的上下文.现在自动注入.
这在活动和片段中效果很好,但我无法弄清楚如何注入我的SyncAdapter
课程.
实际上,它是一个我无法控制的框架对象,并且AndroidInjections
没有准备好注入这种类的静态方法.
这是我想要工作的代码:
/**
* Handle the transfer of data between the backend and the app, using the Android sync adapter framework.
*/
public class SyncAdapter extends AbstractThreadedSyncAdapter {
@Inject
public Backend mBackend; // can't use constructor injection,
// so might aswell use a public field
public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
}
public SyncAdapter(Context …
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的活动:
public class SurvivalActivity extends Activity {
private static final String KEY_LAYOUT_ID = "SurvivalLayoutId";
int mLayoutId;
private static final int[] mSurvivalLayouts = {
R.layout.survival1,
R.layout.survival2,
R.layout.survival3,
};
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Intent i = getIntent();
if (savedInstanceState != null && savedInstanceState.containsKey(KEY_LAYOUT_ID)) {
mLayoutId = savedInstanceState.getInt(KEY_LAYOUT_ID, 0);
} else if (i != null) {
mLayoutId = i.getIntExtra(KEY_LAYOUT_ID, 0);
} else {
mLayoutId = 0;
}
// Layout
setContentView(mSurvivalLayouts[mLayoutId]);
// Title
Util.setTitleFont(this, findViewById(R.id.title));
// "Next" button
final …
Run Code Online (Sandbox Code Playgroud) 我想在特定的操作上保持这种布局:
如今,我可以CoordinatorLayout
通过对其进行滑动来折叠或扩展它.我想阻止这种行为.
android material-design android-coordinatorlayout android-collapsingtoolbarlayout
我想用选择的结果通过管道传递到命令中来替换一行的一部分。
例如:
echo "hello $(echo "world" | base64)" | vim -
Run Code Online (Sandbox Code Playgroud)
这将hello d29ybGQK
在其中打开一个缓冲区。现在按下wvw
以直观地选择d29ybGQK
。
然后,我尝试:!base64 -d
并希望该缓冲区包含hello world
,但没有发生。确实,整行都通过管道传递到命令中,并且替换了整行。
是否可以仅替换视觉选择,而仅将该选择通过管道传递到命令中?
我也尝试过,c<c-r>=system('base64 -d')
但是没有将视觉选择发送到命令的标准输入。
我希望有类似YouTube的行为:
这是我的约束:
Toolbar
(AppBarLayout
如果重要的话)BottomNavigationView
)Toolbar
向上按钮的意义上,所有底部标签都是“顶层”默认情况下,当全部实现后,Jetpack导航库将自动处理导航。我使用此助手将工具栏与导航控制器挂钩:
NavigationUI.setupWithNavController(main_toolbar, navController)
Run Code Online (Sandbox Code Playgroud)
效果很好,但是如果我切换底部标签之一,则会显示向上按钮,然后按一下会弹回到默认目标位置。
当不使用底部标签时,这很好,但是当使用底部标签时,这很尴尬。
android android-toolbar bottomnavigationview android-jetpack android-architecture-navigation