这是我的代码片段
package SimpleDruidOperation
import java.sql.{Connection, Driver, DriverManager, SQLException, Statement}
class ConnectionEstablishment {
var conn:Connection=_
var dr:Driver=_
def connEstablishment() =
{
try {
dr = new com.mysql.jdbc.Driver()
DriverManager.registerDriver(dr)
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/deven","root","root")
if(conn!=null)
println("!!Database Connected Succesfully!!!")
else
println("!!Check your Database Connection !!")
}
catch
{
case e:SQLException=>println("Exception is "+e.getMessage)
}
finally
{
conn.close()
}
}
}
class InsertintoDatabase extends ConnectionEstablishment {
var stmt:Statement=_
// override def connEstablishment():co = super.connEstablishment()
val conn:Connection=connEstablishment()//it is not going to override
def insertintoDatabase(): Unit =
{
println("Checking Conection Establishment")
try {
stmt = conn1.createStatement()
var sql = "insert into emp (eid,ename,eadd,emob) values (101,'Mohit','Pune',9156369938) "
var i = stmt.executeUpdate(sql)
if (i > 0)
println(i + "Value Inserted Successfully into Databaes")
else
println("!!Not Inserted Check something is going wrong!!")
}
catch
{
case e:SQLException=>println("Exception is "+e.getMessage)
}
finally
{
println("Closing Connection Establishment "+conn1.close())
println("CLosing Statement Connection "+conn1.close())
}
}
}
这里我的第一个班级ConnectionEstablishment
这个类是连接而第二个类是插入数据库但问题是我无法覆盖connEstablisment
方法,因为如果我想覆盖它然后我无法建立插入连接
因为我需要它,所以我可以调用语句stmt=conn,createStatement()
。
我该怎么做?
答案 0 :(得分:0)
这里的问题是,当您实际需要两个单独的类时,您已经创建了一个类层次结构。 AddType application/x-httpd-php56 php56 php
php_flag log_errors on
php_flag display_errors on
#php_value error_reporting 8
php_value error_reporting E_ALL
php_value error_log /home/shadyabc/public_html/error_log2
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^shadyab.com$ [NC]
RewriteRule ^(.*)$ http://www.shadyab.com/$1 [R=301,L]
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L]
</IfModule>
order allow,deny
allow from all
RewriteCond %{HTTP_HOST} ^shadyab\.ir$ [OR]
RewriteCond %{HTTP_HOST} ^www\.shadyab\.ir$
RewriteRule ^/?$ "http\:\/\/www\.shadyab\.com" [R=301,L]
<Files 403.shtml>
order allow,deny
allow from all
</Files>
deny from 72.52.124.58
类表示数据库连接,ConnectionEstablishment
类表示该数据库上的操作,它们之间没有自然的层次结构。
类层次结构应该具有&#34;是&#34;关系:如果InsertintoDatabase
继承自D
,那么说C
是 D
是有意义的。因此,C
从Circle
继承是有道理的,因为圆是形状。由于数据库操作不是数据库连接,因此从数据库连接继承数据库操作没有意义。
数据库操作需要数据库连接,这是一个包含关系,而不是层次结构。
因此,您应该拥有一个创建和管理数据库连接的Shape
类,以及一个ConnectionEstablishment
类,该类采用InsertintoDatabase
实例并使用它将项目插入数据库。
通过这种安排,您可以创建以不同方式连接到数据库的ConnectionEstablishment
的不同子类,ConnectionEstablishment
类将与任何这些子类一起使用。同样,您可以创建使用数据库连接的新类,例如InsertintoDatabase
,而无需继承现有的DeleteFromDatabase
类。