Hibernate 操作数据库
com.tao.pojo实体类
package com.tao.pojo;
public class User {
private int id;
private String name;
private String password;
public User() {
super();
}
public User(int id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
}
}
User.hbm.xml映射文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.hibernate.test.schemaupdate">
<class name="com.tao.pojo.User" table="user">
<id name="id">
<generator class="identity"></generator>
</id>
<property name="name"/>
<property name="password" column="pass"/>
</class>
</hibernate-mapping>
配置文件hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test0102?characterEncoding=utf-8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 因为加载的时候只加载配置文件,没有加载映射文件,让它去找 -->
<mapping resource="com/tao/pojo/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
DAO方法
com.tao.dao
package com.tao.dao;
import java.util.List;
public interface BaseDAO<T> {
// 通用的功能
public List<T> findAll();
public T findById(int id);
public void deleteById(int id);
public boolean update(T t);
public boolean save(T t);
}
package com.tao.dao;
import com.tao.pojo.User;
public interface UserDAO extends BaseDAO<User> {
public User login(String name,String password);
}
实现类 com.tao.dao.Impl
package com.tao.dao.Impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import com.tao.dao.UserDAO;
import com.tao.pojo.User;
public class UserDAOImpl implements UserDAO{
@Override
public List<User> findAll() {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Query<User> query = session.createQuery("from User", User.class);
List<User> list = query.list();
session.getTransaction().commit();
session.close();
factory.close();
return list;
}
@Override
public User findById(int id) {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Query<User> query = session.createQuery("from User where id=?", User.class);
query.setParameter(0, id);
User user = query.uniqueResult();
session.getTransaction().commit();
session.close();
factory.close();
return user;
}
@Override
public void deleteById(int id) {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
//方法1
// User user = session.get(User.class, id);
// session.delete(user);
//放法2
// User user = new User();
// user.setId(id);
// session.delete(user);
//方法3
Query query = session.createQuery("delete from User where id=?");
query.setParameter(0, id);
int rows = query.executeUpdate();
System.out.println(rows+"=============rows");
session.getTransaction().commit();
session.close();
factory.close();
}
@Override
public boolean update(User t) {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
//update()只根据Id更新
// session.update(t);
//HQL语句(User是类名,name,password是类里面的属性名)
Query query = session.createQuery("update User set name=?,password=? where id=?");
query.setParameter(0, t.getName());
query.setParameter(1, t.getPassword());
query.setParameter(2, t.getId());
int rows = query.executeUpdate();
session.getTransaction().commit();
session.close();
factory.close();
if(rows>0) {
return true;
}
return false;
}
@Override
public boolean save(User t) {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Integer id = (Integer) session.save(t);
session.getTransaction().commit();
session.close();
factory.close();
if(id>0) {
return true;
}
return false;
}
@Override
public User login(String name, String password) {
// TODO Auto-generated method stub
Configuration configure = new Configuration().configure();
SessionFactory factory = configure.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Query<User> query = session.createQuery("from User where name=? and password=?",User.class);
query.setParameter(0, name).setParameter(1, password);
User user = query.uniqueResult();
session.getTransaction().commit();
session.close();
factory.close();
return user;
}
}
JUnit测试
package com.tao.test;
import static org.junit.Assert.*;
import java.util.List;
import org.junit.Test;
import com.tao.dao.Impl.UserDAOImpl;
import com.tao.pojo.User;
public class JUnit_User {
UserDAOImpl impl = new UserDAOImpl();
@Test
public void testAll() {
List<User> list = impl.findAll();
for (User uu : list) {
System.out.println(uu);
}
}
@Test
public void testById() {
User user = impl.findById(2);
System.out.println(user);
}
@Test
public void testdeleteById() {
System.out.println("delete++++++++++++++++++");
impl.deleteById(10);
}
@Test
public void save() {
User user = new User(12, "ss", "ss");
boolean b = impl.save(user);
System.out.println(b);
}
@Test
public void update() {
User user = new User(2, "ss", "222");
impl.update(user);
}
//登录
@Test
public void login() {
User user = impl.login("ss", "222");
System.out.println(user);
}
}
Hibernate 操作数据库的更多相关文章
- hibernate操作数据库总结
这篇文章用于总结hibernate操作数据库的各种方法 一.query方式 1.hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就 ...
- Java_Web三大框架之Hibernate操作数据库(三)
使用Hibernate操作数据库需要七个步骤: (1)读取并解析配置文件 Configuration conf = newConfiguration().configure(); (2)读取并解析映射 ...
- hibernate操作数据库例子
1.工程目录结构如下 2.引入需要的jar包,如上图. 3.创建持久化类User对应数据库中的user表 package com.hibernate.配置文件.pojo; import java.sq ...
- hibernate操作数据库总结(转)
一.query方式 1.hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不是原生态的sql语句,数据库不支持,因此情愿选 ...
- Hibernate操作数据库的回调机制--Callback
1:一般情况下,在使用Hibernate Session存取数据库的代码中,基本上大部分是相同的,如下两个方法所示, //查询Teacher操作 ublic Teacher getTeacher ...
- 转 使用Hibernate操作数据库时报:No CurrentSessionContext configured! 异常
没有currentSession配置错误,即在我们使用currentSession的时候要在hibernate.cfg.xml中进行相关的事务配置:1.本地事务<property name=&q ...
- hibernate操作数据库时报错解决方式
java.sql.SQLException: Parameter index out of range (28 > number of parameters, which is 27). 这个说 ...
- Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...
- 5 -- Hibernate的基本用法 --2 2 Hibernate的数据库操作
在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ ...
随机推荐
- ruby通过telnet读取互联网时间
在前面的博文ntp服务器也谈逆向工程中,本猫曾经武断的认为telnet是无法连接到ntp服务器的.因为当时是这样连接的: telnet time.nist.gov 123,端口号123是在/etc/s ...
- (WPS) 网络地理信息处理服务
WPS 标准为网络地理信息处理服务提供了标准化的输入和输出. OGC® Web Processing Service (WPS) 标准描述了如何通过远程的任何算法和模型处理获得地理空间的栅格或矢量信息 ...
- PowerBI开发 第十篇:R 脚本
R是一种专门用于数据分析和统计的脚本语言,广泛应用在每一个需要统计和数据分析的领域.PowerBI支持R脚本,只不过,PowerBI Desktop默认没有安装R.在使用R脚本之前,必须向PowerB ...
- css3中的布局相关样式
web页面中的布局是指在页面中如何对标题.导航栏.主要内容.脚注.表单等各种构成要素进行合理编辑.在css3之前,主要使用float属性或position属性进行页面中的简单布局,但是也存在一些缺点, ...
- Javac的实现过程
主要介绍Javac的实现过程及原理. 首先弄明白什么是Javac? Javac是一种编译器,将一种语言转换为另一种语言规范.编译器的作用就是将符合java语言规范的源代码转化为JVM虚拟机能够识别的字 ...
- Linux 文件目录解释
/bin:bin是binary(二进制)的缩写.这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令.例如:cp,ls,cat. /boot:这里存放的是启动LINUX时使用的一些核心文件 ...
- IT桔子沙龙之本地生活服务O2O探路者笔记整理
这个沙龙活动侧重于创业融资与投资角度 主持人:真格基金投资分析师顾女士;E-mail:grace@zhenfund.com;新浪微博:@顾三小姐 赞助商七牛云的服务宣传:静态资源托管:上传下载全网加速 ...
- windows10不能修改hosts解决方案(亲测)
hosts文本解释: 有时候我们要破解一些软件与服务器通讯,所以通常都需要更改Hosts文件来达到目的,XP系统可以直接修改保存,但是Win10系统却提示没有权限去修改,那么我们要怎样办呢,我们修改的 ...
- MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述
本文目录:1.备份分类2.备份内容和备份工具3.mysqldump用法详述 3.1 语法选项 3.1.1 连接选项 3.1.2 筛选选项 3.1.3 DDL选项 3.1.4 字符集选项 3.1.5 复 ...
- Android之淘宝商品列表长按遮罩效果
先来看看淘宝.唯品会长按商品的效果,以及简单Demo的效果: 首先分析一下场景: 长按条目时,弹出遮罩的效果遮挡在原来的条目布局上: 页面滑动或点击其他的条目,上一个正在遮罩的条目遮罩消 ...