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

iis 发布网站内部服务器错误商城网站制作公司

iis 发布网站内部服务器错误,商城网站制作公司,河北seo推广方案,淄博网站建设公司有多少家手写 Hibernate 系列 手写 Hibernate ORM 框架 00-hibernate 简介 手写 Hibernate ORM 框架 00-环境准备 手写 Hibernate ORM 框架 01-注解常量定义 手写 Hibernate ORM 框架 02-实体 Bean 定义,建表语句自动生成 手写 Hibernate ORM 框架 03-配置文件读取, 数…

手写 Hibernate 系列

手写 Hibernate ORM 框架 00-hibernate 简介

手写 Hibernate ORM 框架 00-环境准备

手写 Hibernate ORM 框架 01-注解常量定义

手写 Hibernate ORM 框架 02-实体 Bean 定义,建表语句自动生成

手写 Hibernate ORM 框架 03-配置文件读取, 数据库连接构建

手写 Hibernate ORM 框架 04-持久化实现

手写 Hibernate ORM 框架 05-整体效果测试验证

从零手写组件系列

java 从零手写 spring ioc 控制反转

java 从零手写 spring mvc

java 从零手写 jdbc-pool 数据库连接池

java 从零手写 mybatis

java 从零手写 hibernate

java 从零手写 rpc 远程调用

java 从零手写 mq 消息组件

java 从零手写 cache 缓存

java 从零手写 nginx4j

java 从零手写 tomcat

简介

java 从零实现简易版本的 hibernate

我们已经实现了 v0.1.0 版本,本节一起来验证一下效果。

核心特性

  • 简单版本的 hibernate

  • 建表语句生成+执行

  • 插入语句生成+执行

快速开始

需要

jdk1.3+

maven 3.x+

maven 引入

<dependency><groupId>com.github.houbb</groupId><artifactId>hibernate</artifactId><version>0.1.0</version>
</dependency>

入门测试

环境准备

首先准备一个 mysql 对应的测试库 hibernate

mysql> create database hibernate;
Query OK, 1 row affected (0.00 sec)mysql> use hibernate;
Database changed

配置信息

我们配置一下 hibernate.cfg.xml 为对应的数据库访问信息:

<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration><!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property><property name="connection.username">root</property><property name="connection.password">123456</property>
</hibernate-configuration>

建表语句

SQL 的生成:

Table table = new Table();
User user = new User();
System.out.println(table.buildCreateTableSQL(user));

结果为:

create table t_user (id BIGINT AUTO_INCREMENT, name VARCHAR(255), password VARCHAR(255), myAge INTEGER , createOn DATETIME, modifiedOn DATETIME , PRIMARY KEY  (`id`) );

执行建表

我们可以直接通过程序建表

Session session = new Session();
Table table = new Table();
User user = new User();Connection connection = session.createConnection();
PreparedStatement preparedStatement = connection.prepareStatement(table.buildCreateTableSQL(user));
preparedStatement.execute();

执行后:

mysql> show tables;
+---------------------+
| Tables_in_hibernate |
+---------------------+
| t_user              |
+---------------------+
1 row in set (0.00 sec)

表结构

mysql> desc t_user;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name       | varchar(255) | YES  |     | NULL    |                |
| password   | varchar(255) | YES  |     | NULL    |                |
| myAge      | int(11)      | YES  |     | NULL    |                |
| createOn   | datetime     | YES  |     | NULL    |                |
| modifiedOn | datetime     | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

PS: 这里可以看到对应的字段没有驼峰转下划线

数据的插入

插入语句

User user = new User();
user.setId(3L);
user.setName("ryo");
user.setAge(21);
user.setPassword("123456");
user.setCreateOn(new Date());
user.setModifiedOn(new Date());
System.out.println(new Session().buildInsertSQL(user));

结果为:

INSERT INTO t_user ( id,name,password,myAge,createOn,modifiedOn ) VALUES ( '3','ryo','123456','21','2024-07-30 00:37:36','2024-07-30 00:37:36' ) ;

程序插入

也可以程序直接插入

User user = new User();
user.setId(3L);
user.setName("ryo");
user.setAge(21);
user.setPassword("123456");
user.setCreateOn(new Date());
user.setModifiedOn(new Date());new Session().save(user);

效果

mysql> select * from t_user;
+----+------+----------+-------+---------------------+---------------------+
| id | name | password | myAge | createOn            | modifiedOn          |
+----+------+----------+-------+---------------------+---------------------+
|  3 | ryo  | 123456   |    21 | 2024-07-30 00:38:14 | 2024-07-30 00:38:14 |
+----+------+----------+-------+---------------------+---------------------+
1 row in set (0.00 sec)

ROAD-MAP

  • 添加基于 gen-case 的测试用例

  • 建表对应的字段没有驼峰转下划线

  • CRUD

  • list 等常见查询

http://www.yayakq.cn/news/350152/

相关文章:

  • 信息网站建设费使用年限网页制作主题成品
  • 学广告设计难不难微博seo营销
  • 衡水做网站价格郴州网站制作公司在哪里
  • 开淘宝店做网站开发网络营销4c策略是什么
  • 网站版本功能列表设计师培训内容
  • 学校网站建设具体分工wordpress define
  • 网站怎么做用qq登录接入小程序api接口怎么对接
  • 南宁手机网站制作做网站用什么ps软件
  • 网站建设专业特长acaa平面设计师证书报名费
  • 长沙市住房和建设局官方网站wordpress frame主题
  • 外贸多语言网站建设如何删除在凡科上做的网站
  • 纺织品公司网站建设火车头采集 wordpress
  • 化工网站制作苏州做网站公司怎么样
  • 网站开发人员分配广州市网站制作
  • 哪些网站页面简洁建材网站建设
  • 牛商网专注营销型网站建设网站忧化 推广同时做
  • 鱼台建设局网站长春火车站地下停车场收费标准
  • wordpress mssql上海seo推广平台
  • 定制营销型网站什么意思全网营销推广方案
  • 网站维护推广表电子商务网站建设评价论文
  • 如何做软件类型的网站惠阳做网站公司
  • 重庆市建设工程信息官方网站编程网站scratch
  • 如何建设线报网站wordpress用户管理解决方案
  • 如何做网站流量域名到期查询
  • 重庆网站建站系统哪家好吉林省吉林市是几线城市
  • 里水网站设计wordpress 增加页面
  • 做网站版权怎么写什么是网络营销有哪些特点
  • 青岛工程建设管理信息网站下载玉溪市住房城乡建设局网站
  • 怎么做网站推广林芝地区晋城做网站的公司
  • 北京wap网站开发如何查询网站空间商