1 Hibernate数据持久化,没有和Spring整合。先从Hibernate开始理解
用到的架包:
实体
public class User {
private int id;
private String name;
private String pwd;
//省略get set 方法
映射的表说明:
<hibernate-mapping>
<class name="cn.siggy.pojo.User" table="user">
<id name="id">
<!-- 主键生成策略 -->
<generator class="native" />
</id>
<!-- 实体类的属性 -->
<property name="name" />
<property name="pwd" />
</class>
</hibernate-mapping>
Hibernate配置信息
<hibernate-configuration>
<session-factory>
<!-- 配置数据库信息 -->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/hibernate?useSSL=false
</property>
<property name="connection.username">root</property>
<property name="connection.password">123123</property>
<!-- 数据库方言 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="cn/siggy/pojo/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
增删改查:
public static void main(String[] args) {
}
/**
* 添加
*/
public static void save01() {
Session session = getSession();
Transaction transaction = session.beginTransaction();// 开启事务
User user = new User();
user.setName("张三疯");
user.setPwd("1111");
session.save(user);// 保存
transaction.commit();// 提交
session.close();
System.out.println("run over");
}
/**
* 删除,通过load方式获取然后删除
*/
public static void delete01() {
Session session = getSession();
Transaction transaction = session.beginTransaction();
User user = (User) session.load(User.class, 11);// 当数据不存在时,会抛出异常
session.delete(user);
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 删除,get方式获取然后删除
*/
public static void delete02() {
Session session = getSession();
Transaction transaction = session.beginTransaction();
User user = (User) session.get(User.class, 12);// 当数据不存在时,不会抛出异常
session.delete(user);
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 删除,通过主键构造一个对象然后删除
*/
public static void delete03(){
Session session=getSession();
Transaction transaction=session.beginTransaction();
User user=new User();
user.setId(13);
session.delete(user);
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 更新,不能选择性更新
*/
public static void update01(){
Session session=getSession();
Transaction transaction=session.beginTransaction();
User user=new User();
user.setId(14);
user.setPwd("22211");//不需要更新的数据自动为空,没有选择性更新
session.update(user);
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 更新,能选择性的更新数据
*/
public static void update02(){
Session session=getSession();
Transaction transaction=session.beginTransaction();
User user=(User)session.get(User.class, 14);
System.out.println("1"+user.getName());
user.setName("dema");
session.update(user);
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 查询,使用HQL,不分页
*/
public static void query01() {
Session session = getSession();
Transaction transaction = session.beginTransaction();
Query query = session.createQuery("from User");
List<User> lst = query.list();
System.out.println("数据条数:"+lst.size());
System.out.println();
for (User user : lst) {
System.out.println(user.getId()+" "+user.getName()+" "+user.getPwd());
}
transaction.commit();
session.close();
System.out.println("run over");
}
/**
* 查询,使用HQL,分页
*/
public static void query02(){
Session session = getSession();
Transaction transaction = session.beginTransaction();
Query query=session.createQuery("from User");
query.setFirstResult(0);//设置从第几个开始查
query.setMaxResults(10);//设置条数
List<User> lst = query.list();
System.out.println("数据条数:"+lst.size());
for (User user : lst) {
System.out.println(user.getId()+" "+user.getName()+" "+user.getPwd());
}
transaction.commit();
session.close();
System.out.println("run over");
}
public static void query(){
StringBuffer sqlStr = new StringBuffer();
sqlStr.append("select id,no,name,pwd");
SQLQuery query = (SQLQuery) getSession().createSQLQuery(sqlStr.toString());
List<Object[]> lstObjArr = query.list();
for(Object[] objArr:lstObjArr){
for(Object obj:objArr){
System.out.print(obj+" ");
}
System.out.println();
}
System.out.println("run over");
}
/**
* 获取SessionFactory
* @return
*/
private static Session getSession(){
// 1新建Configuration对象
//Configuration cfg=new Configuration().configure();
Configuration cfg=new Configuration().configure();
// 2通过Configure创建SessionFactory对象
/*SessionFactory sf=cfg.buildSessionFactory();*/
/* ServiceRegistry sr=new ServiceRegistryBuilder().appl */
ServiceRegistry registry=new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build();
SessionFactory sessionFactory=cfg.buildSessionFactory(registry);
return sessionFactory.openSession();
}