Summary of free typing on Saturday

hibernate

test one

Configure 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.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/a_hibernate_01</property>

        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <mapping resource="com/lanou3g/bean/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>

Create user class

package com.lanou3g.bean;

public class User {
    private int id;
    private String username;
    private String password;
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    public User(int id, String username, String password) {
        super();
        this.id = id;
        this.username = username;
        this.password = password;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
    }
}

Configure User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.lanou3g.bean.User" table="user" >
        <id name="id" column="id">
            <generator class="native"></generator>
        </id>
        <property name="username" column="username"></property>
        <property name="password" column="password"></property>
    </class>
</hibernate-mapping>

Create test class test

package com.lanou3g.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.jupiter.api.Test;

import com.lanou3g.bean.User;

public class test {
    @Test
    public void fun1() {
        Configuration configuration = new Configuration().configure();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
        User user = new User();
        user.setUsername("张三");
        user.setPassword("123");
        session.save(user);
        transaction.commit();
        session.close();
        sessionFactory.close();
    }
}
Screenshot of test results

write picture description here
write picture description here

test update

public void fun2() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    User user = session.get(User.class, 1);
    user.setUsername("李四");
    session.update(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here
write picture description here

test query -get

public void fun3() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    User user = session.get(User.class, 1);
    System.out.println(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

test query-load

public void fun3() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    User user = session.get(User.class, 1);
    System.out.println(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Test Deletion - Method 1

public void fun5() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    User user = session.get(User.class, 1);
    session.delete(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here
write picture description here
write picture description here

Test deletion - method 2

public void fun6() {
    Configuration configure = new Configuration().configure();
    SessionFactory sessionFactory = configure.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    User user = new User();
    user.setId(3);
    session.delete(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}

summary

hibernate中的查询方式有多种 上面所写的方法 只能实现对数据库中
一行数据的操作, 增删改查 只对一行数据起作用 下面所写的HQL查询 则
可以对多行数据器作用

hql query

public void fun7() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    Query query = session.createQuery("from com.lanou3g.bean.User");
    List list = query.list();
    System.out.println(list);

    transaction.commit();
    session.close();
    sessionFactory.close(); 
}

write picture description here

sql query

public void fun8() {
    Configuration configure = new Configuration().configure();
    SessionFactory sessionFactory = configure.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    NativeQuery query = session.createNativeQuery("select * from User");
    List<Object[]> list = query.list();
    for (Object[] objects : list) {
        System.out.println(Arrays.toString(objects));
    }

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Code optimization - build tool class (Hiberutils)

public class HibernateUtils {
    static SessionFactory sessionFactory;
    static {
        Configuration configure = new Configuration().configure();
        sessionFactory = configure.buildSessionFactory();
    }
    public static Session getSession() {
        return sessionFactory.openSession();
    }
    public static Session getCurrentSession() {
        return sessionFactory.getCurrentSession();
    }
}

hql statement example

Query example one

public void fun1() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    String hql = "from User";
    Query query = session.createQuery(hql);
    List list = query.list();
    System.out.println(list);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Query Example 2

public void fun2() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    String hql = "from User where id=? and username=?";
    Query query = session.createQuery(hql);
    query.setParameter(0, 5);
    query.setParameter(1, "长江一号");
    User user = (User)query.uniqueResult();
    System.out.println(user);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Query Example 3

public void fun3() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    String hql = "from User where id = :ww";
    Query query = session.createQuery(hql);
    query.setParameter("ww", 5);
    Object result = query.uniqueResult();
    System.out.println(result);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Query Example 4

public void fun4() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    String hql = "from User";
    Query query = session.createQuery(hql);
    query.setFirstResult(2);
    query.setMaxResults(2);
    List list = query.list();
    System.out.println(list);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Query Example 5

public void fun5() {
    Configuration configuration = new Configuration().configure();
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.eq("id", 5));
    Object result = criteria.uniqueResult();
    System.out.println(result);

    transaction.commit();
    session.close();
    sessionFactory.close();
}
Screenshot of test results

write picture description here

Query Example 6 - Query the total number of records

public void fun6() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.setProjection(Projections.rowCount());
    Object result = criteria.uniqueResult();
    System.out.println(result);

    transaction.commit();
    session.close();
}
Screenshot of test results

write picture description here

Query instance seven - greater than (no upper limit)

public void fun7() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.gt("id", 4));
    List list = criteria.list();
    System.out.println(list);
    transaction.commit();
    session.close();
}
Screenshot of test results

write picture description here

Query example eight - greater than or equal to

public void fun8() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();
    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.ge("id",5));
    List list = criteria.list();
    System.out.println(list);
    transaction.commit();
    session.close();    
}
Screenshot of test results

write picture description here

Query example nine - greater than or equal to

public void fun9() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.lt("id", 5));
    List list = criteria.list();
    System.out.println(list);

    transaction.commit();
    session.close();
}
Screenshot of test results

write picture description here

Query instance ten - less than

public void fun9() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.lt("id", 5));
    List list = criteria.list();
    System.out.println(list);

    transaction.commit();
    session.close();
}

write picture description here

Query instance ten - less than

public void fun10() {
    Session session = HibernateUtils.getSession();
    Transaction transaction = session.beginTransaction();

    Criteria criteria = session.createCriteria(User.class);
    criteria.add(Restrictions.le("id", 5));
    List list = criteria.list();
    System.out.println(list);

    transaction.commit();
    session.close();
}

write picture description here

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324523187&siteId=291194637