国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解非spring框架下使用querydsl的方法

詳解非spring框架下使用querydsl的方法

2021-06-30 14:47penngo Java教程

Querydsl是一個采用API代替拼湊字符串來構造查詢語句,可跟 Hibernate 和 JPA 等框架結合使用。本文介紹的是非spring環境下querydsl JPA整合使用,感興趣的小伙伴們可以參考一下

querydsl是一個采用api代替拼湊字符串來構造查詢語句,可跟 hibernate 和 jpa 等框架結合使用。網上很多教程都是結合spring jpa框架下使用的教程,本文介紹的是非spring環境下querydsl jpa整合使用。

1、使用eclipse生成jpa實體類,idea也能生成同樣jpa實體類。

鼠標右鍵打開jpa tools工具:

詳解非spring框架下使用querydsl的方法

創建數據庫鏈接:

詳解非spring框架下使用querydsl的方法

詳解非spring框架下使用querydsl的方法

詳解非spring框架下使用querydsl的方法

選擇那些數據庫表需要生成jpa實體類:

詳解非spring框架下使用querydsl的方法

關聯表生成:

詳解非spring框架下使用querydsl的方法

設置實體生成屬性:

詳解非spring框架下使用querydsl的方法

單個實體屬性修改

詳解非spring框架下使用querydsl的方法

生成的jpa實體類adminlog.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.test.db.entity;
 
import java.io.serializable;
import javax.persistence.*;
import java.util.date;
 
 
/**
 * the persistent class for the admin_log database table.
 *
 */
@entity
@table(name="admin_log")
@namedquery(name="adminlog.findall", query="select a from adminlog a")
public class adminlog implements serializable {
    private static final long serialversionuid = 1l;
 
    @id
    @generatedvalue(strategy=generationtype.auto)
    @column(unique=true, nullable=false)
    private string id;
 
    @column(name="action_id", length=20)
    private string actionid;
 
    @column(name="client_ip", length=15)
    private string clientip;
 
    @column(name="controller_id", length=20)
    private string controllerid;
 
    @temporal(temporaltype.timestamp)
    @column(name="create_date")
    private date createdate;
 
    @column(name="create_user", length=50)
    private string createuser;
 
    @column(name="func_name", length=50)
    private string funcname;
 
    @column(name="module_name", length=50)
    private string modulename;
 
    @column(name="right_name", length=50)
    private string rightname;
 
    @column(length=200)
    private string url;
 
    public adminlog() {
    }
 
    public string getid() {
        return this.id;
    }
 
    public void setid(string id) {
        this.id = id;
    }
 
    public string getactionid() {
        return this.actionid;
    }
 
    public void setactionid(string actionid) {
        this.actionid = actionid;
    }
 
    public string getclientip() {
        return this.clientip;
    }
 
    public void setclientip(string clientip) {
        this.clientip = clientip;
    }
 
    public string getcontrollerid() {
        return this.controllerid;
    }
 
    public void setcontrollerid(string controllerid) {
        this.controllerid = controllerid;
    }
 
    public date getcreatedate() {
        return this.createdate;
    }
 
    public void setcreatedate(date createdate) {
        this.createdate = createdate;
    }
 
    public string getcreateuser() {
        return this.createuser;
    }
 
    public void setcreateuser(string createuser) {
        this.createuser = createuser;
    }
 
    public string getfuncname() {
        return this.funcname;
    }
 
    public void setfuncname(string funcname) {
        this.funcname = funcname;
    }
 
    public string getmodulename() {
        return this.modulename;
    }
 
    public void setmodulename(string modulename) {
        this.modulename = modulename;
    }
 
    public string getrightname() {
        return this.rightname;
    }
 
    public void setrightname(string rightname) {
        this.rightname = rightname;
    }
 
    public string geturl() {
        return this.url;
    }
 
    public void seturl(string url) {
        this.url = url;
    }
 
}

2、生成querydsl查詢類

maven pom.xml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<project xmlns="http://maven.apache.org/pom/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
    xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelversion>4.0.0</modelversion>
    <groupid>com.test.db</groupid>
    <artifactid>dbtest</artifactid>
    <packaging>jar</packaging>
    <version>1.0-snapshot</version>
    <name>dbtest</name>
    <url>http://maven.apache.org</url>
    <properties>
        <querydsl.version>4.2.1</querydsl.version>
    </properties>
    <dependencies>
        <dependency>
            <groupid>junit</groupid>
            <artifactid>junit</artifactid>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupid>com.querydsl</groupid>
            <artifactid>querydsl-sql</artifactid>
            <version>${querydsl.version}</version>
        </dependency>
        <dependency>
            <groupid>com.querydsl</groupid>
            <artifactid>querydsl-apt</artifactid>
            <version>${querydsl.version}</version>
        </dependency>
        <dependency>
            <groupid>com.querydsl</groupid>
            <artifactid>querydsl-jpa</artifactid>
            <version>${querydsl.version}</version>
        </dependency>
        <dependency>
            <groupid>com.querydsl</groupid>
            <artifactid>querydsl-sql-codegen</artifactid>
            <version>${querydsl.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupid>org.eclipse.persistence</groupid>
            <artifactid>org.eclipse.persistence.jpa</artifactid>
            <version>2.6.0</version>
        </dependency>
 
        <dependency>
            <groupid>org.slf4j</groupid>
            <artifactid>slf4j-log4j12</artifactid>
            <version>1.6.1</version>
        </dependency>
 
        <dependency>
            <groupid>mysql</groupid>
            <artifactid>mysql-connector-java</artifactid>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupid>com.alibaba</groupid>
            <artifactid>druid</artifactid>
            <version>1.1.10</version>
        </dependency>
 
        <dependency>
            <groupid>org.hibernate</groupid>
            <artifactid>hibernate-entitymanager</artifactid>
            <version>5.4.0.final</version>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <!-- 生成jpa實體插件 -->
            <plugin>
                <groupid>com.querydsl</groupid>
                <artifactid>querydsl-maven-plugin</artifactid>
                <version>${querydsl.version}</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>jpa-export</goal>
                        </goals>
                        <configuration>
                            <targetfolder>${project.basedir}/target/generated-sources/java</targetfolder>
                            <packages>com.test.db.entity</packages>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- 生成jpa實體插件 -->
            <!--
            <plugin>
           <groupid>com.mysema.maven</groupid>
           <artifactid>apt-maven-plugin</artifactid>
           <version>1.1.3</version>
           <executions>
            <execution>
             <goals>
              <goal>process</goal>
             </goals>
             <configuration>
              <outputdirectory>target/generated-sources/java</outputdirectory>
              <processor>com.querydsl.apt.jpa.jpaannotationprocessor</processor>
             </configuration>
            </execution>
           </executions>
          </plugin>
           -->
            <plugin>
                <groupid>org.apache.maven.plugins</groupid>
                <artifactid>maven-compiler-plugin</artifactid>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

執行命令mvn compile或mvn eclipse:eclipse生成jpa實體對應的querydsl查詢類

adminlog.java對應的querydsl對應查詢類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.test.db.entity;
 
import static com.querydsl.core.types.pathmetadatafactory.*;
 
import com.querydsl.core.types.dsl.*;
 
import com.querydsl.core.types.pathmetadata;
import javax.annotation.generated;
import com.querydsl.core.types.path;
 
 
/**
 * qadminlog is a querydsl query type for adminlog
 */
@generated("com.querydsl.codegen.entityserializer")
public class qadminlog extends entitypathbase<adminlog> {
 
  private static final long serialversionuid = 392071999l;
 
  public static final qadminlog adminlog = new qadminlog("adminlog");
 
  public final stringpath actionid = createstring("actionid");
 
  public final stringpath clientip = createstring("clientip");
 
  public final stringpath controllerid = createstring("controllerid");
 
  public final datetimepath<java.util.date> createdate = createdatetime("createdate", java.util.date.class);
 
  public final stringpath createuser = createstring("createuser");
 
  public final stringpath funcname = createstring("funcname");
 
  public final stringpath id = createstring("id");
 
  public final stringpath modulename = createstring("modulename");
 
  public final stringpath rightname = createstring("rightname");
 
  public final stringpath url = createstring("url");
 
  public qadminlog(string variable) {
    super(adminlog.class, forvariable(variable));
  }
 
  public qadminlog(path<? extends adminlog> path) {
    super(path.gettype(), path.getmetadata());
  }
 
  public qadminlog(pathmetadata metadata) {
    super(adminlog.class, metadata);
  }
 
}

3、查詢例子

jpa持久化meta-inf\persistence.xml配置文件,entitymanagerfactory創建實例時,需要讀取該配置文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
  xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
  xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
  version="2.0">
  <persistence-unit name="jpa" transaction-type="resource_local">
  <provider>org.hibernate.ejb.hibernatepersistence</provider>
    <properties>
      <!-- .mysqlinnodbdialect -->
        <property name="hibernate.dialect" value="org.hibernate.dialect.mysql8dialect"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/yiiboot?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai&usessl=true" />
      <property name="javax.persistence.jdbc.user" value="root" />
      <property name="javax.persistence.jdbc.password" value="123" />
 
      <property name="connection.provider_class" value="com.alibaba.druid.support.hibernate.druidconnectionprovider" />
      <!-- 配置初始化大小、最小、最大 -->
      <property name="initialsize" value="1" />
      <property name="minidle" value="1" />
      <property name="maxactive" value="20" />
      <!-- 配置獲取連接等待超時的時間 -->
      <property name="maxwait" value="60000" />
 
      <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
      <property name="timebetweenevictionrunsmillis" value="60000" />
 
      <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
      <property name="minevictableidletimemillis" value="300000" />
    </properties>
  </persistence-unit>
</persistence>

測試代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.test.db.main;
 
import java.util.list;
import javax.persistence.entitymanagerfactory;
import javax.persistence.persistence;
import com.querydsl.jpa.impl.jpaqueryfactory;
import com.test.db.entity.adminmodule;
import com.test.db.entity.qadminmodule;
 
public class jpatest {
    public static void main(string[] args) throws exception{
        string persistenceunitname = "jpa";
        entitymanagerfactory entitymanagerfactory =
        persistence.createentitymanagerfactory(persistenceunitname);
        jpaqueryfactory queryfactory = new jpaqueryfactory(entitymanagerfactory.createentitymanager());
        qadminmodule adminmodule = qadminmodule.adminmodule;
        list<adminmodule> list = queryfactory.selectfrom(adminmodule).fetch();
        list.foreach(module->{
            system.out.println(module.getid() + "," + module.getdisplaylabel() + "," + module.getcreatedate());
        });
    }
}

querydsl官方文檔:http://www.querydsl.com/static/querydsl/latest/reference/html/ch02.html#jpa_integration

java類庫:https://www.21doc.net/java/awesomejava#database

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://my.oschina.net/penngo/blog/2998232

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人日韩在线观看 | 天天爽视频 | 亚洲综合一区二区 | 亚洲影视在线 | 精品自拍视频在线观看 | 天天综合网久久综合网 | 国产精品一区二 | 亚洲第一成年人视频 | 欧美成人免费在线观看 | 亚洲视频在线免费观看 | 亚洲精品一二三区 | 久久久一二三 | 亚洲自拍偷拍精品 | 国产黄色一级录像 | 成人免费一区二区三区视频网站 | 国产精品三级久久久久久电影 | 91精品久久久久久久久久久 | 亚洲国产婷婷香蕉久久久久久99 | 国产女爽爽视频精品免费 | 91亚洲精品一区 | 99r在线| 欧美日韩中文字幕 | 久久丁香 | 国产亚洲精品精品国产亚洲综合 | 起碰在线视频 | 国产精品视频一区二区三区 | 成人在线视频免费观看 | 国产一区二区三区免费观看 | 午夜视频网 | 日本少妇一区二区三区 | 午夜视频在线观看网站 | 一级特黄毛片 | 日本一区二区视频在线播放 | 欧美精品久久久 | 日本精品在线观看 | 亚洲欧美在线观看视频 | 国产v日产∨综合v精品视频 | 精品自拍视频在线观看 | 国产一区二区免费 | 欧美日韩中文字幕 | 先锋资源在线观看 |