Hibernate(基本CRUD-主键的生成策略)

来源:互联网 发布:ipad淘宝开店 编辑:程序博客网 时间:2024/06/05 09:58


在eclipse里安装Hibernate的插件可以看我的上一篇博客 在eclipse中安装插件hibernate



pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>Maven_Hibernate</groupId>  <artifactId>Maven_Hibernate</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>Maven_Hibernate Maven Webapp</name>  <url>http://maven.apache.org</url>    <properties>  <argLine>-Dfile.encoding=UTF-8</argLine>  </properties>    <dependencies> <dependency>    <groupId>junit</groupId>    <artifactId>junit</artifactId>    <version>4.12</version>    <scope>test</scope></dependency>        <!-- 加入Servlet依赖 -->    <dependency>    <groupId>javax.servlet</groupId>    <artifactId>javax.servlet-api</artifactId>    <version>3.1.0</version>    <scope>provided</scope></dependency><!-- 加入hibernate依赖 --><dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core</artifactId>   <version>5.2.10.Final</version></dependency><!-- 加入MySQL依赖 --><dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>   <version>5.1.18</version></dependency>  </dependencies>  <build>    <finalName>Maven_Hibernate</finalName>  </build></project>

User实体类

package com.zking.entity;public class User {private int u_id;//编号private String u_name;//用户名private String u_pwd;//密码public User() {}public User(int u_id) {this.u_id = u_id;}public User(String u_name, String u_pwd) {this.u_name = u_name;this.u_pwd = u_pwd;}public User(int u_id, String u_name, String u_pwd) {this.u_id = u_id;this.u_name = u_name;this.u_pwd = u_pwd;}public int getU_id() {return u_id;}public void setU_id(int u_id) {this.u_id = u_id;}public String getU_name() {return u_name;}public void setU_name(String u_name) {this.u_name = u_name;}public String getU_pwd() {return u_pwd;}public void setU_pwd(String u_pwd) {this.u_pwd = u_pwd;}}

User.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-8-21 19:40:27 by Hibernate Tools 3.5.0.Final --><hibernate-mapping><!-- 这是一个映射文件 -->    <class name="com.zking.entity.User" table="USER">      <!-- 主键用id代替 , u_id代表entity里的属性名 , U_ID代表数据库表里的列名-->        <id name="u_id" type="int">            <column name="U_ID" />            <!-- native本地设置,取决于本地数据库的设置,native会自动检测本地数据库是什么类型 -->            <generator class="native" />        </id>        <!-- type数据类型 -->        <property name="u_name" type="java.lang.String">            <column name="U_NAME" />        </property>        <property name="u_pwd" type="java.lang.String">            <column name="U_PWD" />        </property>    </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工程  这里的session等于Connection-->    <session-factory>    <!-- 配置数据库的连接信息 -->    <property name="connection.username">root</property>    <property name="connection.password">root</property>    <property name="connection.url">jdbc:mysql://localhost:3306/test</property>    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>    <!-- 显示SQL语句,show_sql为true就会展示所有的SQL语句 -->    <property name="show_sql">true</property>     <!-- 关联映射文件 -->    <mapping resource="com/zking/entity/User.hbm.xml"/>    </session-factory></hibernate-configuration>

增删改查的测试

package com.zking.test;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.zking.entity.User;public class TestCRUD {private SessionFactory sessionFactory;private Session session;private Transaction transaction;/** * 在每一个测试方法之前运行 */@Beforepublic void before(){//第一步:读取hibernate配置Configuration configuration=new Configuration().configure();//第二步:获取sessionFactorysessionFactory = configuration.buildSessionFactory();//第三步:获取sessionsession = sessionFactory.openSession();//第四步:开启事务 transaction = session.beginTransaction();}/** * 在每一个测试方法之后运行 */@Afterpublic void after(){//提交事务transaction.commit();//关闭session.close();sessionFactory.close();}/** * 添加 */        @Test       public void testAdd(){//保存,添加//User user=new User("琳琳","123");//session.save(user);}/** * 查询 */        @Test       public void get(){//查询单个(1,是ID的值)//User user=session.get(User.class, 1);//System.out.println("单个查询:用户名:"+user.getU_name()+",密码:"+user.getU_pwd());//查询所有createCriteria标准查询List<User> users=session.createCriteria(User.class).list();for (User user : users) {System.out.println(user.getU_name()+"   "+user.getU_pwd());}}/** * 修改 */@Testpublic void update(){         User user=(User)session.load(User.class, 5);           user.setU_name("老于");           user.setU_pwd("123456");         session.update(user);  }/** * 删除 */        @Test       public void delete(){          User user=(User)session.load(User.class, 14);            session.delete(user);  }}

如果你的eclipse快捷键出不来,你可以试一试