方法1,通过管理控制台
首先,先通过管理控制台来创建一个连接池mypool。在浏览器的输入管理控制台地址:localhost:4848。采用缺省的用户名“admin”及其密码“adminadmin”登录。成功登录后,在左边的树型菜单中,展开“资源”-“JDBC”-“连接池”。
在主面板中,点击“新建”。在面板“新建 JDBC 连接池(步骤 1,共 2 步)”中,输入“名称”为mypool,“资源类型”选为“javax.sql.DataSource”,“数据库供应商”选为“JavaDB”。在接下来的“新建 JDBC 连接池(步骤 2,共 2 步)”中,可以看到数据库连接池的各项缺省设置。将在“池设置”一栏中的“空闲超时”值由缺省的300改为777。 点击“完成”。至此,我们通过管理控制台完成了对数据库连接池mypook的创建,并修改了其空闲超时的值。
方法2,通过命令行工具asadmin
接下来,我们通过命令行的asadmin来查看这一资源。
asadmin list server.resource*
运行结果如下:
undefined
undefined
server.resource
-
ref
.jdbc
/
__CallFlowPool server.resource
-
ref
.jdbc
/
__TimerPool server.resource
-
ref
.jdbc
/
__default server.resources server.resources.jdbc
-
connection
-
pool.DerbyPool server.resources.jdbc
-
connection
-
pool.__CallFlowPool server.resources.jdbc
-
connection
-
pool.__TimerPool server.resources.jdbc
-
connection
-
pool.mypool server.resources.jdbc
-
resource.jdbc
/
__CallFlowPool server.resources.jdbc
-
resource.jdbc
/
__TimerPool server.resources.jdbc
-
resource.jdbc
/
__default
这里列出的MBean是用GlassFish自己的DottedName来标识的。接着通过asadmin的子命令get来查看对象mypool的属性:
asadmin get server.resources.jdbc-connection-pool.mypool.*
或者进一步查看空闲超时(idle-timeout-in-seconds)的属性值。
asadmin get server.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds
结果如下:
server.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds = 777
至此,我们完成了使用命令行的管理工具asadmin对mypool的访问。这里asadmin通过GlassFish扩展的Dotted Name命名方式来访问MBean的。Dotted Name是GlassFish命令行工具asadmin定义的一套约定。在这套约定的支持下,asadmin的三个子命令(list、set和get )可以通过一个由“.”分隔的字串寻址到GlassFish中的MBean。
方法3,通过第三方工具JConsole
接下来,我们要通过JConsole来访问对象mypool。
在JConsole的登录面板中,选择远处进程:localhost:8686(8686是GlassFish缺省的管理端口),用户名同样为admin,密码adminadmin。登录进来后所看到的是关于GlassFish应用服务器运行时的信息,点击“MBean”。展开树型结构“com.sun.aperv” - “jdbc-connection-pool” - “my pool” - “config” - “属性”。
可以
看到我们所关心的连接池mypool的信息。属性idle-timeout-in-seconds的值为777。修改777为888。
在回到管理控制台或命令行工具asadmin同样可以看到刚才在JConsole所作的修改已经生效。
以上说明三种工具对GlassFish资源的修改是等效的。
接下来通过编程的方式来访问数据库连接池mypool。
方法4,通过标准的JMX编程方式
标准的JMX方式的代码如下:(以下为演示代码。为突出重点,未作异常处理。)
undefined
undefined
import javax.management.
*
; import javax.management.remote.
*
;
public
class
JMX_demo {
public
JMX_demo() throws Exception {
//
创建JMX 的URL
JMXServiceURL url
=
new
JMXServiceURL(
"
service:jmx:rmi:///jndi/rmi://localhost:8686/jmxrmi
"
); java.util.Map env
=
new
java.util.Hashtable();
//
缺省用户名和其口令
String[] creds
=
{
"
admin
"
,
"
adminadmin
"
}; env.put(JMXConnector.CREDENTIALS,creds);
//
建立连接
JMXConnector connector
=
JMXConnectorFactory.connect(url,env); MBeanServerConnection mbsc
=
connector.getMBeanServerConnection();
//
要访问的MBean的Object Name
ObjectName mbeanName
=
new
ObjectName(
"
com.sun.appserv:type=jdbc-connection-pool,name=mypool,category=config
"
);
//
所要访问的属性idle-timeout-in-seconds
System.
out
.println(
"
Using JMX, jdbc pool idle timeout:
"
+
mbsc.getAttribute(mbeanName,
"
idle-timeout-in-seconds
"
)); }
public
static
void
main( final String[] args ) throws Exception{
new
JMX_demo(); } }
运行结果如下: Using JMX, jdbc pool idle timeout:888
undefined
undefined
public
class
AMX_demo {
public
AMX_demo() throws Exception {
//
Domain Admin Server的机器名或IP地址
final String host
=
"
localhost
"
;
//
JMX管理端口,缺省8686。
final
int
port
=
8686
;
//
管理员名
final String user
=
"
admin
"
;
//
管理员密码
final String password
=
"
adminadmin
"
; TLSParams tlsParams
=
null
;
//
连接到JMX server
AppserverConnectionSource conn
=
new
AppserverConnectionSource( AppserverConnectionSource.PROTOCOL_RMI, host, port, user, password, tlsParams,
null
); conn.getJMXConnector(
true
);
//
DomainRoot和JDBCConnectionPoolConfig就是所说的DCP组件 DomainRoot mDomainRoot = conn.getDomainRoot();
//
获取JDBCConnectionPool的列表
Map pools
=
mDomainRoot.getDomainConfig().getJDBCConnectionPoolConfigMap(); JDBCConnectionPoolConfig mypool
=
(JDBCConnectionPoolConfig)pools.
get
(
"
mypool
"
); System.
out
.println(
"
Using DCP, jdbc pool idle timeout:
"
+
mypool.getIdleTimeoutInSeconds()); }
public
static
void
main( final String[] args ) throws Exception{
new
AMX_demo(); } }方法5,通过AMX编程方式
AMX方式的代码如下:
undefined
undefined
import com.sun.appserv.management.DomainRoot; import com.sun.appserv.management.client.AppserverConnectionSource; import com.sun.appserv.management.client.TLSParams; import com.sun.appserv.management.util.misc.ExceptionUtil; import com.sun.appserv.management.config.
*
; import java.ConnectException; import java.util.Map;

MySQLviewshavelimitations:1)Theydon'tsupportallSQLoperations,restrictingdatamanipulationthroughviewswithjoinsorsubqueries.2)Theycanimpactperformance,especiallywithcomplexqueriesorlargedatasets.3)Viewsdon'tstoredata,potentiallyleadingtooutdatedinforma

ProperusermanagementinMySQLiscrucialforenhancingsecurityandensuringefficientdatabaseoperation.1)UseCREATEUSERtoaddusers,specifyingconnectionsourcewith@'localhost'or@'%'.2)GrantspecificprivilegeswithGRANT,usingleastprivilegeprincipletominimizerisks.3)

MySQLdoesn'timposeahardlimitontriggers,butpracticalfactorsdeterminetheireffectiveuse:1)Serverconfigurationimpactstriggermanagement;2)Complextriggersincreasesystemload;3)Largertablesslowtriggerperformance;4)Highconcurrencycancausetriggercontention;5)M

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

Adding MySQL users through the PHP web interface can use MySQLi extensions. The steps are as follows: 1. Connect to the MySQL database and use the MySQLi extension. 2. Create a user, use the CREATEUSER statement, and use the PASSWORD() function to encrypt the password. 3. Prevent SQL injection and use the mysqli_real_escape_string() function to process user input. 4. Assign permissions to new users and use the GRANT statement.

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

WebStorm Mac version
Useful JavaScript development tools

Atom editor mac version download
The most popular open source editor

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software
