Ⅰ Hibernate如何动态链接数据库
一.导包 mysql
二.在默认src下创建hibernate.cfg.xml
1.创建xml文件,命名为hibernate.cfg.xml
2.添加约束
(在org.hibernate/hibernate-configuration-3.0.dtd中)
1 <!DOCTYPE hibernate-configuration PUBLIC2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"3 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/houserentsys</property> <!-- houserentsys是数据库名称 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">123456</property>
<property name="show_sql">true</property> <property name="format_sql">false</property> <!-- 设置为false就会不换行 --> <property name="hbm2ddl.auto">update</property> <!-- 进行操作时不会删除重建-->
<!--hbm2ddl.auto属性:
create:表示启动的时候先drop,再create
c
reate-drop: 也表示创建,只不过再系统关闭前执行一下drop
update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新
-->
<mapping resource="e/tsinghua/entity/mapping/district.xml"/> <mapping resource="e/tsinghua/entity/mapping/street.xml"/>
</session-factory></hibernate-configuration>
hbm2ddl.auto属性:
create:表示启动的时候先drop,再create
create-drop: 也表示创建,只不过再系统关闭前执行一下drop
update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新
三.实体 实现序列化接口 封装属性和构造方法 实体.xml 位置随意
(在org.hibernate/hibernate-mapping-3.0.dtd中)
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
在hibernate.cfg.xml 添加 映射文件的引用
<mapping resource="e.tsinghua.entity.mapping.district"/>
七个步骤(在新建的执行文件Test.java中)
//1.加载配置文件
Configuration cfg=new Configuration().configure();
//2.获得sessionfactory
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
SessionFactory sf=cfg.buildSessionFactory(serviceRegistry);
//3.创建session
Session session=sf.openSession();
//4.创建事务
Transaction tx=session.beginTransaction();
//5.操作
District dis=new District(100,"海淀区");
session.save(dis);
//6.提交 回滚
tx.commit();//tx.rollback();
//7.释放资源
Ⅱ 什么是动态连接数据DLL,静态链接数据库LIB
动态链接库(指的是运行时动态加载),当你运行一个可执行文件时(exe),该exe会调用系统API (Loadlibrary)去加载某个dll,从而使用其中的函数或数据,
静态链接库(lib),是指在编译一个exe的时候,编译器去加载的库,这样就直接将要用的函数或数据直接编译到exe中,成为一个整体,方便转移,但体积大
Ⅲ c# 数据库动态链接!
你可以在自己的bin目录下新建文件(如.txt,.dat,.ini,.config都可以)
我这边以.ini为例说下:
( 下面等号右边的 DataSource = D:\zmd\自己的例子ileLostOrNot\frmDataBaseChange\bin\Debug\Data\地质灾害查询统计数据库.mdb 这
里是我的数据库的绝对路径,(用户)要修改就是在这里(修改成自己的~~,很方便的~))
--------------------------------------------------你在.ini文件中写如下代码,从下行开始复制,这行不要
;用户自行连接字符串strConnetion
[UserManagestrConnetion]
Source =D:\zmd\自己的例子\FileLostOrNot\frmDataBaseChange\bin\Debug\Data\地质灾害查询统计数据库.mdb
-----------------------------------------------------------------------------------到上面为止,这行不要
下面是你程序中的代码:
首先引用中添加(Nini.dll)文件(没有可以找我要,也可以自己去下),再引用空间
using Nini.Config;
using System.Data.SqlClient;
某个事件中添加如下代码:
string configfile = Application.StartupPath + @"\iTelluro.GlobeEngine.ini";
IConfigSource ConfigSource = new IniConfigSource(configfile);
string strSource = ConfigSource.Configs["UserManagestrConnetion"].Get("Source");
string sqlConnectionString="server=(local);"+"integrated security=SSPI;"+"database=" + strSource ;//这个连接字符串不知道对不,我一般用的都Access的
(string SqlConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strSource ;//我连接的是Access的数据库,你自己修改下连接字符串吧)
SqlConnection sqlCon= new SqlConnection(SqlConnectionString);
sqlCon.Open();
//下面的你应该很熟习
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("自己的sql查询语句", sqlCon);
da.Fill(ds);
你先试下吧,不行的话,可以在hi我~~
Ⅳ Excel动态链接外部数据库
你所说的动态数据库是什么类型的文件?有几个方法可以实现,首先最接近你描述的方法是数据透视表.其次是插入对象操作.再者是公式函数SUMIF,VLOOKUP,等号等之类的操作,不太明白你具体的情况.暂时没确定哪种适合.
Ⅳ 动态数据库的什么是动态链接库
DLL三个字母对于你来说一定很熟悉吧,它是Dynamic Link Library 的缩写形式,函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。
动态链接库是一个能够被应用程序和其它的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源。由于DLL代码使用了内存共享技术,在某些地方windows也给了DLL一些更高的权限,因而DLL中可以实现一些一般程序所不能实现的功能,如实现windows的HOOK、ISAPI等。
同时,DLL还为不同语言间代码共享提供了一条方便的途径。因而DLL在编程时应用较为广泛,本文将介绍如何在 Delphi 中建立和使用DLL。
从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程和函数的原因。
当同一个unit被多个工程所引用时,则每个工程中都含有该unit的可执行代码,当含有该unit的多个工程同时执行时,unit的可执行代码会随不同工程而多次被调入内存,造成内存资源的浪费。DLL则不同,它即使被某个工程调用,编译后仍是独立的。
也就是说编译后,一个DLL库形成一个单独的可执行文件,而不与任何其它的可执行文件连接在一起,因而DLL库并不从属于某个特定的工程,当多个工程调用同一个DLL库时只有第一个工程把DLL库调入内存,其余工程并不重复调入同一个DLL库到内存,而是到同一个共享内存区读取。并且,DLL的执行代码是在程序运行期间动态调入的,而不是如unit在程序运行时就与整个工程一起调入内存。这样便可消除unit带来的相同代码多处占用内存的弊病。Delphi中DLL库的建立
在Delphi环境中,编写一个DLL同编写一个一般的应用程序并没有太大的区别。事实上作为DLL主体的DLL函数的编写,除了在内存、资源的管理上有所不同外,并不需要其它特别的手段。
一般工程文件的格式为:
program 工程标题;
uses 子句;
程序体
而DLLs工程文件的格式为:
library 工程标题;
uses 子句;
exprots 子句; 1.一般工程文件的头标用program关键字,而DLL工程文件头标用library 关键字。不同的关键字通知编译器生成不同的可执行文件。用program关键字生成的是.exe文件,而用library关键字生成的是.dll文件;
2.假如DLL要输出供其它应用程序使用的函数或过程,则必须将这些函数或过程列在exports子句中。而这些函数或过程本身必须用export编译指令进行编译。 在Delphi主菜单file 中选new...项,在弹出的窗口中双击DLL图标,便会自动给出DLL源模块框架,如下:
Library project1;
{...注释...}
uses
SysUtils, Classes;
begin
end.
接下来便可在USES和begin之间加入想在该DLL中实现的过程和函数的定义,并用export和exprots保字把它们引出,以便别的模块引用,在begin和end之间加入初始化代码,初始化代码是用来对DLL变量初始化的。应注意,即便无初始化代码begin与end也不可省略,如下例:
library minmax;
function Min(X, Y: Integer): Integer; export;
begin
if X < Y then Min := X else Min := Y;
end;
function Max(X, Y: Integer): Integer; export;
begin
if X > Y then Max := X else Max := Y;
end;
exports
Min index 1,
Max index 2;
begin
end.
经编译后,并以minmax.DLL存盘后,一个DLL库文件便形成了。 访问DLL库有两种方式,一种是静态引用,另一种是动态引用。
用静态引用这种方法装入DLL要做两件事情:为DLL 库创建一个输入单元,以及用USES把输入单元连接到要使用DLL 函数的程序模块中。为DLL库创建的输入单元与普通的单元的区别仅在于:在它的接口处声明的过程、函数,并不在它的实现部分给出真正的实现代码,而是用external关键字把过程、函数的实现细节委托给外部DLL模块。
external命令的使用语法如下:
procere /function 过程/函数名;external DLL模块名;
下面给出为上面创建的minmax.DLL库写的输入单元源文件testdll .pas,从中可看出输入单元与一般单元的一些差别,代码如下所示:
unit testdll;
interface
uses
function Min (X, Y: Integer): Integer;
function Max (X, Y: Integer): Integer;
implementation
function Min; external ‘minmax.DLL’;
function Max; external ‘minmax.DLL’;
end.
一个应用程序若想调用minmax.DLL中的函数,只须在其uses语句中加入testdll 单元即可。
动态装入DLL,要用到Windows的三个API函数。Loadlibrary、Freelibrary和GetprocAddress 。 loadlibrary函数用来装入DLL库,其调用格式如下:
function loadlobrary (DLLfileName:Pchar): THandle:
当不再需要一个DLL库时,应调用FreeLibrary函数将其释放,以空出宝贵的内存资源,其调用格式如下:
procere FreeLibrary (Libmole:THandle)
Libmole 为由LoadLibrary调用得到的DLL库句柄。在用loadlobrary 函数装入某个DLL库和调用FreeLibrary释放该DLL库之间的程序段中, 可以使用该DLL库中的过程和函数,具体使用方法是:用GetprocAddress函数把DLL库中函数的地址传递给程序中某个函数变量,再用该变量实现DLL函数的调用。GetprocAddress函数声名如下
function GetprocAddress (Libmole:THandle:procname:pchar):TFarProc:
如下例所示:
type
TTimeRec = record
Second: Integer;
Minute: Integer;
Hour: Integer;
end;
TGetTime = procere(var Time: TTimeRec);
THandle = Integer;
var
Time: TTimeRec;
Handle: THandle;
GetTime: TGetTime;
...
begin
Handle := LoadLibrary('DATETIME.DLL');
if Handle <> 0 then
begin
@GetTime := GetProcAddress(Handle, 'GetTime');
if @GetTime <> nil then
begin
GetTime(Time);
with Time do
WriteLn('The time is ', Hour, ':', Minute, ':', Second);
end;
FreeLibrary(Handle);
end;
end;
在调用动态链接库时应注意, 所需动态链接库须与应用程序在同一目录或Windows System 目录下。
动态链接库是 Windows下程序组织的一种重要方式,使用动态链接库可以极大地保护用户在不同开发工具、不同时期所做的工作,提高编程效率。
Ⅵ win10升级后,出现无法定位序数1于动态链接库,该怎么解决
解决方法:
1、首先取得权限,TrustedInstaller权限.只要将下面的注册表文件导入,就有TrustedInstaller权限。
Ⅶ 我安装数据库的时候无法找到动态链接数据库,在所有程序中也没有显示,这是什么原因呢,其他软件会显示
动态链接库(DLL)它是Dynamic Link Library 的缩写形式,:
(1)你所指的数据库路径不对。。。。重新设置一下就可以了。
(2)你的有些程序是不是在重装系统前安装的?在某些程序安装的时候,它会写一些动态连接数据库文件在C盘,也就是系统盘,你重装了系统之后就被删除了,那些程序当然不能用,建议把不能用的程序重新安装一次
(3)修复方法步骤
-------------------------------------
一、系统可以启动登陆的修复方法:(转载请注明出自Coderui的博客,谢谢)
1:把系统程序“lsass.exe”文件和系统DLL组件程序“mfc40u.dll”文件同时改名,Windows系统是支持运行着的程序改名的。(如果您能终止掉系统程序“lsass.exe”和DLL组件“mfc40u.dll”的运行也可以)。
2:复制一个正常的系统程序“lsass.exe”文件保存为“C:\WINDOWS\system32\lsass.exe”文件。
3:复制一个正常的系统DLL组件程序“mfc40u.dll”文件保存为“C:\WINDOWS\system32\mfc40u.dll”文件。
4:按照上边的1-3步骤操作完毕后,重新启动一次计算机,一切修复完毕。
5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
二、系统无法启动登陆的修复方法:(转载请注明出自Coderui的博客,谢谢)
1:使用PE盘或DOS盘启动系统(这种情况下,安全模式是无法登陆的)。
2:复制一个正常的系统程序“lsass.exe”文件保存为“C:\WINDOWS\system32\lsass.exe”文件。
3:复制一个正常的系统DLL组件程序“mfc40u.dll”文件保存为“C:\WINDOWS\system32\mfc40u.dll”文件。
4:按照上边的1-3步骤操作完毕后,重新启动一次计算机,一切修复完毕。
5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
注意:
上述三个文件一般都可以在系统“C:\WINDOWS\system32\dllcache”目录下找到正常完好的系统备份文件。如果实在没有找到的话,可以去同一个版本的其它计算机系统中拷贝。
最好是断开网络修复系统,因为该病毒为木马下载器,它会连接网络向您的计算机中安装20多款其它恶意程序(如网络游戏盗号木马等)。
因为该病毒并没有去破坏或修改您系统中的注册表,请您不要去重新注册系统DLL组件“mfc40u.dll”,不然可能会带去不必要的麻烦。
还有就是你安装的数据库是否跟电脑上现有软件有冲突,需要进行相应设置,而你一直默认安装了,如sql server 2005跟visul studio 2005/2008.
希望对您有用。