• Hibernate注解学习1


    由于项目的原因目前需要一些简单注解,于是就做了个hibernate注解的小demo,来记录一下。

    1、需要引入jar包
    ejb3-persistence.jar
    hibernate-annotations.jar
    hibernate-commons-annotations.jar
    slf4j-api-1.5.2.jar
    slf4j-log4j-1.5.2.jar

    2、hibernate.cfg.xml配置文件
    <hibernate-configuration>
    
    <session-factory>
        <!--方言:用于指定数据库类型,生成相应数据库的sql语句  -->
        <property name="dialect">
                org.hibernate.dialect.MySQL5Dialect
        </property>
        <property name="connection.url">
        jdbc:mysql://localhost:3306/eat
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">lp6163271</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <!-- 显示hibernate自动生成的sql语句 -->
        <property name="show_sql">true</property>
        <!-- 将显示出来的格式化一下 -->
        <property name="format_sql">true</property>
        
        <mapping class="test.Anno"/>    
    </session-factory>
    
    </hibernate-configuration>
    其中配置文件还是基本和原来一致的,一定要加上 <mapping class="test.Anno"/> ,否则会找不到映射文件而报错。

    3、实体类
    package test;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="test")
    public class Anno {
    	
    	private int id;
    	
    	private String name;
    
    	@Id
    	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;
    	}
    
    	@Override
    	public String toString() {
    		return "Anno [id=" + id + ", name=" + name + "]";
    	}
    	
    	
    }
    

      

    @Entity  实体类
    @Table(name="test") 关联的表名
    @id 主键

    4、编写测试类
    
    
    package test;
    
    import java.util.List;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.cfg.Configuration;
    import test.Anno;
    
    public class Test {
    
        public static void main(String[] args) {
            SessionFactory sf=new AnnotationConfiguration().configure("/hibernate.cfg.xml").buildSessionFactory();
            Session session=sf.openSession();
            String hql=" from Anno";
            Query query=session.createQuery(hql);
            List<Anno> list=query.list();
            System.out.println(list);
        }
    
    }
    
    
    

      

     
    这要强调的是 得到SessionFactory 不再是 new一个configuration 而是 AnnotationConfiguration

    5、配置好了之后,就可以调试成功了。

    虽然这个demo简单,刚开始做jar包的问题搞了好大一会,还有后来编写测试类new的对象不对,每天进步一点点。 驾驾驾!


  • 相关阅读:
    leetcode-242-Valid Anagram
    leetcode-232-Implement Queue using Stacks
    机器学习(3)——梯度下降法
    Codeforces Round #305 (Div. 2)D. Mike and Feet(单调栈)
    Codeforces Round #304 (Div. 2)(CF546D) Soldier and Number Game(线性筛)
    Codeforces Round #304 (Div. 2)(CF546E) Soldier and Traveling(最大流)
    机器学习(2)——线性回归法
    Codeforces Round #303 (Div. 2)(CF545) E Paths and Trees(最短路+贪心)
    机器学习(1)——K近邻算法
    简易解说拉格朗日对偶(Lagrange duality)(转载)
  • 原文地址:https://www.cnblogs.com/volare/p/3667559.html
Copyright © 2020-2023  润新知