使用hibernate进行CURD操作
2017-08-09 17:57
323 查看
gradle配置相关jar包
dependencies { // https://mvnrepository.com/artifact/org.testng/testng compile group: 'org.testng', name: 'testng', version: '6.9.10' // https://mvnrepository.com/artifact/org.hibernate/hibernate-core compile group: 'org.hibernate', name: 'hibernate-core', version: '4.2.3.Final' // https://mvnrepository.com/artifact/mysql/mysql-connector-java compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6' }
编写HibernateUtil工具
public class HibernateUtil { private static SessionFactory sessionFactory; private static Session session; private static Transaction transaction; //static静态代码在类加载时初始化,在构造方法之前初始化 static{ //创建配置对象 Configuration config=new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //创建会话工厂对象 sessionFactory=config.buildSessionFactory(serviceRegistry); //会话对象 session=sessionFactory.openSession(); //创建事务 transaction=session.beginTransaction(); } public static Session getSession(){ return session; } public static void close(Session session){ transaction.commit();//提交事务 if(session!=null) { session.close();//关闭会话 sessionFactory.close();//关闭会话工厂 } } }
hibernate.cfg.xml配置文件
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- DB schema will be updated if needed --> <property name="show_sql">true</property><!--展示sql语句--> <property name="format_sql">true</property><!--格式化sql语句--> <property name="hbm2ddl.auto">update</property><!--帮助java代码生成数据库脚本,进而生成具体的表结构--> <mapping resource="hbm/students.hbm.xml"/> </session-factory> </hibernate-configuration>
student.hbm.xml 映射配置文件
<?xml version="1.0" encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.sun.dto"> <class name="Student" table="t_secondhand_pic"> <id name="iAutoID" type="int"> <column name="iAutoID"/> <generator class="increment"/> </id> <property name="iSecondhandID" type="int"> <column name="iSecondhandID"/> </property> <property name="sImgKey" type="string"> <column name="sImgKey"/> </property> <property name="sExt" type="string"> <column name="sExt"/> </property> <property name="iDefault" type="int"> <column name="iDefault"/> </property> <property name="iStatus" type="int"> <column name="iStatus"/> </property> <property name="iCreateTime" type="int"> <column name="iCreateTime"/> </property> <property name="iUpdateTime" type="int"> <column name="iUpdateTime"/> </property> <property name="iImgType" type="int"> <column name="iImgType"/> </property> <property name="iRank" type="int"> <column name="iRank"/> </property> <!--配置单向的一对多关联关系--> <!--<set name="sts" table="t_secondahnd_pic"> <!–指定关联的外键列–> <key column="iAutoID"/> <one-to-many class="com.sun.dto.Student"/> </set>--> </class> </hibernate-mapping>
创建Student学生类
public class Student { private int iAutoID; private int iSecondhandID; private String sImgKey; private String sExt; private int iDefault; private int iStatus; private int iCreateTime; private int iUpdateTime; private int iImgType; private int iRank; public Student() { } public Student(int iSecondhandID, String sImgKey, String sExt, int iDefault, int iStatus, int iCreateTime, int iUpdateTime, int iImgType, int iRank) { this.iSecondhandID = iSecondhandID; this.sImgKey = sImgKey; this.sExt = sExt; this.iDefault = iDefault; this.iStatus = iStatus; this.iCreateTime = iCreateTime; this.iUpdateTime = iUpdateTime; this.iImgType = iImgType; this.iRank = iRank; } public int getiAutoID() { return iAutoID; } public void setiAutoID(int iAutoID) { this.iAutoID = iAutoID; } public int getiSecondhandID() { return iSecondhandID; } public void setiSecondhandID(int iSecondhandID) { this.iSecondhandID = iSecondhandID; } public String getsImgKey() { return sImgKey; } public void setsImgKey(String sImgKey) { this.sImgKey = sImgKey; } public String getsExt() { return sExt; } public void setsExt(String sExt) { this.sExt = sExt; } public int getiDefault() { return iDefault; } public void setiDefault(int iDefault) { this.iDefault = iDefault; } public int getiStatus() { return iStatus; } public void setiStatus(int iStatus) { this.iStatus = iStatus; } public int getiCreateTime() { return iCreateTime; } public void setiCreateTime(int iCreateTime) { this.iCreateTime = iCreateTime; } public int getiUpdateTime() { return iUpdateTime; } public void setiUpdateTime(int iUpdateTime) { this.iUpdateTime = iUpdateTime; } public int getiImgType() { return iImgType; } public void setiImgType(int iImgType) { this.iImgType = iImgType; } public int getiRank() { return iRank; } public void setiRank(int iRank) { this.iRank = iRank; } @Override public String toString() { return "Student{" + "iAutoID=" + iAutoID + ", iSecondhandID=" + iSecondhandID + ", sImgKey='" + sImgKey + '\'' + ", sExt='" + sExt + '\'' + ", iDefault=" + iDefault + ", iStatus=" + iStatus + ", iCreateTime=" + iCreateTime + ", iUpdateTime=" + iUpdateTime + ", iImgType=" + iImgType + ", iRank=" + iRank + '}'; } }
编写Student测试类
public class StudentTest { private Session session; @BeforeClass public void init() { session= HibernateUtil.getSession(); } @Test public void run() { Student student=new Student(); student.setiDefault(2); student.setsImgKey("222"); student.setsExt("jpg"); //session.save(student); //student= (Student) session.get(Student.class,17699669); //System.out.println(student); Query query=session.createQuery("from Student where iAutoID in :ids"); List list=new ArrayList(); list.add(1); list.add(3); list.add(5); list.add(6); list.add(10); query.setParameterList("ids",list); query.list().forEach(s -> System.out.println(s)); } @AfterClass public void destory() { HibernateUtil.close(session); } }
相关文章推荐
- hibernate使用annotation进行持久化操作(二)
- Spring中使用HibernateDaoSupport来进行数据库的操作
- hibernate使用注解无法进行更新操作的解决方法
- Hibernate使用Projections进行聚合操作
- Hibernate中使用HQL进行查询操作
- Hibernate中使用HQL进行查询操作
- hibernate使用annotation进行持久化操作(一)
- hibernate4中使用Session doWork()方法进行jdbc操作(代码)
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- java使用dom4j对XML进行CURD操作
- 使用Hibernate原生API实现CURD操作
- Hibernate使用Projections进行聚合操作
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- 【hibernate框架】使用Annotation注解进行实体类操作
- 不使用hibernate只使用struts2结构怎么对数据库进行操作
- hibernate使用annotation进行持久化操作(三)
- Hibernate中使用原生的sql语句进行查询操作
- Hibernate使用Projections进行聚合操作
- 继承HibernateDaoSupport进行CURD操作
- 使用Spring JDBCTemplate进行增删改查curd操作