一、Bee入门实例
Bee入门实例真的需要十分钟吗?
操作简单,只需在bee.properties里配置了DB相关的url,用户名,密码,
再用一句语句,就可得到对象。
1.
2.Java代码
SuidRich suidRich=BeeFactoryHelper.getSuidRich(); Orders orders=suidRich.selectById(new Orders(), 100001); Logger.info(orders.toString());//打印
3. 导入jar或用maven,生成javabean,这些几种ORM都是需要的。
关键是Bee还提供了简单易用的生成Javabean工具;不需要xml配置。
再看下以下的例子对比,就知道以前的程序员是多累,现在的程序员,是多么的幸福!
想多些时间做核心业务,在CRUD中解放出来,Bee是你最好的选择。
二、Hibernate入门例子
1.下载Hibernate所需jar包
2.新建java项目,并导入jar包
3.新建User.java文件,User类的属性于数据库表的字段一一对应
4.新建User.hbm.xml文件,建立User类和p_user表的映射关系
5.在src目录下新建hibernate.cfg.xml文件
org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver root Root jdbc:mysql://localhost/pblog true
6.创建HibernateUtil工具类,用来获取hibernate的session对象
package com.utils;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateUtil {
private static SessionFactory factory = null;
static {
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
factory = configuration.buildSessionFactory(serviceRegistry);
}
public static Session getSession() {
return factory.openSession();
}
}
7.创建UserDao.java文件,对User进行增删改查操作
import com.model.User;
import com.utils.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class UserDao {
public User getUserByID(int id)
{
Session session = HibernateUtil.getSession();
User user = (User)session.get(User.class, id);
session.close();
return user;
}
。。。
}
参考:
https://blog.csdn.net/weixin_40550726/article/details/83386210
看似有用, 但却多余,累赘的东西。
User.hbm.xml
hibernate.cfg.xm
每个dao相关的类,都布满这种代码。确实看是类似,甚至一样,但又需要我们写。
然后我们就变成了代码的苦力,不断重复编写类似代码。
看回一、Bee入门实例, 跳出原来的局限, 你会豁然开朗,有种海阔凭鱼跃的感觉!
三、Mybatis入门例子
4、于resources文件夹中创建SqlMapConfig.xml
6.配置SQL查询的映射文件(resources目录)
7.加载映射文件,在SqlMapConfig.xml配置mappers节点
8.使用例子
package com.cenobitor;
import com.cenobitor.Utils.SqlSessionFactoryUtils;
import com.cenobitor.pojo.User;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
public class AppTest extends TestCase {
//根据id查找用户
public void testGetUserById() throws IOException {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
//查找配置文件,创建输入流
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//加载配置文件,创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = sfb.build(inputStream);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行查询,参数一:要查询的statementId,参数二:sql语句入参
User user = sqlSession.selectOne("user.getUserById", 1);
//输入查询结果
System.out.println(user);
//释放资源
sqlSession.close();
}
//根据用户名查找用户列表
public void testGetUserByName(){
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
List list = sqlSession.selectList("user.getUserByName", "张");
for (User user : list) {
System.out.println(user);
}
sqlSession.close();
}
...
}
9、抽取SqlSessionFactoryUtils工具类,共享SqlSessionFactory的对象
public class SqlSessionFactoryUtils {
private SqlSessionFactoryUtils(){}
private static class SqlSessionFactoryInstance{
public static SqlSessionFactory sqlSessionFactory;
static {
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("SqlMapConfig.xml"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return SqlSessionFactoryInstance.sqlSessionFactory;
}
}
参考:https://www.cnblogs.com/gdwkong/p/8734020.html
Mybatis需要
User.xml
UserMapper.xml
UserMapper接口
而Bee 根据其它条件查询,无需提前准备接口,无需写sql
Orders orders1=new Orders();
orders1.setName("Bee");
List list=suidRich.select(orders1);
//Bee 根据其它条件查询,无需提前准备接口,无需写sql
Orders orders2=new Orders();
orders2.setUserid("myuserId");
List list2=suidRich.select(orders2);
Bee可以做到:
智能化自动过滤null和空字符串,不再需要写判断非空的代码。
动态/任意组合查询条件,不需要提前准备dao接口,有新的查询需求也不用修改或添加接口。
复杂查询前后端可自动解析。
看回一、Bee入门实例, 跳出原来的局限, 你会豁然开朗,有种天高任鸟飞的感觉!
使用Bee, 不需要再写些多余的固定代码了, 让你不再是只会写CRUD的菜单,可以有更多的时间来学更加高级的技术!



