hibernate连mysql

来源:互联网 发布:小白自学编程 编辑:程序博客网 时间:2024/05/18 22:10

创建工程如图:



某些jar包不一定有用到。

SQL:

create table tb_animal(id integer primary key auto_increment,name varchar(20) not null);

mysql.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><!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://127.0.0.1:3306/animal</property><property name="connection.username">root</property><property name="connection.password">root123</property><property name="connection.pool_size">1</property><property name="dialect">org.hibernate.dialect.MySQL5Dialect</property><property name="show_sql">true</property><property name="hibernate.show_sql">true </property><property name="jdbc.fetch_size">50</property><mapping resource="com/animal/pojo/Animal.hbm.xml"/></session-factory></hibernate-configuration>

Animal:

package com.animal.pojo;public class Animal {private int id;private String name;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;}}

<?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="com.animal.pojo"><class name="Animal" table="tb_animal"><id name="id" column="id" type="integer"><generator class="native" /></id><property name="name" column="name" type="string" /></class><query name="getAnimalById">from Animal where id=?</query><sql-query name="getAnimalByName">select * from tb_animal where name=?</sql-query></hibernate-mapping>

测试:

package com.animal.test;import java.util.List;import java.util.Random;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.SQLQuery;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.DetachedCriteria;import org.hibernate.criterion.Restrictions;import com.animal.pojo.Animal;import junit.framework.TestCase;public class TestAnimal extends TestCase {private Session session = null;private static final String mysqlCfgName = "/mysql.hibernate.cfg.xml";private static final SessionFactory factory = new Configuration().configure(mysqlCfgName).buildSessionFactory();private Transaction tran = null;@Overrideprotected void setUp() throws Exception {session = factory.openSession();tran = session.beginTransaction();}public void testInsertAnimal() {for (int i = 0; i < 10; i++) {Animal animal = new Animal();animal.setName("animal_" + i);session.save(animal);}tran.commit();}public void testHQL() {// from后面是对象,不是表名String hql = "from Animal where id=?";Query query = session.createQuery(hql);query.setInteger(0, 1);List<Animal> list = query.list();out(list);}public void testCriteria() {Criteria criteria = session.createCriteria(Animal.class);criteria.add(Restrictions.eq("id", 1));List<Animal> list = criteria.list();out(list);}public void testDetachedCriteria() {DetachedCriteria dc = DetachedCriteria.forClass(Animal.class);dc.add(Restrictions.eq("id", 1));Criteria criteria = dc.getExecutableCriteria(session);List<Animal> list = criteria.list();out(list);}public void testSQLQuery() {// from后面是表名,不是对象String queryString = "select * from tb_animal where id=?";SQLQuery query = session.createSQLQuery(queryString);query.addEntity(Animal.class);query.setInteger(0, 1);List<Animal> list = query.list();out(list);}public void testNamedQuery() {Query query = session.getNamedQuery("getAnimalById");query.setInteger(0, 1);List<Animal> list = query.list();out(list);}public void testNamedSQLQuery() {Query query = session.getNamedQuery("getAnimalByName");query.setString(0, "animal_1");List<?> list = query.list();for (int i = 0; i < list.size(); i++) {Object[] objs = (Object[]) list.get(i);System.out.println(objs[0] + ", " + objs[1]);}}public void testUpdate() {Random random = new Random();Animal animal = new Animal();animal.setId(1);animal.setName("u_animal_" + random.nextInt(10));session.saveOrUpdate(animal);tran.commit();}public void testDelete() {Animal animal = new Animal();animal.setId(10);session.delete(animal);tran.commit();}@Overrideprotected void tearDown() throws Exception {tran = null;session.close();session = null;}private void out(List<Animal> list) {if (list == null) {return;}for (Animal animal : list) {System.out.println(animal.getId() + ", " + animal.getName());}}}


package com.animal.test;import junit.framework.Test;import junit.framework.TestSuite;public class TestAll {public static Test suite() {TestSuite testSuite = new TestSuite();testSuite.addTestSuite(TestAnimal.class);return testSuite;}}


0 0
原创粉丝点击