INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决

今天按照学习视频学习了Hibernate的入门课程:

前提:用的mysql数据库

前提:导入了hibernate的jar包和JUnit4.0的jar包,还有mysql的jdbc驱动jar包,就是这货

INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决_第1张图片

1 创建Hibernate的配置文件hibernate.cfg.xml如下:




    
        root
        root
        jdbc.mysql.jdbc.Driver
        jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8
        org.hibernate.dialect.MySQLDialect
        
        true
        true
        create
        
        
    


2.创建持久化类:

/**
 * 学生类
 */
package com.hibernate.po;

import java.util.Date;

/**
 * @author admin
 *
 */
public class Students {

	/**
	 * 学号
	 */
	private int sId ;
	
	/**
	 * 学生姓名
	 */
	private String name ;
	
	/**
	 * 学生性别
	 */
	private String gender ;
	
	/**
	 * 学生生日
	 */
	private Date birthday ;
	
	/**
	 * 居住地址
	 */
	private String address ;

	public Students() {
		
	}
	
	public Students(int sId, String name, String gender, Date birthday,
			String address) {
		super();
		this.sId = sId;
		this.name = name;
		this.gender = gender;
		this.birthday = birthday;
		this.address = address;
	}


	public int getsId() {
		return sId;
	}

	public void setsId(int sId) {
		this.sId = sId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "Students [sId=" + sId + ", name=" + name + ", gender=" + gender
				+ ", birthday=" + birthday + ", address=" + address + "]";
	}
	
}
3.创建对象-关系映射文件:





    
        
            
            
        
        
            
        
        
            
        
        
            
        
        
            
        
    

当然,这个步骤是eclipse中的Hibernate插件自动生成的:

具体如下图:

INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决_第2张图片

INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决_第3张图片


4.用API编写访问数据库的代码:

package hibernatePractice;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.hibernate.po.Students;

public class StudentsTest {
	
	private SessionFactory sessionFactory ;
	private Session session ;
	private Transaction transaction;

	@Before
	public void init()
	{
		//创建配置对象
		Configuration config = new Configuration().configure();
		//创建服务注册对象
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
	    //创建会话工厂对象
		sessionFactory = config.buildSessionFactory(serviceRegistry);
		//会话对象
		session = sessionFactory.openSession();
		//开启事务
		transaction = session.beginTransaction();
		
	}
	
	@After
	public void destroy()
	{
		transaction.commit();//提交事务
		session.close();//关闭会话
		sessionFactory.close(); //关闭会话工厂
	}
	
	
	@Test
	public void testSaveStudents()
	{
		Students students = new Students(001,"道明寺","男",new Date(),"北京");
		session.save(students);//保存对象进入数据库
	}
	
}

结果用JUnit测试,是这个样子的: INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决_第4张图片

为啥这样了呢?原因:

还记得那货吗、?主要是hibernate.cfg.xml这个文件不对,

jdbc.mysql.jdbc.Driver这句的问题,应该是com.mysql.jdbc.Driver

INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决_第5张图片


另外:hibernate配置文件的用户名密码不要写错,写错了会:

十一月 21, 2015 10:06:45 下午 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions

ERROR: Access denied for user 'root'@'localhost' (using password: YES)



你可能感兴趣的:(项目开发,hibernate,数据库,mysql,INFO,HHH000402,Using)