Hibernate实现向数据库插入一条数据全过程(Study By Example)
1.数据库(直接在cmd下进入数据库操作亦可)
(1)启动Navicat for MySQL
(2)打开连接,创建一个数据库,名为testdb
(3)新建表user1,表结构如图所示
2.数据库池
(1)启动MyEclipse
(2)进入后在界面右上角切换到MyEclipse Database Explorer视图,如图所示
(3)在左边的DB Browser的空白处单击鼠标右键新建数据库池,如图所示
(4)在弹出的窗口中填入与需要连接的数据库的相关信息,范例如图所示
(5)点击窗口左边的Test Driver按钮,若出现如图所示的窗口,则数据库连接成功,点击Finish即可
3.Web项目
(1)切换回MyEclipse Java Enterprise视图,创建一个Web project,如图所示
(2)为该项目添加Hibernate特性,过程如图所示
4.表映射
(1)切换到MyEclipse Database Explorer视图
(2)打开TESTPOOL连接,找到需要建立映射的表,右键点击“Hibernate逆向工程”,如图所示
(3)在弹出的窗口中选择刚创建的Web项目,填入需要放入的包名,勾选相应选项,如图所示,然后点击Next
(4)在Id Generator处选择identity,然后点击finish
(5)切换回MyEclipse Java Enterprise视图,打开hibernate.cfg.xml文件,在session-factory中的最后面加入如下两句代码:
<property name="show_sql">true</property>
<mapping resource="org/vo/User.hbm.xml"/>
(其中前一句若不想查看sql语句可不写。但后一句若没有,则运行时会报错,因为hibernate要通过它找到映射文件。)
5.测试
(1)新建包test,新建类HibernateTest,代码如下
package test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.vo.User; public class HibernateTest {
public static void main(String[] args) { Configuration cf=new Configuration();
SessionFactory sf=cf.configure().buildSessionFactory();
Session s=sf.openSession();
Transaction t=s.beginTransaction();
User u=new User();
u.setUsername("Milk");
u.setPassword("123");
s.save(u);
t.commit();
s.close();
}
}
(2)保存,右键作为Java Application运行,则能看到Console窗口出现如下信息
(3)打开数据库,则能看到数据已经插入进去了
至此,就完成了一个最最最简单的Hibernate项目了。
为了完成这篇文章花了3个小时,也是为了尽量让过程正确。
由于我也是初学,这篇文章只是作为入门参考,若有什么不对的地方还请各位指出,感激不尽。
如果之后学得深了,我会在这个过程中添加一些解释,以便理解。
Hibernate实现向数据库插入一条数据全过程(Study By Example)的更多相关文章
- 向Oracle数据库插入一条数据
这几天搞了一下Oracle数据库.可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 .既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Orac ...
- java向数据库插入N条数据
为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; i ...
- 你向 Mysql 数据库插入 100w 条数据用了多久?
阅读本文大概需要 2 分钟. ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程 ...
- 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二
这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...
- 【JDBC】使用Spring提供的JDBCTemplate通过PrepareStatement向MySql数据库插入千万条数据,耗时32m47s,速度提升有限
数据库环境还和原来一样,只是从Statement换成了PrepareStatement,都说PrepareStatement因为预编译比Statement快,但是实际运行真快不了多少. 代码如下: p ...
- Hibernate的配置跟简单创建一个表并插入一条数据
首先官网下载一个hibernate的架包,由于时间关系,博主已经分享到了百度网盘:https://pan.baidu.com/s/1Mw0Og3EKnouf84Njz9UicQ,提取码lens Hib ...
- 数据库一次性插入10w条数据,怎么插入效率快
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量 ...
- 使用JDBC向数据库中插入一条数据
原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * cre ...
- oracle 向数据库同时插入多条数据
oracle 与 mysql 不同. mysql 可以直接插入多条数据的操作: 采用 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 或者 INSERT ...
随机推荐
- mongoDB(3) mapReduce
mapReduce是大数据的核心内容,但实际操作中别用这个,所谓的mapReduce分两步 1.map:将数据分别取出,Map函数调用emit(key,value)遍历集合中所有的记录,将key与va ...
- kafka 安装
kafka是一个分布式的消息缓存系统 kafka集群中的服务器都叫做broker kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和brok ...
- 快速掌握Flyway
什么是Flyway? Flyway is an open-source database migration tool. It strongly favors simplicity and conve ...
- 函数类型+WINAPI+函数名(例如inline DWORD static WINAPI RecordToKeys(const DRWT& theDRWT,WTSBH* pKey,DWORD dwMaxNum)
winapi标识符在WINDEF.H定义,语句如下: #define winapi __stdcall 让我们说说这个__stdcall stdcall调用约定 stdcall很多时候被称为pasca ...
- 前向后瞻正则表达式及其JS例子
定义 x(?=y) 匹配'x'仅仅当'x'后面跟着'y'.这种叫做正向肯定查找. 比如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'./Jack(?=Sprat|F ...
- python 安装pillow
安装 警告 Pillow >= 2.1.0 不支持 “import _imaging”.请使用 “from PIL.Image import core as _imaging” 代替. 警告 P ...
- TCP协议下大数据传输IOCP乱序问题
毕业后稀里糊涂的闭门造车了两年,自己的独立博客也写了两年,各种乱七八糟,最近准备把自己博客废了,现在来看了下这两年写的对我来说略微有点意义的文章只此一篇,转载过来以作留念. 写的很肤浅且凌乱,请见谅. ...
- 执行robot framework 的测试用例 命令行pybot使用方式
1.执行整个项目下的所有用例: pybot 项目路径.例如: pybot D:\robot 2.执行某个suit中的所有用例: pybot 项目路径\suit文件名称. 例如:pybot D:\rob ...
- 从Spring容器中获取Bean。ApplicationContextAware
引言:我们从几个方面有逻辑的讲述如何从Spring容器中获取Bean.(新手勿喷) 1.我们的目的是什么? 2.方法是什么(可变的细节)? 3.方法的原理是什么(不变的本质)? 1.我们的目的是什么? ...
- opencv的学习笔记4
通常更加高级的形态学变换,如开闭运算.形态学梯度.“顶帽”.“黑帽”等等,都是可以由常用的腐蚀膨胀技术结合来达到想要的效果. 1.开运算:先腐蚀后膨胀,用于用来消除小物体.在纤细点处分离物体.平滑较大 ...