Hibernate

  1 
//首先记得要导入hibernate的相关jar包
<?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>cn.hibernate</groupId> 8 <artifactId>demo3</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 <name>demo3 Maven Webapp</name> 13 <!-- FIXME change it to the project's website --> 14 <url>http://www.example.com</url> 15 16 <properties> 17 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 18 <maven.compiler.source>1.8</maven.compiler.source> 19 <maven.compiler.target>1.8</maven.compiler.target> 20 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 21 22 <junit.version>4.12</junit.version> 23 <mysql.version>5.1.6</mysql.version> 24 <c3p0.version>0.9.1.2</c3p0.version> 25 <commonspool2.version>2.3</commonspool2.version> 26 <commonsdbutils-beanutils.version>1.6</commonsdbutils-beanutils.version> 27 <servletapi.version>3.1.0</servletapi.version> 28 29 30 <!--web层需要用到的--> 31 <jstl.version>1.2</jstl.version> 32 <standard.version>1.1.2</standard.version> 33 <fastjson.version>1.2.47</fastjson.version> 34 35 <!--hibernate依赖包--> 36 <hibernate.version>5.4.0.Final</hibernate.version> 37 <!--log4j日志包--> 38 <log4j.version>1.2.17</log4j.version> 39 <!--jta事务包--> 40 <jta.version>1.1</jta.version> 41 </properties> 42 43 <dependencies> 44 <!--junit测试包--> 45 <dependency> 46 <groupId>junit</groupId> 47 <artifactId>junit</artifactId> 48 <version>${junit.version}</version> 49 <scope>test</scope> 50 </dependency> 51 52 <!--导入hibernate框架的核心依赖--> 53 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> 54 <dependency> 55 <groupId>org.hibernate</groupId> 56 <artifactId>hibernate-core</artifactId> 57 <version>${hibernate.version}</version> 58 </dependency> 59 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager --> 60 <dependency> 61 <groupId>org.hibernate</groupId> 62 <artifactId>hibernate-entitymanager</artifactId> 63 <version>${hibernate.version}</version> 64 </dependency> 65 66 <!--log4j日志包--> 67 <dependency> 68 <groupId>log4j</groupId> 69 <artifactId>log4j</artifactId> 70 <version>${log4j.version}</version> 71 </dependency> 72 73 <!--jta事务包--> 74 <!-- https://mvnrepository.com/artifact/javax.transaction/jta --> 75 <dependency> 76 <groupId>javax.transaction</groupId> 77 <artifactId>jta</artifactId> 78 <version>${jta.version}</version> 79 </dependency> 80 81 <!--mysql驱动包--> 82 <dependency> 83 <groupId>mysql</groupId> 84 <artifactId>mysql-connector-java</artifactId> 85 <version>${mysql.version}</version> 86 </dependency> 87 <dependency> 88 <groupId>org.junit.jupiter</groupId> 89 <artifactId>junit-jupiter-api</artifactId> 90 <version>RELEASE</version> 91 <scope>compile</scope> 92 </dependency> 93 <dependency> 94 <groupId>org.testng</groupId> 95 <artifactId>testng</artifactId> 96 <version>RELEASE</version> 97 <scope>compile</scope> 98 </dependency> 99 100 <!--&lt;!&ndash;javax.servlet.api用于编译环境&ndash;&gt;--> 101 <!--<dependency>--> 102 <!--<groupId>javax.servlet</groupId>--> 103 <!--<artifactId>javax.servlet-api</artifactId>--> 104 <!--<version>${servletapi.version}</version>--> 105 <!--<scope>provided</scope>--> 106 <!--</dependency>--> 107 108 <!--&lt;!&ndash;c3p0相关&ndash;&gt;--> 109 <!--<dependency>--> 110 <!--<groupId>c3p0</groupId>--> 111 <!--<artifactId>c3p0</artifactId>--> 112 <!--<version>${c3p0.version}</version>--> 113 <!--</dependency>--> 114 <!--<dependency>--> 115 <!--<groupId>commons-beanutils</groupId>--> 116 <!--<artifactId>commons-beanutils</artifactId>--> 117 <!--<version>${commonsdbutils-beanutils.version}</version>--> 118 <!--</dependency>--> 119 <!--<dependency>--> 120 <!--<groupId>commons-dbutils</groupId>--> 121 <!--<artifactId>commons-dbutils</artifactId>--> 122 <!--<version>${commonsdbutils-beanutils.version}</version>--> 123 <!--</dependency>--> 124 <!--<dependency>--> 125 <!--<groupId>org.apache.commons</groupId>--> 126 <!--<artifactId>commons-pool2</artifactId>--> 127 <!--<version>${commonspool2.version}</version>--> 128 <!--</dependency>--> 129 130 <!--&lt;!&ndash;jstl&ndash;&gt;--> 131 <!--<dependency>--> 132 <!--<groupId>javax.servlet</groupId>--> 133 <!--<artifactId>jstl</artifactId>--> 134 <!--<version>${jstl.version}</version>--> 135 <!--</dependency>--> 136 <!--&lt;!&ndash;standard&ndash;&gt;--> 137 <!--<dependency>--> 138 <!--<groupId>taglibs</groupId>--> 139 <!--<artifactId>standard</artifactId>--> 140 <!--<version>${standard.version}</version>--> 141 <!--</dependency>--> 142 <!--<dependency>--> 143 <!--<groupId>com.alibaba</groupId>--> 144 <!--<artifactId>fastjson</artifactId>--> 145 <!--<version>${fastjson.version}</version>--> 146 <!--</dependency>--> 147 </dependencies> 148 149 150 151 <build> 152 <finalName>demo3</finalName> 153 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 154 <plugins> 155 <plugin> 156 <artifactId>maven-clean-plugin</artifactId> 157 <version>3.1.0</version> 158 </plugin> 159 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> 160 <plugin> 161 <artifactId>maven-resources-plugin</artifactId> 162 <version>3.0.2</version> 163 </plugin> 164 <plugin> 165 <artifactId>maven-compiler-plugin</artifactId> 166 <version>3.8.0</version> 167 </plugin> 168 <plugin> 169 <artifactId>maven-surefire-plugin</artifactId> 170 <version>2.22.1</version> 171 </plugin> 172 <plugin> 173 <artifactId>maven-war-plugin</artifactId> 174 <version>3.2.2</version> 175 </plugin> 176 <plugin> 177 <artifactId>maven-install-plugin</artifactId> 178 <version>2.5.2</version> 179 </plugin> 180 <plugin> 181 <artifactId>maven-deploy-plugin</artifactId> 182 <version>2.8.2</version> 183 </plugin> 184 </plugins> 185 </pluginManagement> 186 </build> 187 </project>

然后记得配置hibernate的核心配置文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE hibernate-configuration SYSTEM
 3         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 4 <!--hibernate核心配置文件-->
 5 <hibernate-configuration>
 6     <session-factory>
 7         <!--数据库方言-->
 8         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
 9         <!--数据库连接驱动-->
10         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
11         <!-- 数据库url -->
12         <property name="hibernate.connection.url">jdbc:mysql://localhost/school</property>
13         <!--数据库用户名-->
14         <property name="hibernate.connection.username">root</property>
15         <!--数据库密码-->
16         <property name="hibernate.connection.password">root</property>
17 
18         <!--数据库线程安全-->
19         <property name="hibernate.current_session_context_class">thread</property>
20         <property name="hibernate.show_sql">true</property><!--  显示 sql语句 -->
21         <!--  自动格式化 sql 语句  -->
22         <property name="hibernate.format_sql">true</property>
23         <!--  如果数据库中没有相对应的表,就会自动创建;  -->
24         <property name="hibernate.hbm2ddl.auto">update</property>
25         <!--  加载对象关系映射文件   -->
26         <!--<mapping resource="mapper/MyUser.hbm.xml"/>-->
27         <mapping resource="mapper/Role.hbm.xml"/>
28 
29     </session-factory>
30 </hibernate-configuration>

如果你不是用的注解方法,则需要配置映射文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3         "-//Hibernate/Hibernate Mapping DTD//EN"
 4         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 5 <!--对象关系映射文件-->
 6 <hibernate-mapping>
 7     <!--注意,完整的类路径-->
 8     <class name="cn.hibernate.Role" table="tblrole">
 9         <id name="rid" type="int" column="rid">
10             <!--主键生成策略,自增长 : native-->
11             <generator class="native"/>
12         </id>
13         <!--注意完整的类型路径-->
14         <property name="rname" column="rname" type="java.lang.String"/>
15         <!---->
16         <property name="rcreatedate" column="rcreatedate" type="java.util.Date" />
17         <property name="rmodifydate" column="rmodifydate" type="java.util.Date" />
18     </class>
19 </hibernate-mapping>

 

简单的用法: 

  1 package cn.test;
  2 
  3 import cn.hibernate.Role;
  4 import cn.util.HibernateUtil;
  5 import org.hibernate.Session;
  6 import org.hibernate.SessionFactory;
  7 import org.hibernate.Transaction;
  8 import org.hibernate.boot.registry.StandardServiceRegistry;
  9 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
 10 import org.hibernate.cfg.Configuration;
 11 import org.junit.jupiter.api.Test;
 12 
 13 import java.util.Date;
 14 import java.util.List;
 15 
 16 public class TestRole {
 17 
 18     /**
 19      * 增加角色对象
 20      */
 21     @Test
 22     public void doInsertRole(){
 23         Role role = new Role();
 24         role.setRname("治安人员");
 25         role.setRcreatedate(new Date());
 26         role.setRmodifydate(new Date());
 27 
 28 
 29         /**
 30          * 可以将下面的几行带作为一个公共方法
 31          */
 32 //        //加载无参,表示核心文件按照约定写
 33 //        Configuration configure = new Configuration().configure();
 34 //        //注册服务于配置
 35 //        StandardServiceRegistry build = new StandardServiceRegistryBuilder().configure().build();
 36 //        //获取session工厂
 37 //        SessionFactory sessionFactory = configure.buildSessionFactory();
 38 //        //获取session对象
 39 //        Session session = sessionFactory.openSession();
 40 
 41 
 42 
 43 
 44         //通过工具类,创建一个session对象
 45         Session session = HibernateUtil.getSession();
 46         //通过session开启事务返回一个事务对象对象
 47         Transaction transaction = session.beginTransaction();
 48         //使用hibernate框架提供的方法,开始做业务
 49         session.save(role);
 50         //事务提交
 51         transaction.commit();
 52         //释放资源
 53         session.close();
 54         //打印语句,查看是否成功
 55         System.out.println("新增一个角色成功");
 56     }
 57 
 58     /**
 59      * 删除角色对象
 60      */
 61     @Test
 62     public void doDeleteRole(){
 63         Role role = new Role();
 64         role.setRid(8);
 65         //通过工具类,拿到session对象
 66         Session session = HibernateUtil.getSession();
 67         //开启事务
 68         Transaction transaction = session.beginTransaction();
 69         //做业务
 70         session.delete(role);
 71         //提交事务
 72         transaction.commit();
 73         //释放资源
 74         HibernateUtil.close();
 75         //打印语句,查看删除是否城城
 76         System.out.println("删除一个角色成功");
 77     }
 78 
 79     /**
 80      * 修改一个角色
 81      */
 82     @Test
 83     public void doUpdateRole(){
 84 //        Role role = new Role();
 85 //        role.setRid(7);
 86 //        role.setRname("维安人员");
 87 //        role.setRcreatedate(new Date());
 88 //        role.setRmodifydate(new Date());
 89 
 90         //获取session对象
 91         Session session = HibernateUtil.getSession();
 92         //通过session开启事务
 93         Transaction transaction = session.beginTransaction();
 94         //做实物
 95         session.update(new Role(7,"前台小姐姐",new Date()));
 96         //提交事务
 97         transaction.commit();
 98         //释放资源
 99         HibernateUtil.close();
100         //打印输出语句,查看是否成功
101         System.out.println("修改一个角色对象成功");
102     }
103 
104     /**
105      * 如果找到了id,则修改,如果没有这个id,则增加
106      */
107     @Test
108     public void saveOrUpdateRole(){
109         Role role = new Role();
110         role.setRname("啊法");
111         Session session = HibernateUtil.getSession();
112         //记住必须要开启事务
113         Transaction transaction = session.beginTransaction();
114         session.saveOrUpdate(role);
115         //关闭事务
116         transaction.commit();
117         //释放资源
118         HibernateUtil.close();
119         System.out.println("如果找到了id,则修改,如果没有这个id,则增加");
120     }
121 
122     /**
123      * 查询一个
124      */
125     @Test
126     public void findRoleByRid(){
127         Session session = HibernateUtil.getSession();
128         Role load = session.load(Role.class, 7);
129         HibernateUtil.close();
130         System.out.println("执行查询一个角色"+load);
131     }
132 
133     /**
134      * 查询全部,需要用到HQL语句
135      */
136     @Test
137     public void findRoleAll(){
138         Session session = HibernateUtil.getSession();
139         List from_role_r = session.createQuery("from Role r").list();
140         HibernateUtil.close();
141         from_role_r.forEach(a-> System.out.println(a));
142     }
143 
144     /**
145      * 分页查询
146      * 查询不需要事务的!!
147      */
148     @Test
149     public void findRoleLimit(){
150         Role role = new Role();
151         int start = 3;
152         int pagesize = 2;
153         Session session = HibernateUtil.getSession();
154         List list = session.createQuery(" from Role r").setFirstResult((start - 1) * pagesize).setMaxResults(pagesize).list();
155         list.forEach(a-> System.out.println(a));
156     }
157 }

 

转载于:https://www.cnblogs.com/in-the-game-of-thrones/p/11462807.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值