Giter Club home page Giter Club logo

leopard

orm(出错提示 : [email protected]) 前言:代码写的很乱,只是实现了各种功能,没有去做优化,后续会有大量的修改优化。 本次仅采用简单的工厂模式,单例模式进行开发的。

极速开发- 快速入手- 简单的逆向工程- 快速将数据库表生成javabean- 支持jdbc事物,每次对数据库更新操作都要提交事物- 支持多表连接,外键设置(陆续优化中)-       详情见开发文档 LEOPARD 一. leopard快速上手:

  1. 引入核心jar包 leopard-orm.jar
  2. 引入所依赖的jar包 ,常用到c3p0连接池,文件操作
  3. 在类路径下创建配置文件,配置如下: (配置文件的头文件要写清楚,因为dtd我是放在自己的服务器上作为公共的dtd,便于维护。) 数据源配置二选一 id固定为dataSource , class为插件的完整类名。 实体对象包一定要配 ,不然扫描不到对象。 逆向工程只用一次 用的时候配就行 ,因为获取路径问题,所有要配置项目根径。 包名与实体对象包保持一致,不然会出错。

二. 配置好环境后,配置entity类: @Table 标志该类对应数据库的一张表 - value值为表名 ,不写则默认取类名作为表名。 @Column 对应表中的字段名 - value值为表中的字段名 ,不写则默认取变量名。 IsPrimary 是否为主键 ,有三种类型: NO(不是主键,也是默认的属性)- YES(是主键)- AUTOINCREMENT(是主键,且自增)- AllowNull ( 是否允许为空,默认为false)- relation (外键)

@Table("user") public class User{

@Column(isPrimary = Primary.YSE)
private long id;

@Column(value = "name",allowNull = true)
private String name;

@Column
private String phone;

@Column
private String address;
//省略getset方法 构造方法

}

三. 方法介绍,极速开发模式:

@Test
public void Test(){
    SessionFactory factory=Factory.getSessionFactory("classpath:config.xml"); //获取session  传入我们的配置文件
    SqlSession session=factory.openSession();
        User user=new User();
        user.setId(10086);
        user.setName("Leopard");
        user.setPhone("10010");
        user.setAddress("China");
        List list=new ArrayList();
        list.add(user);
    try {   //所有操作均有SqlSessionException异常
        session.Save(user);  //传一个具体的对象
        session.SaveMore(list);  //多个对象放入list 好比批量操作,实际上并没有用到批量
        session.Delete(user); //删除条件即为对象的数据
        session.Delete(User.class, 10086, 10010, 10000); //根据唯一主键删除数据 ,传一个或多个主键值
        session.Update(user,10086);//根据主键修改数据  目标数据是该对象里的数据
        session.Get(User.class); // 查询所有数据
        session.Get(user);   //查询单条数据 查询条件即为对象的数据  如果匹配到多条数据,则只返回第一条
        session.Get(User.class,10000,10086);// 一样按主键查找
        session.Get(User.class,"where id=? order by id desc",10086);  //自定义条件查询 动态sql
        session.Get(User.class,1,5);  //分页查询  查询第一页数据  每页显示5 条数据 PageInfo来接收(下问文详细介绍)
        session.Get("","");  //自定义动态sql 返回的是结果集


        session.Commit();  //每一次对更新数据库操作都要提交事物  不然数据不会写入数据库
        session.Stop();  //每执行完一次都要将其暂停
        session.Close();  // 关闭此次Session 下次要用时要重新获取
       
    } catch (SqlSessionException e) {
        e.printStackTrace();
    }

}

逆向工程生成JavaBean   简单两行代码解决
@Test
    public void GeneratorTest(){
        GeneratorFactory factory=Factory.getGeneratorFactory("classpath:config.xml");  // 开启Generator工厂
        try {
           factory.openGenerator();    //执行逆向工程
        } catch (Exception e) {
            e.printStackTrace();
        }

       }

四. 方法介绍,分页查询:

@Test
public void PageTest(){
    /*目前仅封装了我们开发中常用的一些数据信息。
    获取分页信息 :getPage();  // 获取当前查询的页数
    getTotalPages(); //获取总页数
    getPageSize();   //获取每页显示的数据数量
    getTotalRows();  //获取总记录数
    getList();       //获取目标数据,也就是我们要查询的数据*/
    SessionFactory factory=Factory.getSessionFactory("classpath:config.xml");  //获取session工厂
    SqlSession session=factory.openSession();  //打开session连接 开始操作
    try {
        PageInfo temp=session.Get(User.class,3,10);  //分页查询开始 用封装好的pageInfo接收查询结果
        session.Stop();
        session.Close();
        List<User> users=temp.getList();
        for (User u :users){
            System.out.println(u.toString());
        }
        temp.description();
        //  System.out.println(" 结果:"+temp);
    } catch (SqlSessionException e) {
        e.printStackTrace();
    }
}

jleopard's Projects

easyweb icon easyweb

Java前后端分离的开发平台,使用RESTful风格、OAuth2无状态鉴权。

layuicms2.0 icon layuicms2.0

基于layuicms的升级和优化,同样支持响应式,并且比layuicms支持度更好,想知道更多功能请访问

ok-admin icon ok-admin

一个很赞的,扁平化风格的,响应式布局的后台管理模版,旨为后端程序员减压!

tf-idf-python icon tf-idf-python

Term frequency–inverse document frequency for Chinese novel/documents implemented in python.

th-music-video-generator icon th-music-video-generator

Touhou Project random music video generator/player, crawling image and video from websites to generate MV.

zgjm icon zgjm

👳🏼 微信小程序:周公解梦境

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.