當前位置:編程學習大全網 - 源碼下載 - 如何在myeclipse中進行hibernate的增刪改查

如何在myeclipse中進行hibernate的增刪改查

在myeclipse中進行hibernate的增刪改查

Hibernate是壹個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。

1.創建數據庫驅動連接

單擊myeclipse工作空間的右上角的編輯模式,選擇Myeclipse Database Explorer。

新建數據庫連接

右擊左側的面板,選擇new,新建壹個數據庫連接。

配置連接文件

根據妳的數據庫選擇不同的數據連接方式,填寫妳要創建的連接的名字,URL等信息,如圖。

最重要的是加載驅動,沒有的話到網上下載自己數據庫的驅動。

我這裏是JDBC,連接Mysql數據庫。單擊next——finish。

選中妳新建的數據庫,然後單擊連接按鈕開始進行連接或者雙擊新建的數據庫名連接,註意:壹定保證妳的數據庫服務正常工作,否則是連接不上的。

2.MyEclipse怎麽自動建立持久類映射.hbm.xml

連接上之後就可以建立持久類映射了。

打開數據庫中的table,選中需要反向工程生成映射的表

選中需要反向工程生成映射的表,右鍵->Hibernate Reverse Engineering

然後配置壹些數據

第壹步就是配置數據表到實體類之間的映射。

Java src folder ——指定把反向工程生成的文件放入到那個項目中(這裏要指向到src文件夾才可以)

Java package ——實體類和映射文件存放到哪個包當中。(這裏通常是項目中的entity包裏)

Create POJO<>DB Table mapping information —— 是否生成對應的映射文件(*.hbm.xml文件)

Add Hibernate Mapping Annotations to POJO —— 使用註解配置實體類(註意!上述兩者中選擇壹種即可,要麽是實體類+.hbm.xml,實體類+註解)

Java Data Object (POJO <> DB Table) —— 是否生成實體類文件(註意!下面的Createabstract class不要選!因為實體類不需要抽象父類)

finish後在上面所配置的包中就會有實體類和映射文件了

3.Myeclipse自動創建hibernate

在這之前建立web object項目和mysql中的數據庫就不說了、、這裏我的項目名為HibernateTest數據庫為hospital,這是隨便的啦、、、

工具:myeclipse 10

過程:選中項目,右鍵選擇:MyEclipse -> Project Facets[Capabilities] -> Install HibernateFacet,選擇版本

然後next

next選擇數據庫連接

next放置hibernate的session工廠

finish後項目中就會自動加載hibernate的jar包等,項目中的hibernate就已經好了。。

建立簡單增刪查改

我沒有寫dao接口、、、

daoImpl.java

public class daoImpl { //增加User

public void addUser(Users user) {

Session session = HibernateSessionFactory.getSession();

Transaction ts = null; try{

log4jInput(user);

ts = session.beginTransaction();

session.save(user);

ts.commit();

}catch(Exception ex){ //回滾

ts.rollback();

ex.printStackTrace();

}finally{

HibernateSessionFactory.closeSession();

}

}

//刪除User表中的數據 根據主鍵刪除

public boolean deleteUser(Users user){

Session session=HibernateSessionFactory.getSession();

Transaction ts = null; try{

log4jInput(user);

ts = session.beginTransaction();

session.delete(user);

ts.commit(); return true;

}catch(Exception ex){

ts.rollback();

System.out.println("delete");

ex.printStackTrace(); return false;

}finally{

HibernateSessionFactory.closeSession();

}

} //改User表中的數據 根據主鍵更改其他信息

public boolean updateUser(Users user){

Session session=HibernateSessionFactory.getSession();

Transaction ts = null; try{

log4jInput(user);

ts = session.beginTransaction();

session.update(user);

ts.commit(); return true;

}catch(Exception ex){

ts.rollback();

System.out.println("update");

ex.printStackTrace(); return false;

}finally{

HibernateSessionFactory.closeSession();

}

} //查詢User表 1.條件where後面的條件 2.占位符對應的數據 3.value對應的數據類型 在沒有時為null

public List<Users> queryUser(String where,String[] value,Type[] type){

Session session = HibernateSessionFactory.getSession();

Criteria criteria=null; if(where!=null){

criteria = session.createCriteria(Users.class)

.add(Restrictions.sqlRestriction(where, value, type));

}else{

criteria = session.createCriteria(Users.class);

}

@SuppressWarnings("unchecked")

List<Users> users=criteria.list();

HibernateSessionFactory.closeSession(); return users;

}

//log4j的使用 添加log4j的jar,將log4j.properties文件放入src或web info文件下

public void log4jInput(Object o){

Logger log=Logger.getLogger("org.zblog.test");

log.info(o.toString());

}}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283

也是直接在bean中測試的

public class UserBean { public static void main(String[]a){

addUser(); //deleteUser();

//updateUser();

//queryUser();

} public static void addUser(){

Users user=new Users();

user.setUsername("root");

user.setPassword("root");

user.setRole("admin");

dao d=new dao();

d.addUser(user);

} public static void deleteUser(){

Users user=new Users();

user.setUid(15);//主鍵id

dao d=new dao();

System.out.print(d.deleteUser(user));

} //根據主鍵更改其他信息

public static void updateUser(){

Users user=new Users(); //主鍵也要設置

user.setUid(14);//主鍵id

user.setUsername("老王");

user.setPassword("1234");

user.setRole("admin");

dao d=new dao();

d.updateUser(user);

} public static void queryUser(){

dao d=new dao();

String[] value={"admin"};

Type[] type={Hibernate.STRING};

List<Users> li=d.queryUser("username=?",value,type); for(int i=0;i<li.size();i++){

System.out.println(li.get(i).toString());

}

}

}123456789101112131415161718192021222324252627282930313233343536373839404142434445

可以直接執行了,可能會出現log4j的警告,但這不會影響數據庫裏的修改

log4j的警告:

log4j:WARN No appenders could be found for logger(org.apache.commons.digester.Digester.sax).

log4j:WARN Please initialize the log4j system properly.

這是log4j沒有配置引起的,可以將它的配置文件log4j.properties放置在src下就可以了。

log4j.properties的內容是:

log4j.rootLogger=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.category.org.zblog=ERROR,A1

log4j.category.org.zblog=INFO,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppenderlog4j.appender.A2.File=E:/study/log4j/zhuwei.htmllog4j.appender.A2.MaxFileSize=500KB

log4j.appender.A2.MaxBackupIndex=1log4j.appender.A2.layout=org.apache.log4j.HTMLLayout

  • 上一篇:北京現代名圖六速自動變速器故障?
  • 下一篇:為什麽直播會火的壹塌糊塗?
  • copyright 2024編程學習大全網