qin数据库
❶ android 数据库怎么监听数据变化
在android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能会搂关cursor而导致程序内存未释放等等。其实android内部提供了一种ContentObserver的东西来监听数据库内容的变化。
ContentObserver的构造函数需要一个参数Hanlder,因为ContentObserver内部使用了一个实现Runnable接口的内部类NotificationRunnable,来实现数据库内容的变化。需要使用hanlder去post消息。注册ContentObserver的方法是:getContentResolver().registerContentObserver(uri, notifyForDescendents, observer).
上面3个参数为:uri----Uri类型,是需要监听的数据库的uri.
notifyForDescendents---boolean true的话就会监听所有与此uri相关的uri。false的话则是直接特殊的uri才会监听。一般都设置为true.
observer-----ContentObserver 就是需要的contentobserver.
初始化一个ContentObserver对象,重载onChange(boolean ),在这个方法里去操作数据库的使用,针对变化后的使用。
❷ C#如何操作sql 数据库
1、分离数据库
exec
sp_detach_db
dataname
eg:
dataname:要分离的数据库名
2.将数据库一下即可备份
3、在附加数据库
1.exec
sp_attach_single_file_db
newdataname,mdfPath
eg:
newdataname:要附加上的新数据库名称(可以是原来的)
mdfPath='C:/Program
Files/Microsoft
SQL
Server/MSSQL/Data/11_Data.MDF'
2.exec
sp_attach_db
newdataname,mdfPath,ldfPath
eg:
mdfPath='C:/Program
Files/Microsoft
SQL
Server/MSSQL/Data/11_Data.MDF'
ldfPath='C:/Program
Files/Microsoft
SQL
Server/MSSQL/Data/11_Log.LDF'
备注:不能操作本数据库
eg:
string
DataName="aaa";
string
strMdf="D://test1//test//Test_Data.MDF";
string
strLdf="D://test1//test//Test_Log.LDF";
string
strsql
=
"EXEC
sp_attach_db
@dbname
=
'"+
DataName
+"',
@filename1='"+
strMdf
+"',
@filename2=
'"+strLdf+"'";
SqlConnection
myConn
=
new
SqlConnection("Data
Source=HUIQIN;Database=master;Persist
Security
Info=True;
UserID=sa;Password=sa");
SqlCommand
myCommand
=
new
SqlCommand(strsql,
myConn);
myConn.Open();
myCommand.ExecuteNonQuery();
myConn.Close();
❸ python3怎么导入mysql
python3发布以来,获取了广大程序员们的差评,说不稳定,又是不兼容什么的,不过差评归差评,python3既然已经发布,肯定是个趋势,但在python3.4里面,使用原来python2.7的mysqldb已经不能连接mysql数据库了,比较令人纠结,不过我们可以使用pymysql,来完成连接mysql的重任,步骤如下:
序号描述
1去github上下载pymysql的安装包 pymysql
2解压到某个盘符下
3打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setup.py install4在程序里,导入pymysql
5开始连接数据库
数据库操作的API文档连接: http//legacy.python.org/dev/peps/pep-0249/代码如下:
__author__ = 'qindongliang'
#导入pymysql的包
import pymysql
try:
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')cur=conn.cursor()#获取一个游标
cur.execute('select * from person')
data=cur.fetchall()
for d in data :
#注意int类型需要使用str函数转义
print("ID: "+str(d[0])+' 名字: '+d[1]+" 性别: "+d[2])cur.close()#关闭游标
conn.close()#释放数据库资源
except Exception :print("发生异常")
结果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.pyID: 1 名字: 秦天 性别: 男
ID: 2 名字: 王晶 性别: 女
Process finished with exit code 0
❹ servlet中连接数据库问题: exception java.lang.NullPointerException
楼主你把连接数据库写成构造器的形式,认为可以每次执行时都会连接,所以不在具体查询方法里面再做数据库的connection操作,这个方式显然发生错误了,建议不写成默认构造的形式。具体改法可以照我的例子改:
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String URL="jdbc:mysql://localhost:8080/useToVote";
private static final String USER="root";
private static final String PWD="qinx";
public Connection getConnection(){
Connection conn=null;
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USER,PWD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
然后在查询的GetResulte方法里面先加入conn=getConnection();开启连接,再继续往下。注意最后要关闭连接哦!希望对你有所帮助。