当前位置: 首页 > news >正文

无锡网络公司可以制作网站百度平台商家

无锡网络公司可以制作网站,百度平台商家,我想在购物网站做代理,龙岩淘宝设计文章目录简介配置文件hibernate.cfg.xml映射配置文件主键生成方式主键生成方式的配置identitysequencenativeincrementassigned映射类型使用 Hibernate 实现 CRUD简介 Hibernate是对象关系映射#xff08;ORM#xff0c;Object RelationShip Mapping#xff09;框架#x… 文章目录简介配置文件hibernate.cfg.xml映射配置文件主键生成方式主键生成方式的配置identitysequencenativeincrementassigned映射类型使用 Hibernate 实现 CRUD简介 Hibernate是对象关系映射ORMObject RelationShip Mapping框架Hibernate 用于系统中的封装数据访问层我们称之为数据访问层框架或叫持久层框架。 这个框架会自动将数据库查询出来的数据行封装成所映射的Java类对象也会将Java类对象中的数据根据所映射的数据表拼接成SQL语句从而可以很便捷地存储数据、更新数据、删除数据。 实际上 Hibernate 的底层是调用 JDBC 有关 API 来访问数据库的。只是先将访问数据库的参数、数据库配置参数以及 Java 类与数据表的对应关系等全部记录在 xml 文件中然后再调用 Hibernate 有关 API 去解析这些配置文件从而实现数据库的访问以及数据的自动封装。 配置文件 关于配置文件的详解参考这些文章 1.http://t.zoukankan.com/rodge-run-p-6415552.html 2.https://blog.csdn.net/qq_45874814/article/details/121461885 3.https://blog.csdn.net/weixin_44048823/article/details/106762026 4.https://www.cnblogs.com/rodge-run/p/6415552.html 5.https://blog.csdn.net/qq_34598667/article/details/86496008 hibernate.cfg.xml 这个 Hibernate 的核心配置文件主要配置数据库的连接参数以及数据库运行时的一些参数如下所示 ?xml version1.0 encodingUTF-8? !DOCTYPE hibernate-configuration PUBLIC-//Hibernate/Hibernate Configuration DTD 3.0//ENhttp://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd hibernate-configurationsession-factory!--第一部分: 配置数据库信息,必须有,这里使用的是postgre数据库 --property namehibernate.connection.driver_classcom.mysql.cj.jdbc.Driver/propertyproperty namehibernate.connection.urljdbc:mysql://localhost:3306/test/propertyproperty namehibernate.connection.usernameroot/propertyproperty namehibernate.connection.passwordlwx83129/property!--第二部分: 配置hibernate信息, 输出数据库SQL语句可选 --property namehibernate.show_sqltrue/propertyproperty namehibernate.format_sqltrue/property!-- 自动创建表和更新 --property namehibernate.hbm2ddl.autoupdate/property!-- 配置方言 --property namehibernate.dialecorg.hibernate.dialect.MySQLDialect/property!-- 配置threadLocal --property namehibernate.current_session_context_classthread/property!--第三部分: 核心配置文件关联映射文件 --mapping resourceUser.hbm.xml//session-factory /hibernate-configuration映射配置文件 这个配置文件主要就是配置Java 实体类与数据表的对应关系配置文件的命名规则为类名.hbm.xml例如User.hbm.xml。配置内容如下所示 ?xml version1.0? !DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//ENhttp://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd hibernate-mapping!--name代表全类名table代表数据库中表的名字--class namepriv.lwx.hibernate.basic.entity.User tableuser!--id是实体类中的与对应数据表中作为主键的列相对应的属性--id nameid typejava.lang.Integer!--column是对应的数据表中作为主键的列--column nameid uniquetrue/generator classidentity//id!--property用来配置类的其它属性与数据表中的列的映射关系--property generatednever lazyfalse nameaccountName typejava.lang.Stringcolumn nameaccount_name//propertyproperty generatednever lazyfalse namepassword typejava.lang.Stringcolumn namepassword//propertyproperty generatednever lazyfalse namerealName typejava.lang.Stringcolumn namereal_name//propertyproperty generatednever lazyfalse nameage typejava.lang.Integercolumn nameage//propertyproperty generatednever lazyfalse namegender typejava.lang.Stringcolumn namegender//propertyproperty generatednever lazyfalse namebirthday typejava.util.Datecolumn namebirthday//propertyproperty generatednever lazyfalse nameinfo typejava.lang.Stringcolumn nameinfo//property/class /hibernate-mapping主键生成方式 常用的主键生成方式有如下几种 1identity 用于自动生成主键方式除了 Oracle 不支持其他数据库一般都支持较常用 2sequence Oracle 中使用用序列生成主键值 3native 主键生成方式如果是 native那就看配置文件 hibernate.cfg.xml 中方言 property name dialect 是什么如果方言是 MySQL相当于 identity如果方言是 Oracle相当于 sequence 4increment 不常用 5assigned 不常用手动生成主键 id 的值 主键生成方式的配置 identity 如果数据库支持自动生成主键方式则可以使用 identityMySQL 数据库常用此生成方式。 !--id是实体类中的与对应数据表中作为主键的列相对应的属性-- id nameid typejava.lang.Integer!--column是对应的数据表中作为主键的列--column nameid uniquetrue/!--主键值的生成方式--generator classidentity/ /idsequence Oracle 数据库常用。 创建表 t_foo 和序列 foo_seq SQL CREATE TABLE t_foo( 2 t_id number(11) NOT NULL, 3 t_value varchar(50) NOT NULL, 4 PRIMARY KEY (t_id)); Table created.SQL create sequence foo_seg; Sequence created. SQL修改配置文件 hibernate.cfg.xml修改为连接 Oracle 数据库 将表的主键值的生成方法改为 sequence如下所示 native native 根据配置文件中的方言选择是 identity 还是 sequence。 !-- 用来指明主键的生成方式 -- generator classnative param namesequencefoo_seq/param /generator如果是 MySQL 数据库param namesequencefoo_seq/param 是不起作用的但也不会出错如果是 Oracle 数据库param namesequencefoo_seq/param 就会起作用。 increment 不常用如果主键生成方式为 increment新建数据库表时不需要写“auto_increment”插入数据时同样也不需要指定 ID Foo foo new Foo(); foo.setValue(foo_value1); session.save(foo);查看控制台Hibernate 执行了 2 条 SQL increment 生成主键方式是先 “select max(t.id) from t_foo”从 t_foo 中找到最大的 id 之后将 max(t_id) 加 1这样就保证了主键唯一。但是这样有风险当并发访问时会有风险。不建议使用。 assigned 不会自动生成主键值需要用户自己指定使用也较少。 必须手动设置 ID如下代码所示 // 需要指定id Foo foo new Foo() foo.setId(9999); foo.setValue (foo_value2); session.save(foo)映射类型 参考文章https://blog.csdn.net/yzy199391/article/details/80536419 使用 Hibernate 实现 CRUD package priv.lwx.hibernate.basic.entity;import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.query.Query; import org.junit.jupiter.api.Test; import priv.lwx.hibernate.basic.util.HibernateUtils;import java.util.List;/*** CRUD演示** author liaowenxiong* date 2022/6/17 07:43*/public class UserTest {/*** 往数据表插入一条记录** param* return* throws* author liaowenxiong* date 2022/6/17 09:00*/Testpublic void test1() {User user new User();user.setAccountName(liaowenxiong);user.setRealName(廖文雄);user.setPassword(123);// 调用Hibernate的API,用于装载Hibernate配置文件Configuration cfg new Configuration();// 调用无参的方法configure会默认装载目录classes下的Hibernate配置文件hibernate.cfg.xml及mapping文件cfg.configure();SessionFactory factory cfg.buildSessionFactory();// 通过Session工厂类获取Session对象Session session factory.openSession();// 通过Session对象获取事务对象Transaction tx session.getTransaction();// 开启事务tx.begin();// 保存数据session.save(user);// 提交事务tx.commit();// 关闭Sessionsession.close();}/*** 删除数据表中的指定记录** param* return* throws* author liaowenxiong* date 2022/6/17 09:33*/Testpublic void test2() {User user new User();user.setId(8);// user.setAccountName(liudehua); // 不会按accountName删除Session session HibernateUtils.openSession();/*// 获取事务对象Transaction tx session.getTransaction();// 开启事务tx.begin();*/// 方法beginTransaction会完成上面的两个操作Transaction tx session.beginTransaction();// 方法delete会获取对象user的属性ID的值然后自动拼接一条删除的SQL语句调用JDBC的API// 将SQL语句发送给数据库执行session.delete(user);tx.commit();session.close();}/*** 更新指定的数据行** param* return* throws* author liaowenxiong* date 2022/6/17 09:42*/Testpublic void test3() {User user new User();user.setId(13);user.setAccountName(liaowenxiong);user.setRealName(雄霸天下);Session session HibernateUtils.openSession();Transaction tx session.beginTransaction();session.update(user);tx.commit();session.close();}/*** 查询指定数据表** param* return* throws* author liaowenxiong* date 2022/6/17 09:58*/Testpublic void test4() {Session session HibernateUtils.openSession();// 方法createQuery并没有调用JDBC访问数据库只是拼接了一条查询SQL语句而已// User是类名from User是Hibernate提供的面向对象的查询语言HQLHibernate Query Language语言。Query query session.createQuery(from User);// 方法list调用JDBC的API访问数据库再将获取到的数据封装成List对象返回ListUser users query.list();// 所以这里就可以关闭Session了session.close();for (User user : users) {System.out.println(user);}} }
http://www.yutouwan.com/news/153404/

相关文章:

  • 推广网站建设铜川网站开发
  • app开发与网站开发seo综合查询怎么用
  • 网站集约化建设规划中企动力技术支持网站
  • 湛江论坛建站模板万网手机网站
  • 天津北京网站建设公司网站规划开发前景
  • 公司没有销售网站怎么做业务单位网站的作用
  • 金属建材企业网站建设方案东莞经济贸易学校网络营销
  • 网站开发工程师的经验百度教育官网登录入口
  • 中英双语网站模板跨境电商平台有哪些?列举5个
  • 在线做六级阅读网站企业网络推广宣传方案
  • 个人制作的网站模板怎么建设电影网站
  • 萌宝宝投票网站怎么做响应式视频网站模板下载
  • 找别人做网站江门模板建站系统
  • 网站开发需要服务器吗网站域名 如何选择
  • 兰州工程建设信息网站wordpress侧边导航主题
  • 电商网站开发进度表知名广州网站建设
  • 网站开发可以申请著作权吗wordpress+机械模板
  • 上海做网站服务商网页平台设计
  • 什么是网站风格策划的重点专业的seo培训机构
  • 高校网站网页设计河南工程信息网官网
  • 分页网站城乡建设网官方网站
  • 做网站合肥镇江网站排名优化费用
  • 网站开发商业计划书做外贸找客户最好用的网站
  • 哪里做网站比较好短网址在线生成短网址
  • 网站建设这个职业是什么响应式布局设计
  • 电子政务与网站建设工作总结wordpress框架是什么意思
  • 网站开发 作品理念建网站开发国外客户
  • 宁德公司做网站南京网站建设网站
  • 律师做网站推广有用吗笑话网站模版
  • 网站正则表达式怎么做在线制作图片加闪光字