精华内容
下载资源
问答
  • 比如mysql中一字段user_name,映射到mybatis用到的类中变量名是user_name,但是java中的变量名应是userName,出现这样的情况怎么办,如果不想改自动生成的mybatis映射类,是不是只能是写两套只是变量名不同,意思一样...
  • 一、实体类或属性名与数据库关键字冲突问题1、实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 [html]view plaincopy...


    一、实体类或属性名与数据库关键字冲突问题
    1、实体类名与数据库中的关键字冲突
    比如:实体表User与oracle中的系统表冲突
    解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC  
    3.         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    4.         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    5. <hibernate-mapping package="cn.itcast.hibernate.domain">  
    6.     <class name="User" table="tb_User">  
    7.         <!-- 对象标示符,类型可以不写,hibernate自己识别 -->  
    8.         <id name="id" column="id">  
    9.             <!-- 指定主键生成方式。  
    10.         native根据方言判定生成主键的方式  
    11.          -->  
    12.              <generator class="native"/>   
    13.         </id>  
    14.           
    15.         <property name="name" column="name" />  
    16.         <property name="birthday"  />  
    17.     </class>  
    18.   
    19.   
    20. </hibernate-mapping>  

     

    解决方式2:假如与之对应的表是原来有的,不能修改表名,可以在table属性中添加`` (反引号就是1前面的按键,来指定名称)

    <class name="User" table="`User`">

    2、属性名与数据库关键字冲突问题
    解决方式1;在xml中property节点中添加column属性,指定特定的字段

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC  
    3.         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    4.         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    5. <hibernate-mapping package="cn.itcast.hibernate.domain">  
    6.     <class name="User" table="tb_User">  
    7.         <!-- 对象标示符,类型可以不写,hibernate自己识别 -->  
    8.         <id name="id" column="id">  
    9.             <!-- 指定主键生成方式。  
    10.         native根据方言判定生成主键的方式  
    11.          -->  
    12.              <generator class="native"/>   
    13.         </id>  
    14.           
    15.         <property name="name" column="name" />  
    16.         <property name="birthday"  />  
    17.     </class>  
    18.   
    19.   
    20. </hibernate-mapping>  


    解决方式2:不能修改字段名,可以在column属性中添加`` (反引号就是1前面的按键,来指定名称)

    <property name="name" column="`name`" />
    二、关于hibernate.cfg.xml的所有属性值
    可以到hibernate官网下载源码,
    hibernate-release-4.2.1.Final\project\etc\hibernate.properties.template

    hibernate-release-4.2.1.Final\project\etc\hibernate.properties文件中有所有的可配置的属性值

    三、hql的命名参数
    例子:
     /**
      * 使用HQL根据name查询方法
      * @param entity
      */
     public static void Query(String name){
      
      Session s = null;
      try {
       s=HIbernateUtil.getSession();
       //HQL:
       //这里的from后面跟的不是表名,而是对象名(类名)
       String hql = "from User as user where user.name=?"; //from Object 支持多态度
       Query query = s.createQuery(hql);
       query.setString(0, name);
       List<User> list=query.list(); //executQuery(); 
       for(User user:list){
        System.out.print(user.getName());
       }
       
       //如果确定数据最多只有一条,可以使用一下的方法简化代码
       User u= (User)query.uniqueResult();
       System.out.print("只有一条数据"+u.getName());
      } finally {
       if(s!=null){
        s.close();
       }
      }
     }
    后面的赋值的参数(索引),与?的位置一一相对应。
    如果有很多的参数,则方便赋值,很容易出错。
    解决方式:使用命名参数:name如:

     public static void Query(String name){
      
      Session s = null;
      try {
       s=HIbernateUtil.getSession();
       //HQL:
       //这里的from后面跟的不是表名,而是对象名(类名)//   String hql = "from User as user where user.name=?"; //from Object 支持多态度
       String hql = "from User as user where user.name=:name"; //使用命名参数取代?
       Query query = s.createQuery(hql);
       query.setString("name", name);
       
       //通过Query实现跨数据库的通用分页
       query.setFirstResult(0);//从第多少条开始获取数据
       query.setMaxResults(100);//共取多少条数据
       List<User> list=query.list(); //executQuery(); 
       for(User user:list){
        System.out.print(user.getName());
       }
       
       //如果确定数据最多只有一条,可以使用一下的方法简化代码
       User u= (User)query.uniqueResult();
       System.out.print("只有一条数据"+u.getName());
      } finally {
       if(s!=null){
        s.close();
       }
      }
     }
    好处:这样就不依赖位置了,只要名字对应上即可。sql中多次使用同一参数时,一次赋值即可。代码简洁
    四、Query接口的分页查询
    解释说明:每个数据库都用不同的分页方式,hibernate通过在hibernate.cfg.xml中配置
    <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property><!-- 方言 -->以识别不同数据库,使低层使用相应的分页方式
    //通过Query实现跨数据库的通用分页
       query.setFirstResult(0);//从第多少条开始获取数据
       query.setMaxResults(100);//共取多少条数据
    好处:Query接口中的这两个方法,实现了通用的分页方式,增加了程序的可移植性。

    转载于:https://www.cnblogs.com/tian830937/p/4495807.html

    展开全文
  • 一、实体类或属性名与数据库关键字冲突问题 1、实体类名与数据库中的关键字冲突 比如:实体表User与oracle中的系统表冲突 解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 <!DOCTYPE ...


    一、实体类或属性名与数据库关键字冲突问题
    1、实体类名与数据库中的关键字冲突
    比如:实体表User与oracle中的系统表冲突
    解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.itcast.hibernate.domain">
    	<class name="User" table="tb_User">
    		<!-- 对象标示符,类型可以不写,hibernate自己识别 -->
    		<id name="id" column="id">
    			<!-- 指定主键生成方式。
            native根据方言判定生成主键的方式
             -->
    			 <generator class="native"/> 
    		</id>
    		
    		<property name="name" column="name" />
    		<property name="birthday"  />
    	</class>
    
    
    </hibernate-mapping>
    
    

    解决方式2:假如与之对应的表是原来有的,不能修改表名,可以在table属性中添加`` (反引号就是1前面的按键,来指定名称)

    <class name="User" table="`User`">

    2、属性名与数据库关键字冲突问题
    解决方式1;在xml中property节点中添加column属性,指定特定的字段

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.itcast.hibernate.domain">
    	<class name="User" table="tb_User">
    		<!-- 对象标示符,类型可以不写,hibernate自己识别 -->
    		<id name="id" column="id">
    			<!-- 指定主键生成方式。
            native根据方言判定生成主键的方式
             -->
    			 <generator class="native"/> 
    		</id>
    		
    		<property name="name" column="name" />
    		<property name="birthday"  />
    	</class>
    
    
    </hibernate-mapping>
    
    


    解决方式2:不能修改字段名,可以在column属性中添加`` (反引号就是1前面的按键,来指定名称)

    <property name="name" column="`name`" />
    二、关于hibernate.cfg.xml的所有属性值
    可以到hibernate官网下载源码,
    hibernate-release-4.2.1.Final\project\etc\hibernate.properties.template

    hibernate-release-4.2.1.Final\project\etc\hibernate.properties文件中有所有的可配置的属性值

    三、hql的命名参数
    例子:
     /**
      * 使用HQL根据name查询方法
      * @param entity
      */
     public static void Query(String name){
      
      Session s = null;
      try {
       s=HIbernateUtil.getSession();
       //HQL:
       //这里的from后面跟的不是表名,而是对象名(类名)
       String hql = "from User as user where user.name=?"; //from Object 支持多态度
       Query query = s.createQuery(hql);
       query.setString(0, name);
       List<User> list=query.list(); //executQuery();
       for(User user:list){
        System.out.print(user.getName());
       }
       
       //如果确定数据最多只有一条,可以使用一下的方法简化代码
       User u= (User)query.uniqueResult();
       System.out.print("只有一条数据"+u.getName());
      } finally {
       if(s!=null){
        s.close();
       }
      }
     }
    后面的赋值的参数(索引),与?的位置一一相对应。
    如果有很多的参数,则方便赋值,很容易出错。
    解决方式:使用命名参数:name如:

     public static void Query(String name){
      
      Session s = null;
      try {
       s=HIbernateUtil.getSession();
       //HQL:
       //这里的from后面跟的不是表名,而是对象名(类名)//   String hql = "from User as user where user.name=?"; //from Object 支持多态度
       String hql = "from User as user where user.name=:name"; //使用命名参数取代?
       Query query = s.createQuery(hql);
       query.setString("name", name);
       
       //通过Query实现跨数据库的通用分页
       query.setFirstResult(0);//从第多少条开始获取数据
       query.setMaxResults(100);//共取多少条数据
       List<User> list=query.list(); //executQuery();
       for(User user:list){
        System.out.print(user.getName());
       }
       
       //如果确定数据最多只有一条,可以使用一下的方法简化代码
       User u= (User)query.uniqueResult();
       System.out.print("只有一条数据"+u.getName());
      } finally {
       if(s!=null){
        s.close();
       }
      }
     }
    好处:这样就不依赖位置了,只要名字对应上即可。sql中多次使用同一参数时,一次赋值即可。代码简洁
    四、Query接口的分页查询
    解释说明:每个数据库都用不同的分页方式,hibernate通过在hibernate.cfg.xml中配置
    <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property><!-- 方言 -->以识别不同数据库,使低层使用相应的分页方式
    //通过Query实现跨数据库的通用分页
       query.setFirstResult(0);//从第多少条开始获取数据
       query.setMaxResults(100);//共取多少条数据
    好处:Query接口中的这两个方法,实现了通用的分页方式,增加了程序的可移植性。

    展开全文
  • mysql> SELECT desc,status,play_time,push_type, 'interval' FROM cms_push; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 700 ...Current dat...

     

    mysql> SELECT desc,status,play_time,push_type, 'interval' FROM cms_push;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id: 700
    Current database: xxx_cms
    
    ERROR 1064 (42000): 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 'desc,status,play_time,push_type, 'interval' FROM cms_push' at line 1

    问题很简单,desc和interval是关键字,需要加上引号,以后起名要注意了

    mysql> SELECT 'desc',status,play_time,push_type,'interval' FROM cms_push;

    转载于:https://www.cnblogs.com/iwangzheng/p/3867659.html

    展开全文
  • 比如你映射了一个名称为key的属性,这是数据库所不允许的,因为它是数据库的关键字。 因此,你必须为此属性添加一对符号,即键盘上“1”键的左边的按键。 转载于:...

    比如你映射了一个名称为key的属性,这是数据库所不允许的,因为它是数据库的关键字。

    因此,你必须为此属性添加一对符号,即键盘上“1”键的左边的按键。

     

    转载于:https://www.cnblogs.com/wuyou/p/3435298.html

    展开全文
  • 数据库关系模式冲突类型 属性冲突:属性值的类型不同或取值范围不同或取值集合不同。...命名冲突:不同意义的对象名称相同 结构冲突:例如“课程”在某一局部中被当做实体,在另外一局部中被当做属性 ...
  • 在配置文件上加上 global-config: db-column-underline: false mybatis-plus: mapper-locations: classpath:cn/itsource/hrm/mapper/*Mapper.xml type-aliases-package: cn.itsource.hrm.domain,... ...
  • springboot 报InvocationTarget...自动驼峰法命名转换: 一:驼峰法的用途: ssm项目中在mybatis配置文件中添加以下配置,可以将数据库中user_name转化成userName与实体类属性对应,----》如果数据库使用如user_n...
  • 不要用Class_xxx作为数据库的名字 今天在用jpa做save接口的时候,一直报错,打开后端的hql看了下,发现Class_Name是null,???,我打印了前端传过去的对象,明明有class_name属性啊,于是我觉得可能是字段名字冲突就...
  • 首先Jar包A中有实体类TEvent 对应数据库表 event,Jar包B中有实体类TEvent对应的数据库表event,当A需要引入B的依赖时候,AB两个Jar包中就会有实体类命名冲突,如果AB中的JPARepository命名相同会直接启动挂掉,...
  • 数据库

    2019-09-22 15:12:33
    1.数据库的特点:海量存储,查找速度快,并发性问题控制,安全性,数据完整性(保存在数据库中的数据是正确的,真实的。) ...*避免命名冲突 *安全性更高 4.关系数据库中的关系指的就是表。 5....
  • 为提高开发效率,降低开发门槛,帮助新员工快速搭建开发环境,避免工具软件使用冲突影响工作,对开发设计人员使用的日常开发工具,进行如下约定: 数据库:服务器端为Oracle 11gR1,客户端版本要求10g以上 数据库...
  • 项目命名规范

    2012-06-30 09:47:40
    4、 字段:保持和属性名一致(尽量不要起和数据库命名冲突) 5、 用层来划分包:  com.csy.bbs.action :里面有所有的action,以下类推  com.csy.bbs.model(bean)   com.csy.bbs.servi
  • HiveQL数据库

    2018-05-08 23:21:47
    Hive中数据库的概念本质上仅仅是表的一个目录或者命名空间,使用数据库可以表明表命名冲突。 如果用户没有显式指定数据库,那么将会使用默认的数据库default。 1 创建数据库 创建一个数据库与SQL语言一样 ...
  • 数据库设计

    2021-05-06 16:23:13
    主要冲突:属性冲突、命名冲突和结构冲突 外键、主键、类型等等 数据库物理设计: 为所设计的数据库选择合适的存储结构和存取路径; 常用的存取方法:索引方法 + 聚簇方法 + hash方法 数据库实施阶段: 选择数据库...
  • 1.创建数据库 create database [if not exists] `数据库...给数据库命名⼀定要习惯性加上反引号, 防⽌和关键 字冲突 2.查看数据库 show databases; 3.选择数据库 use `数据库名`; 4.创建数据库 create database ...
  • 设计约定(编码规定) >原则:简单就是美 ...>字段的命名:保持和属性名一致(尽量不要起名和数据库命名冲突) id >用层来划分包:com.bbs.action、com.bbs.model、com.bbs.service、com.bbs.DTO(VO) >Action
  • [code] 去google struts2 命名规范 约定优于配置: 明晰就是美 ...表的命名: Model_名(使用下划线,原因是数据库这地方不区分大小写,不要...(使用下划线,防止和数据库命名冲突) 3。用层来划分包 4。所...
  • 数据库系统

    2021-05-19 19:13:10
    命名冲突:包括同名异义和异名同义。 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。 一个实体型转换为一个关系模式 1
  • 命名规则a) 原则:简单就是美b) 数据库的名称 :项目名称c) 表的命名:_Model名 {_+对应内容的英文名词(驼峰标识或者全大写) },如:_Topicd) 字段:保持和属性名一致(尽量不要起名和数据库命名冲突)e) 用...
  • 数据库整理

    2013-10-28 21:03:26
    数据库笔记 创建一数据 至少 添加了两个文件 .mdf主文件和.ldf日志文件 管理系统  一个系统创建一个数据库datebase 便于个性化管理 避免命名冲突 安全性更高 表是由行和列组成的 一个表表示一个实
  • 什么是Mybatis: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目... MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注...
  • 数据库恢复技术

    2020-09-07 10:34:45
    命名冲突 结构冲突 在DBMS中实现事务持久性的子系统是恢复管理子系统。 后援副本的作用是故障后的恢复。 事务日志用于保存对数据的更新操作。 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括日志...
  • 6.数据库设计

    2021-03-12 19:29:09
    数据库设计的基本步骤 需求分析 概念结构设计 逻辑结构设计 物理结构设计 ...命名冲突 结构冲突 对关系模式进行必要分解,提高数据操作效率和存储空间的利用率。 常用分解方法 水平分解 垂直分解 ...
  • 数据库中schema与catalog简介

    千次阅读 2016-10-04 23:48:38
    按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,主要用来解决命名冲突问题。 从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401
精华内容 160
关键字:

数据库命名冲突