温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Hibernate,MyBatis,Bee框架

发布时间:2021-10-12 09:39:20 来源:亿速云 阅读:130 作者:iii 栏目:编程语言

这篇文章主要讲解了“如何使用Hibernate,MyBatis,Bee框架”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Hibernate,MyBatis,Bee框架”吧!

一、Hibernate入门实例

1.1 代码例子

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.Configuration; 
public class Client { 
 public static void main(String[] args) { 
 SessionFactory sf = new Configuration().configure().buildSessionFactory(); //为什么要有这种类似模板的语句
 Session s = null; 
 Transaction t = null; 
 try{ 
  //准备数据 
  UserModel um = new UserModel(); 
  um.setUuid("1"); 
  um.setUserId("id1"); 
  um.setName("name1"); 

  s = sf.openSession(); //为什么要有这种类似模板的语句
  t = s.beginTransaction();  //为什么就一个语句s.save(um),也需要显示声明事务
  s.save(um); 
  t.commit(); //为什么就一个语句s.save(um),也需要显示提交事务
 }catch(Exception err){ 
  t.rollback(); 
  err.printStackTrace(); 
 }finally{ 
  s.close(); 
 } 
 } 
}

1.2 配置xxx.hbm.xml

1:与被描述的类同名 ,如:UserModel.hbm.xml

2:存放位置与所描述类存放在同一文件夹下

3:主要有如下四部分配置 :

(1)类和表的映射

(2)主键的映射

(3)类的属性和DB中字段的映射

(4)关系的映射

1.3  日志不够人性化, 看不懂

测试:直接在Elipse里面运行Client文件即可,运行结束,你将会看到在console输出:“Hibernate: insert into tbl_user (userId, name, age, uuid) values (?, ?, ?, ?)”,打开数据库的数据表,你会看到一条值已经加入了。

参考:https://www.jb51.net/article/123469.htm

二、MyBatis入门实例

2.1 代码例子

  9 import org.apache.ibatis.session.SqlSession;
 10 import org.apache.ibatis.session.SqlSessionFactory;
 11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;


//插入用户
 55     public void testInsertUser(){
 56         SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();//1 这种代码,可以不用程序员写吗
 57         SqlSession sqlSession = sqlSessionFactory.openSession();//2  这种代码,可以不用程序员写吗
 58 
 59         User user = new User();
 60         user.setUsername("貂蝉");
 61         user.setSex("0");
 62         user.setBirthday(new Date());
 63         user.setAddress("吕布");
 64 
 65         //执行插入语句
 66         sqlSession.insert("user.insertUser",user);
 67         //提交事务
 68         sqlSession.commit(); //3  这种代码,可以不用程序员写吗
 69         //释放资源
 70         sqlSession.close(); //4  这种代码,可以不用程序员写吗
 71     }
public class SqlSessionFactoryUtils {
 2     private SqlSessionFactoryUtils(){}
 3 
 4     private static class SqlSessionFactoryInstance{
 5 
 6         public static SqlSessionFactory sqlSessionFactory;
 7 
 8         static {
 9             try {
10                 sqlSessionFactory =  new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("SqlMapConfig.xml"));
11             } catch (IOException e) {
12                 e.printStackTrace();
13             }
14         }
15     }
16 
17     public static SqlSessionFactory getSqlSessionFactory(){
18         return SqlSessionFactoryInstance.sqlSessionFactory;
19     }
20 
21 }

2.2 写mapper配置文件

创建UserMapper.xml映射文件

那么简单, 还要写SQL语句??!!

37     <insert id="insertUser" parameterType="com.cenobitor.pojo.User">38         INSERT INTO USER (`username`,`birthday`,`sex`,`address`)39         VALUES (#{username},#{birthday},#{sex},#{address})40     </insert>

2.3 日志,也是占位符, 虽然多了显示参数类型.  但还是与Hibernate一样:日志不够人性化, 看不懂

#{} 和${} 有区别,其中一个有注入风险。

参考:https://www.cnblogs.com/gdwkong/p/8734020.html

三、Bee入门实例

3.1 例子代码

两行Bee相关代码,就可以将数据插入DB。

import org.teasoft.bee.osql.Suid;
import org.teasoft.exam.bee.osql.entity.Orders;
import org.teasoft.honey.osql.core.BeeFactoryHelper;

public class SimpleExam {
	
	public static void main(String[] args) {
		Suid suid=BeeFactoryHelper.getSuid(); //1
		
		Orders orders1=new Orders();
		orders1.setId(100001L);
		orders1.setName("Bee(ORM Framework)");
		
		 suid.insert(orders1); //2
	}
}

3.2  Bee无需要xml配置文件

3.3 日志友好,方便开发调试

3.3.1

[INFO] [Bee] insert SQL: insert into orders(id,name) values (?,?)   [values]: 100001,Bee(ORM Framework)
[INFO] [Bee]  | <--  Affected rows: 1

3.3.2

[INFO] [Bee] insert SQL: insert into orders(id,name) values (?,?)   [values]: 100001,Bee(ORM Framework)
[INFO] [Bee] insert SQL:  ( ExecutableSql )
insert into orders(id,name) values (100001,'Bee(ORM Framework)')
[INFO] [Bee]  | <--  Affected rows: 1

多了一个:

insert into orders(id,name) values (100001,'Bee(ORM Framework)')  -- 这个是可以直接运行的语句,方便开发人员调试

只需要添加配置:

bee.osql.showSql.showExecutableSql=true

3.3.3

[INFO] [Bee] insert SQL: insert into orders(id,name) values (?,?)   [values]: 100001(Long),Bee(ORM Framework)(String)
[INFO] [Bee] insert SQL:  ( ExecutableSql )
insert into orders(id,name) values (100001,'Bee(ORM Framework)')
[INFO] [Bee]  | <--  Affected rows: 1

100001(Long),Bee(ORM Framework)(String)

只需要添加配置:

bee.osql.showSql.showType=true
bee.osql.showSql.showExecutableSql=true

感谢各位的阅读,以上就是“如何使用Hibernate,MyBatis,Bee框架”的内容了,经过本文的学习后,相信大家对如何使用Hibernate,MyBatis,Bee框架这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI