*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 ...
随机推荐
- lex&yacc5--YYSTYPE
yacc里的YYSTYPE默认是int型的,当然也可以勇%union来定义联合但是由于程序需要,我要将YYSTYPE定义为我自己定义的一个struct的指针然后作为一个全局变量,让lex在扫描的时候, ...
- C++与Lua交互(五)
引言 要将C++中的对象类型映射到Lua中,就不得不要先了解Lua面向对象的机制.在这里,我们先看一下Lua面向对象的实现基础--metatable,再以此实现C++对象到Lua的映射. Lua面向对 ...
- IOCP模型总结(转)
IOCP模型总结(转) IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型.它是应用程序使用线程池处理异步I/O请求的一种机制.在处理多个并发的异步I/O请求 ...
- Poj 2707 Copier Reduction
1.Link: http://poj.org/problem?id=2707 2.Content: Copier Reduction Time Limit: 1000MS Memory Limit ...
- [转]PHP5.5安装PHPRedis扩展
phpredis是个人觉得最好的一个php-redis客户端,因为其提供的function与redis的命令基本一致,降低的了学习成本,同时功能也很全面. 一.linux安装方法 phpredis下载 ...
- 简单的MySQLDB类
<?php error_reporting(E_ALL ^ E_DEPRECATED); //数据库操作类 class MySQLDB{ //属性--必要的信息 private $_host; ...
- PHP利用微信跳转的Code参数获取用户的openid
//获取微信登录用户信息function getOpenID($appid,$appsecret,$code){ $url="https://api.weixin.qq.com/sns/ ...
- Python串行运算、并行运算、多线程、多进程对比实验
转自:http://www.redicecn.com/html/Python/20111223/355.html Python发挥不了多核处理器的性能(据说是受限于GIL,被锁住只能用一个CPU核心, ...
- javascript看你能够做对几题
http://ourjs.com/detail/52fb82e13bd19c4814000001
- 解决maven官方库中没有oracle jdbc驱动的问题:Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0
最近在整合SSHE项目时,想要添加Oracle驱动包时,Maven的pom.xml总是报Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0错, 下面我 ...