智销功能

  sssdj:SpringMVC + Spring + SpringDataJpa-> 现在比较流行的一种设计(Spring全家桶)

  

  要集成三大框架(Spring+SpringMVC+SpringDataJpa)

   什么是JPA

  • JPA:(Java Persistence API) ORM的规范
  • JPA是规范,Hibernate是它的实现(不唯一,但最好)
  • 最底层的操作还是JDBC(引入驱动包)

  

  什么是ORM

  o(对象,java面向对象) r(关系,关系型数据库) m(映射)

  基本项目搭建

1.1使用 Maven搭建项目

  

1.2导入相应的jar包

  • 导包类型(hibernate核心包,JPA支持包,驱动包,测试包)
  • JDK1.8插件配置支持

  

2.1 使用工具生成 META-INF\persistence.xml

大家也可以手动创建

  • 快捷键 ctrl+alt+shift+s
  • 进行配置

  • 调整结构(如下)

  • persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <!--
        咱们这个配置是要连接数据库的(jpa支持咱们连接多个数据库)
        persistence-unit:持久化单元(可能有多个,每一个对应一个数据库)
            name:取个名称(随便取)
            transaction(事务,同生共死)-type(类型)
                RESOURCE_LOCAL:本地的事务
                JTA: 分布式系统要使用的事务
        基本的数据库连接配置(四大金刚)
         properties:属性(所有属性都可以在下面的文件中找到)
            resources\源码包\hibernate-release-4.3.8.Final\project\etc\hibernate.properties
       -->
    <persistence-unit name="cn.itsource.jpa" transaction-type="RESOURCE_LOCAL">
        <properties>
            <!--连接数据库的四个基本属性-->
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.url" value="jdbc:mysql:///jpa" />
            <property name="hibernate.connection.username" value="root" />
            <property name="hibernate.connection.password" value="root" />
            <!-- 配置方言(数据库兼容):你要操作的是什么数据库,根据不同的方言拼接不同的SQL
                    InnoDB:支持事务,支持外键   MyISAM:不支持事务,不支持外键(属性高)
            -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <!--配置建表策略(自动化帮我们创建相应的表)-->
            <property name="hibernate.hbm2ddl.auto" value="create" />
            <!--可以看到SQL的展示-->
            <property name="hibernate.show_sql" value="true" />
            <!--可以看到SQL的展示(漂亮一点)-->
            <!--<property name="hibernate.format_sql" value="true" />-->
        </properties>
    </persistence-unit>

</persistence>

2.4 准备domain对象

//告诉JPA:这个类是要做实体化的
/**
 * @Entity:我是一个实体类,JPA快来管我
 * @Table(name = "t_employee"):我和哪些张是有关系的
 *   如果不写,他就认为你有一个表叫:Employee
 */

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "t_employee")
public class Employee {

    /**
     * @Id:代表我是一个主键
     * @GeneratedValue:我们认为主键是自增的
     */
    @Id
    @GeneratedValue
    private Long id;

    private String name;

    private String password;

    //getter,setter省略
}

2.5 基本功能测试

  • Persistence -> EntityManagerFactory -> EntityManager -> crud
  • 注意点:增删改需要事务 EntityManager可以拿到一个事务
/**
 * 在JPA中,所以增删改都需要我们去提交事务
 */
//拿到EntityManagerFactory(传入持久化单元的名称)
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cn.itsource.jpa");
//拿出到实体管理对象
EntityManager entityManager = entityManagerFactory.createEntityManager();
//拿出一个事务 EntityManager里面有一个事务(只能拿到一个事务)
//开始事务
entityManager.getTransaction().begin();
//persist:持久化(保存一条数据)
entityManager.persist(employee);
//提交事务
entityManager.getTransaction().commit();
//关闭资源
entityManager.close();
entityManagerFactory.close();

三.CRUD

先完成了工具类

//帮咱们拿到一个EntityManager对象
public class JpaUtil {

    private static EntityManagerFactory factory;

    //加载时运行,且只运行一次
    static {
        try {
            factory = Persistence.createEntityManagerFactory("cn.itsource.jpa");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //直接拿到EntityManager对象
    public static EntityManager getEntityManager(){
        return factory.createEntityManager();
    }

}

增删改需要添加事务

3.1 添加

entityManager.persist(employee);

3.2 修改

entityManager.merge(employee);

3.3 删除

先查询,再判断,最后删除

 Employee employee = entityManager.find(Employee.class, id);
if(employee!=null) {
    //这里要求咱们传一个对象进去
    entityManager.remove(employee);
}

3.4 查询一条数据

传类型与id

   entityManager.find(Employee.class,id);

3.1 查询所有

query对象(entityManager创建) jpql:面向对象的查询语言

entityManager = JpaUtil.getEntityManager();
//使用查询对象,写JPQL:像SQL,但是更加简单(面向对象)
//1.准备JPQL 不要写* ,from后面是一个类
//String jpql = "select o from cn.itsource.jpa.domain.Employee o";
// String jpql = "select o from Employee o";
String jpql = "from Employee";
//2.根据JPQL拿到查询对象
Query query = entityManager.createQuery(jpql);
//3.返回所有数据
return query.getResultList();

四.建表策略

4.1 create-drop

先删除-> 再创建 -> 用完(EntityManagerFactory关闭)再删(测试)

4.2 create

先删除-> 再创建(测试)

4.3 update

  • 没有表就创建,有就修改
  • 修改只增不减(不改类型)

4.4 validate

验证功能(只验证domain中写好的属性)

原文地址:https://www.cnblogs.com/yh9264426/p/10620578.html

时间: 2024-08-29 01:11:42

智销功能的相关文章

智销功能_产品订单

一.组合关系 1.组合就是强聚合,聚合是双向的多对一,一对多 2.配置最强级联,一方放弃维护交给多方维护,单据都是使用的组合关系 3.保存的时候双方都能找到对象 一方配置 多方配置 二.日期查询 1.SpringMVC获取日期和设置日期 2.Easyui的日期控件 3.解决查询有时分秒的问题 三.明细问题 1.控件的含义 2.数据的修改 3.添加修改细节 (1)添加是清空明细 (2)修改回显 (3)保存时提交数据 (4)双向找到对方 (5)解决n-to-n问题 原文地址:https://www.

智销功能_图表展示

什么是报表 向上级报告情况的表格.简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为: “报表 = 多样的格式 + 动态的数据 表格:详细数据 图表: 直观 图表展示 两种技术:flash(actionscript),h5(画布) flash缺点:不安全,容易崩溃 IE的话只能是flash的方式 两个框架:highchart(收费,支持IE),echart(百度,开源免费) 前端使用 1引入相应的js <!-- 引入highcharts的js支持 --> <script

ORACLE EBS R12 - 寄售功能知多少

材料以寄售方式供应,是制造业实现零库存管理的一种方式.东西放在我这里,不用的时候,东西还是供应商的,用的时候,按"装机"数量进行付款.这种业务模式,对于竞争日趋白热化的家电行业,非常重要.库存量为零,库存占用资金为零,库存周转率百分之百,企业的现金可以流动得更快,这应该是所有企业的心愿.    公司创立于92年,98年正式使用Oracle 10.7版ERP系统,当时公司规模尚小,没有寄售业务,也没有供应商愿意搞寄售,对于供方来说,材料发货了,就希望收到货款,谁也不愿意承担资金被占而货款

微分销系统哪家强?广东广州找今尚

一.微信营销七大优势 从腾讯公司推出微信到2015年4年间,用户数量突破8亿,并持续增长.现在,微信已经成为各大公司或活动营销平台的首选. 微信软件不收取任何费用,每个人都可以打造自己的微信公众号,建立忠实粉丝群,通过文字.图片.语音等传播方式,进行互动交流,达到预期的营销效果. 微信公众号让粉丝的分类多样化,通过用户分组和地域控制,进行分组推送,实现信息精准到达:也可一对一针对性营销,互动沟通,了解到粉丝的真实需求. 相对于传统的营销方式而言,微信营销方式更加多元化,摇一摇.二维码.朋友圈等功

为盟结缘寿岳lf

[关于厨男的诱惑] 2.关注红网财富微信公众号(微信号:rednet-cf),通过后台给我们留言. 世界名花节七大优势 下篇精准扶贫精准脱贫 陈政高说,建立房地产的基础性制度和长效机制意义重大,有利于解决房地产现存的矛盾和问题,特别是解决一些深层次的矛盾和问题,有利于抑制房地产泡沫,防止出现大起大落,实现房地产长期稳定健康发展. 据悉,近年来,洪江区科学确定脱贫路径,精准发力分类治贫,大力实施"补短板.托起点.提质量"等系列措施推进教育精准扶贫,加大对教育基础设施的投入,切实解决农村贫

店员红包激励系统是什么?

每一家实体门店都离不开卖货员(卖货员红包奖励系统开发请联系杨先生:132-4733-4389,V信3113543952).卖货员直接跟销售业绩挂钩,所以想公司要想提高销售业绩从卖货员身上下手是最直接的.为了解决更多的渠道销售问题,下面有点员红包激励系统这个说法,不妨来看一下!        一.商家面临的难题 商家无法让导购员或者店员更加积极卖货,其次对自己的产品无控制,产品的销量等信息无法得到准确的! 二.店员红包激励系统让导购员积极卖货 卖货员红包奖励系统通过以一物一码二维码标签为载体,贴到

主张坚持“九二共n6

2月11日晚,武陵大桥发生一起交通事故,两辆摩托车各自搭乘2人,沿武陵大桥由北往南行驶至桥中段时被一辆小车所撞,小车司机未作任何停留便驶离现场.接警民警一边打120电话,将6名伤者送往医院救治,一边组织疏导交通,开展事故现场勘查和侦查追逃工作.6名伤者对于小车的特征和车牌号码一概不知.一组民警调取北面桥头.南面桥头共8处交通.治安监控视频资料后开始排查,结合现场散落物,判断该肇事车辆车型疑似为一辆红色越野车,视频资料显示当晚车流中确有红色车辆,但被一辆大型车辆遮挡,无法看清号牌:另一组民警负责走

导各高校形成联p

2017年,长沙管理处还将积极争创全国百佳示范服务区和优秀服务区,督促老旧服务区提质改造,做好昭山服务区升级改造后验收和运营准备工作. 红网汨罗市分站2月23日讯(分站记者 喻莎)2月22日,湖南省岳阳市委副书记李爱武带领相关部门负责人,来到汨罗循环经济产业园.白水镇.汨罗镇和古培镇实地考察,并听取汇报,调研指导新型工业化.农业农村工作和基层党建等工作.汨罗市领导喻文.朱平波.闵秀明.彭千红.李冯波.舒文治.陈岭华,循环经济产业园区负责人任伯钧及相关部门.乡镇负责人等参加. 2016年,我国<关

硬件创新、软件升级 洗衣机行业的变革之道

创新是每个行业赖以生存的基础,而需求是产业创新的思想来源和动力源泉,顾客导向又是企业被动创新的启动器.在与我们日常生活联系异常紧密的家电业,上世纪末洗衣机与电冰箱等白电产品需求大兴盛带来的是整个行业的快速发展.遗憾的是进入新世纪后,在互联网与智能时代全面来袭的背景下,冰洗产品中的大多数任然驻足于之前的技术与产品思路,并未全方面跟上新时代发展的潮流,洗衣机尤是其中典型,产品设计到使用体验都并未发生显著改变.和其他每天都有着新变化的细分领域相比,洗衣机在家庭单位中所占的比重和在家电产业中所占据的市场