*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 ...
随机推荐
- Bitmap、CBitmap、HBITMAP以及BITMAP的相互转换
Bitmap.CBitmap.HBITMAP以及BITMAP的相互转换 构建CBitmapCBitmap bmp;bmp.LoadBitmap(ID); 构建HBITMAPHBitmap = (HBI ...
- office2013发布博客
0, 喜欢用world记笔记,并查上一些配图.但是再想重新发到博客上,图片不得不重新上传十分蛋疼. world直接发布博客功能太棒了,直接绑定账号和url就可以发送了,爽YY!!! 1,新建一个博客文 ...
- C++ VARIANT 学习小记录
一:为什么会有这个? 目前,计算机语言有很多(大哥,为什么不能就那么一样呢?),如C++.Java,此外还有JavaScript.VBScript等脚本语言,它们自立门派,各自维护自己的数据类型. C ...
- border-radius导致overflow:hidden失效问题。
如果一个父元素设置了overflow:hidden属于的同时还设置了border-radius属性,那么如果想隐藏超出的子元素,四个圆角处会出现超出圆角依然显示的bug: 一种方法是运用-webkit ...
- TweenMax动画库学习(一)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- app配置智能硬件的解决方案
随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬 ...
- JAVASCRIPT实现翻页保存已勾选的项目
<input type="checkbox" name="a" value="1" /><br/> <inpu ...
- MongoDB之【增加用户认证、增加用户、删除用户、修改用户密码、读写权限、只读权限】
说明:增加用户是针对数据库进行操作 1.进入到数据库 use dbname 2.针对当前数据库添加用户 权限是针对当前数据 1.添加并验证用户 > use admin > db.addUs ...
- aliexpress 上传图
首先,图片转化为字节流 public byte[] ImagefileToByte(string srcImagePath) { System.IO.MemoryStream m = new Syst ...
- MDI-多文档窗体
1.IsMdicontainer属性设置是否为多文档窗体 this.IsMdiContainer = true; 2.MdiParent属性设置为父窗体 Frm_Child frm = new Frm ...