*IntelliJ IDEA使用Hibernate连接数据库
在IntelliJ IDEA中配置MySQL Database.
Database是我们事先建立的数据库,对应我们的某一个项目.
添加Hibernate框架.
项目上右键->Add Framework Support.
Package是放置我们的实体类,一般是xx.xx.model就可以了.
生成的实体类已经包含了映射信息,所以不需要x.hbm.xml文件了.
@Entity @Table(name = "users", schema = "mydb", catalog = "") public class UsersEntity { private int id; private String name; private Byte age; @Id @Column(name = "id", nullable = false) public int getId() { return id; } public void setId(int id) { this.id = id; } @Basic @Column(name = "name", nullable = true, length = 100) public String getName() { return name; } public void setName(String name) { this.name = name; } @Basic @Column(name = "age", nullable = true) public Byte getAge() { return age; } public void setAge(Byte age) { this.age = age; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; UsersEntity that = (UsersEntity) o; if (id != that.id) return false; if (name != null ? !name.equals(that.name) : that.name != null) return false; if (age != null ? !age.equals(that.age) : that.age != null) return false; return true; } @Override public int hashCode() { int result = id; result = 31 * result + (name != null ? name.hashCode() : 0); result = 31 * result + (age != null ? age.hashCode() : 0); return result; } }
那么再来看看Hiebrnate的配置文件,注意,该配置文件不在正确的路径上。在WEB-INF下建立文件夹classes,放进去.
没有Driver的jar包.
拷贝到lib目录中,还没完,为什么呢?没有添加到Build Path中.看!前面都没有三角标记.
跟别人不一样嘛.
右键项目->Open Model Settings->Libraries.
要注意关注Problems.
系统为我们生成了数据库连接的代码
public class Main { private static final SessionFactory ourSessionFactory; private static final ServiceRegistry serviceRegistry; static { try { Configuration configuration = new Configuration(); configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); ourSessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } public static Session getSession() throws HibernateException { return ourSessionFactory.openSession(); } public static void main(final String[] args) throws Exception { final Session session = getSession(); try { System.out.println("querying all the managed entities..."); final Map metadataMap = session.getSessionFactory().getAllClassMetadata(); for (Object key : metadataMap.keySet()) { final ClassMetadata classMetadata = (ClassMetadata) metadataMap.get(key); final String entityName = classMetadata.getEntityName(); final Query query = session.createQuery("from " + entityName); System.out.println("executing: " + query.getQueryString()); for (Object o : query.list()) { System.out.println(" " + o); } } } finally { session.close(); } } }
新建目录db,将Main类改名成DbConnections.
获取数据库中的数据
@Controller @RequestMapping("/users") public class UserController { @RequestMapping(value = "/list.do", method = RequestMethod.GET) public String listUsers(ModelMap map) { Session session = DbConnections.getSession(); List<UsersEntity> list = session.createCriteria(UsersEntity.class).list(); map.addAttribute("users", list); session.close(); return "users"; } }
doc + Alt + /:生成html模板,Alt + /需要自己配置.
<%@ page import="com.winner.db.entities.UsersEntity" %> <%@ page import="java.util.List" %> <%@ page pageEncoding="utf-8" %> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <ol> <%for (UsersEntity e:(List<UsersEntity>)request.getAttribute("users")){%> <li>名字:<%out.println(e.getName());%>,年龄:<%out.println(e.getAge());%></li> <%}%> </ol> </body> </html>
向数据库中添加用户:
@Controller @RequestMapping("/users") public class UserController { @RequestMapping(value = "/list.do", method = RequestMethod.GET) public String listUsers(ModelMap map) { Session session = DbConnections.getSession(); List<UsersEntity> list = session.createCriteria(UsersEntity.class).addOrder(Order.desc("id")).list(); map.addAttribute("users", list); session.close(); return "users"; } @RequestMapping(value = "/add.do", method = RequestMethod.GET) public String addUser() { return "add_user"; } @RequestMapping(value = "/result.do", method = RequestMethod.GET) public String result(ModelMap map, String name, int age) { map.addAttribute("name", name); map.addAttribute("age", age); Session session = DbConnections.getSession(); Transaction transaction = session.beginTransaction(); UsersEntity ue = new UsersEntity(); ue.setName(name); ue.setAge((byte) age); session.save(ue); transaction.commit(); session.close(); return "redirect:list.do"; } }
<%@ page pageEncoding="utf-8" %> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="/users/result.do" method="get" > 名字:<input type="text" name="name"/> 年龄:<input type="text" name="age"> <input type="submit" value="submit"/> </form> </body> </html>
*IntelliJ IDEA使用Hibernate连接数据库的更多相关文章
- Intellij IDEA的Hibernate简单应用
1.创建数据库及其表 create database demo; use demo; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL ...
- 【转载】Intellij IDEA的Hibernate简单应用
转载自: https://www.cnblogs.com/yangyquin/p/5438248.html 1.创建数据库及其表 create database demo; use demo ...
- *IntelliJ IDEA配置Hibernate
为IntelliJ IDEA安装Hibernate插件
- JDBC、mybatis、hibernate连接数据库
JDBC连接数据库五步骤: 一.加载驱动 Class.forName(“com.mysql.jdbc.Driver”); 二.建立连接 Connection conn = DriverManager. ...
- 【笔记】IntelliJ IDEA配置Hibernate
参考:imooc:http://www.imooc.com/video/7706 1.创建Hibernate的配置文件. 将依赖包导入项目.http://blog.csdn.net/a15337525 ...
- MySQL数据库的使用流程,代码解释+Hibernate连接数据库
数据库的使用流程: 1.注册驱动: 2.用DriverManager.getConnection方法获得连接对象con: A方法: 3.用连接对象的createStatement()方法,获得可以执 ...
- hibernate连接数据库和反向工程
一.JSP界面连接数据库: 导包:将11个包倒进web-inf的lib目录下: 二.建立hibernate.cfg.xml的配置文件:!注意:是放到项目SRC目录下: 三.将视图切换到java下,在左 ...
- hibernate连接数据库和使用
hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...
- Hibernate连接数据库
包结构如下图所示(按图标进行对齐): 环境搭好后代码分为以下几步: /** * private static final Configuration CONFIGURATION; * private ...
随机推荐
- 使用httpclient发送post请求与get请求
最近因为项目的要求,需要使用httpclient来发送请求.但是查阅了许多博客,大家发送请求的方法各不相同.原因是因为httpclient的jar包的不同版本,其内部方法也不相同.因此抛开具体用到的j ...
- Bootstrap学习笔记(二) 表单
在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文 ...
- 基于IOS和Android设备MDM技术方案服务价格
导读:前段时间 www.mbaike.net 博客被恶意攻击,导致程序崩溃,目前已经替换了以前的Wordpress程序,现提供IOS和Android版本MDM的代码和相关文档咨询服务. 一.IOS版M ...
- VB.NET转C#代码的工具
比如VB.NET的代码: For Each prop In entity.Details.Properties.All(). OfType(Of Microsoft.LightSwitch.Detai ...
- DTCMS自定义标签,获取所有栏目以及获得二级子栏目导航
取得二级栏目 DTcms.Web.UI\Label\category.cs中 get_category_child_list 返回当前所有子栏目 DTcms.Web.UI\Label\category ...
- 【原】EF简单使用
/// <summary> /// 数据上下文对象 /// </summary> static TestEntities te = new TestEntities(); st ...
- python字典根据value排序
参考: http://docs.python.org/2/howto/sorting.html http://www.cnpythoner.com/post/266.html http://ghost ...
- SDP协议分析
一.SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP).会话初始协议(SIP).实时流协议(RTSP).MIME 扩展协 ...
- 用python实现了一下:甲乙两人互猜数字(数理逻辑)
今天在园子里看到博客:超难面试题:甲乙两人互猜数字(数理逻辑).然后琢磨了半天,写了个Python程序实现算法,我得出来的结果是1,6或1,8或35,42的组合, 不知道是否正确,请高人指点? 下面列 ...
- Python生成验证码
#!/usr/bin/env python #coding:utf8 import random #方法1: str_code='zxcvbnmasdfghjklqwertyuiopZXCVBNMAS ...