- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在Nhibernate中写了一个测试mysql连接的项目。此异常显示..
NHibernate.HibernateException: 'You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right
syntax to use near 'Character (Id VARCHAR(40) not null, Name
VARCHAR(255), HealthPoints INTEGER, Man' at line 1'
hibernate.cfg.xml
文件是
<?xml version="1.0" encoding="utf-8"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">
Database=nhibernate;Data Source=localhost;User Id=ajoy;Password=ajoy
</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
模型类是
namespace NhibernateTest.Domain
{
public class Character
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual int HealthPoints { get; set; }
public virtual int Mana { get; set; }
public virtual string Profession { get; set; }
}
}
映射 xml 是..
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NhibernateTest"
namespace="NhibernateTest.Domain">
<class name="Character">
<id name="Id">
<generator class="guid" />
</id>
<property name="Name" />
<property name="HealthPoints" />
<property name="Mana" />
<property name="Profession" />
</class>
</hibernate-mapping>
我的主课是
class Program
{
static void Main(string[] args)
{
LoadNHibernateCfg();
/* CRUD */
CharacterRepository repo = new CharacterRepository();
//CREATE!
var MikeAbyss = new Character { Name = "MikeAbyss", HealthPoints = 700, Mana = 10, Profession = "Knight" };
repo.Add(MikeAbyss);
//READ!
Character mike = repo.GetCharacterByName("MikeAbyss");
//UPDATE!
mike.Name = "Mike";
repo.Update(mike);
//DELETE!
repo.Delete(mike);
Console.ReadKey();
}
public static void LoadNHibernateCfg()
{
var cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly(typeof(Character).Assembly);
SchemaExport schemaExport = new SchemaExport(cfg);
schemaExport.SetDelimiter(";");
schemaExport.Execute(true, true, false);
}
我试过不使用 schemaExport.SetDelimiter(";");
但仍然是同样的错误。控制台的输出是
drop table if exists Character;
create table Character (
Id VARCHAR(40) not null,
Name VARCHAR(255),
HealthPoints INTEGER,
Mana INTEGER,
Profession VARCHAR(255),
primary key (Id)
);
Mysql版本是5.7.14。我该如何解决这个问题?
最佳答案
您的一个或多个标识符可能是 reserved words .你需要quote them : 定义用反引号包围的数据库名称。
例如,引用Character
和Name
:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NhibernateTest"
namespace="NhibernateTest.Domain">
<class name="Character" table="`Character`">
<id name="Id">
<generator class="guid" />
</id>
<property name="Name" column="`Name`" />
<property name="HealthPoints" />
<property name="Mana" />
<property name="Profession" />
</class>
</hibernate-mapping>
关于c# - Nhibernate 中的 MySqlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43708405/
我正在尝试使用 NHibernate 来连接我的 MySQL,但本地主机数据库的连接仍然存在问题。 异常(exception): MySql.Data.MySqlClient.MySqlExcepti
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎偏离主题,因为缺乏足够的信息来诊断问题。更详细地描述您的问题或 include
我正在尝试使用以下代码片段打开与 MySql 数据库的连接: string connectionString = "Server=ip_number;Database=database_name;Ui
所以我捕获了 MySqlException,因为我知道我尝试输入重复的主键。如果我调用消息,它会显示例如: "Duplicate entry '2' for key 'PRIMARY' 所以它知道哪个
我想将系统日志保存在MySQL数据库中,这是我的代码 EventRecord record; while ((record = reader.ReadEvent()) != null) { u
我正在尝试在 LONGTEXT 列中插入字符串。字符串长度为 75402,字节数为 150804(约 147 KB) 插入记录时抛出异常数据对于列来说太长。 MySQL文档规定LONGTEXT最多可以
我在Nhibernate中写了一个测试mysql连接的项目。此异常显示.. NHibernate.HibernateException: 'You have an error in your
这个问题已经有答案了: Must declare the table variable @table (3 个回答) 已关闭 7 年前。 我正在编写一段非常简单的代码,但无法弄清楚为什么这些参数对我的
我正在使用 asp.net MVC 和 mysql 数据库。我安装了 MySql.Data v8.0.16.0 和 MySql.Data.EntityFramework v8.0.16.0。 在 we
在Visual Studio Pro上完成代码后,错误列表栏上没有错误。因此,当我运行代码时,如以下代码所示, pop 了未处理的异常窗口: MySql.Data.MySqlClient.MySqlE
无法弄清楚我的代码出了什么问题。我想从 mysql 数据库中检索一个 sha256 key 。 keys table: Id(int 4) | key (varchar64) 1
所以我尝试使用该表单来更新 xampp 上的数据库。但是,当我尝试更新时,我在这部分的标题中收到错误:reader = objcommand.ExecuteReader()非常感谢所有帮助。 代码如下
代码如下所示 public HttpResponseMessage PostUser(User user) { if (ModelState.IsValid) { tr
我能够很好地连接到数据库,但是当我尝试 INSERT 时,我收到了这个神秘的错误: 发生错误 0:命令执行期间遇到 fatal error 。 我已经检查过,所有参数都有值,并且它们与列标题完全匹配,
enter image description here 我正在使用 Visual Studio 编写程序。我在登录表单中收到错误。当我在网上搜索时。我找不到任何修复。我用vb.net的时候没有任何问
我有一个用 asp.net c# 和 MySQL 数据库编写的 Web 服务应用程序。我正在使用 MySQL 提供程序 (v6.9.4.0) 来获取成员资格、角色和配置文件。对于配置文件,我用它来存储
我正在使用带有 schema.sql 文件的 Spring JDBC 进行 Spring Boot 数据库初始化。我正在使用 MYSQL 如果我在 schema.sql 中创建简单的表,如下所示,它工
我遇到过这个问题: 错误:已经有一个与此连接关联的打开的 DataReader,必须先将其关闭。 请看我的代码: Dim sqlQuery As String = "SELECT * FROM us
我正在尝试创建一个跨越两个数据库表的新 UserFingerprintModel。一个来自 PaymentFingerprint,一个来自 PaymentFingerprintGrant。对于我的服务
如何从.net身份代码的自动脚手架中获得重复条目错误: public async Task OnPostAsync(string returnUrl = null) {
我是一名优秀的程序员,十分优秀!