- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Spring Data环境搭建实现过程解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本节作为主要讲解Spring Data的环境搭建 。
JPA Spring Data :致力于减少数据访问层(DAO)的开发量。开发者唯一要做的就是声明持久层的接口,其他都交给Spring Data JPA来帮你完成! 。
使用Spring Data JPA进行持久层开发需要的四个步骤:
环境搭建 。
1.所需要的包 。
① 加入spring包 。
② 加入hibernate包 。
③ 加jpa的包 。
hibernate-entitymanager-4.3.11.Final.jar 。
④ 加c3p0的包 。
⑤ 加mysql的驱动 。
mysql-connector-java-5.1.7-bin.jar 。
⑥加入springData 。
⑦加入 slf4j-api-1.6.1.jar 。
2.Spring Bean配置文件 。
applicationContext.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
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
=
"http://www.springframework.org/schema/context"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xmlns:jpa
=
"http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<
context:property-placeholder
location
=
"classpath:db.properties"
/>
<!--配置数据源 -->
<
bean
id
=
"dataSource"
class
=
"com.mchange.v2.c3p0.ComboPooledDataSource"
>
<
property
name
=
"user"
value
=
"${jdbc.user}"
></
property
>
<
property
name
=
"password"
value
=
"${jdbc.password}"
></
property
>
<
property
name
=
"jdbcUrl"
value
=
"${jdbc.jdbcUrl}"
></
property
>
<
property
name
=
"driverClass"
value
=
"${jdbc.driverClass}"
></
property
>
</
bean
>
<!--配置JPA的entityManagerFactory -->
<
bean
id
=
"entityManagerFactory"
class
=
"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
></
property
>
<!-- 配置JPA的实现 -->
<
property
name
=
"jpaVendorAdapter"
>
<
bean
class
=
"org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
></
bean
>
</
property
>
<
property
name
=
"packagesToScan"
value
=
"com.ntjr.springdata"
></
property
>
<
property
name
=
"jpaProperties"
>
<
props
>
<!-- 二级缓存相关 -->
<!-- <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">ehcache-hibernate.xml</prop> -->
<!-- 生成的数据表的列的映射策略 -->
<
prop
key
=
"hibernate.ejb.naming_strategy"
>org.hibernate.cfg.ImprovedNamingStrategy</
prop
>
<!-- hibernate 基本属性 -->
<
prop
key
=
"hibernate.dialect"
>org.hibernate.dialect.MySQL5InnoDBDialect</
prop
>
<
prop
key
=
"hibernate.show_sql"
>true</
prop
>
<
prop
key
=
"hibernate.format_sql"
>true</
prop
>
<
prop
key
=
"hibernate.hbm2ddl.auto"
>update</
prop
>
</
props
>
</
property
>
</
bean
>
<!--配置事物管理器 -->
<
bean
id
=
"transactionManager"
class
=
"org.springframework.orm.jpa.JpaTransactionManager"
>
<
property
name
=
"entityManagerFactory"
ref
=
"entityManagerFactory"
></
property
>
</
bean
>
<!-- 配置支持注解的事物 -->
<
tx:annotation-driven
transaction-manager
=
"transactionManager"
/>
<!--配置springData -->
<!--base-package:扫描Repository Bean所在的package -->
<
jpa:repositories
base-package
=
"com.ntjr.springdata"
entity-manager-factory-ref
=
"entityManagerFactory"
transaction-manager-ref
=
"transactionManager"
>
</
jpa:repositories
>
</
beans
>
applicationContext.xml
|
3.数据库持久类 。
Person.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
|
package
com.ntjr.springdata;
import
java.util.Date;
import
javax.persistence.Column;
import
javax.persistence.Entity;
import
javax.persistence.GeneratedValue;
import
javax.persistence.Id;
import
javax.persistence.Table;
@Table
(name =
"JPA_PERSONS"
)
@Entity
public
class
Person {
private
Integer id;
private
String lastName;
private
String email;
private
Date birth;
@GeneratedValue
@Id
public
Integer getId() {
return
id;
}
public
void
setId(Integer id) {
this
.id = id;
}
public
String getLastName() {
return
lastName;
}
@Column
(name =
"LAST_NAME"
)
public
void
setLastName(String lastName) {
this
.lastName = lastName;
}
public
String getEmail() {
return
email;
}
public
void
setEmail(String email) {
this
.email = email;
}
public
Date getBirth() {
return
birth;
}
public
void
setBirth(Date birth) {
this
.birth = birth;
}
@Override
public
String toString() {
return
"Person [id="
+ id +
", lastName="
+ lastName +
", email="
+ email +
", birth="
+ birth +
"]"
;
}
}
|
4.DAO 。
PersonRepository.java 。
1
2
3
4
5
6
7
8
9
10
11
|
package
com.ntjr.springdata;
import
org.springframework.data.repository.Repository;
/**
*
* 1、实现Repository接口
* 2、通过注解的方式@RepositoryDefinition将一个bean定义为Repository接口
*/
public
interface
PersonRepsitory
extends
Repository<Person, Integer> {
// 根据lastName获取对应的person
Person getByLastName(String lastName);
}
|
5.测试 。
SpringDataTest.java 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package
com.ntjr.springdata.test;
import
org.junit.Test;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import
com.ntjr.springdata.Person;
import
com.ntjr.springdata.PersonRepsitory;
public
class
SpringDataTest {
private
ApplicationContext ctx =
null
;
{
ctx =
new
ClassPathXmlApplicationContext(
"applicationContext.xml"
);
}
@Test
public
void
getPersonForLastName() {
PersonRepsitory personRepsitory = ctx.getBean(PersonRepsitory.
class
);
Person person = personRepsitory.getByLastName(
"AA"
);
System.out.println(person);
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/zhaobingqing/p/6854322.html 。
最后此篇关于Spring Data环境搭建实现过程解析的文章就讲到这里了,如果你想了解更多关于Spring Data环境搭建实现过程解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如果我声明了类似的类型 type test(NSIZE) integer, len :: NSIZE real :: dummy(NSIZE) contains procedure,
我知道这是一个不太可能的事情,但是由于“选项私有(private)模块”的限制,甚至更糟糕的“私有(private)子/函数”的限制,有谁知道是否有一种方法可以从 Excel 应用程序隐藏 VBA 过
我有两个表,property 和 component。 component.id_property = property.id。 我正在尝试创建一个过程,该过程对所选属性的组件进行计数,如果所选属性没
我有一份报告,它是在 SSRS 2005 中开发的,我正在使用存储过程从数据库中获取结果。报告输出的结果非常简单,如下图所示。 如果假设我正在寻找不同的成员 例如:- MemberID c108 c
我需要一个通用函数/过程,该函数/过程将根据提供的数据计算出我的淡入淡出时间和值,如下所示: 我将字节值保存在字节数组中:这些是起始值。然后,我在其他数组中存储了一些值:这些将是新值。然后我有时间要提
我想在界面的多个按钮上创建相同的操作。是否只能通过创建单独的操作监听器方法并调用执行操作的方法才可行,还是还有其他方法?是否可以将按钮放在一个组中并执行以下操作:- groupButton.setOn
我有以下情况: procedure Test; begin repeat TryAgain := FALSE; try // Code // Code if this an
我正在尝试执行以下操作;假设我在 Oracle 中创建了一个对象类型 create type test as object( name varchar2(12), member procedure p
问题: 如果可能的话,如何声明一个用于任何类型参数的函数 T其中 T 的唯一约束是它被定义为 1D array如 type T is array ( integer range <> ) of a_r
我正在尝试创建这个 mysql 过程来制作一个包含今年所有日期和所有时间的表(以一小时为间隔。) CREATE TABLE FECHAS ( created_at datetime ); CREA
所以, 我在这里面临一个问题,这让我发疯,我认为这是一个愚蠢的错误,所以我不是 MySQL 的新手,但它并不像我想象的那样工作。 尝试将此语句部署到 MySQL 后,我收到此错误: ERROR 106
我有一个架构,其中包含星球大战中的人物列表、他们出现的电影、他们访问的行星等。这是架构: CREATE DATABASE IF NOT EXISTS `starwarsFINAL` /*!40100
我一直在为一家慈善机构创建一款应用程序,允许家庭在节日期间注册接收礼物。数据库组织有多个表。下面列出了这些表(及其架构/创建语句): CREATE TABLE IF NOT EXISTS ValidD
正如上面标题所解释的,我正在尝试编写一个sql函数来按日期删除表而不删除系统表。我在此消息下方放置了一张图片,以便直观地解释我的问题。任何帮助将不胜感激!感谢您的时间! 最佳答案 您可以通过查询INF
DELIMITER $$ CREATE PROCEDURE INSERT_NONE_HISTORY_CHECKBOX() BEGIN DECLARE note_id bigint(20); F
是否可以编写一个存储过程或触发器,在特定时间在数据库内部自动执行,而无需来自应用程序的任何调用?如果是,那么任何人都可以给我一个例子或链接到一些我可以阅读如何做到这一点的资源。 最佳答案 查看 pgA
我需要创建一个过程:1)从表中的字段中选择一些文本并将其存储在变量中2) 更新相同的记录字段,仅添加 yyyymmdd 格式的日期以及过程中的附加文本输入...类似这样的... delimiter /
好的,这就是我想做的: 如果条目已存在(例如基于字段name),则只需返回其id 如果没有,请添加 这是我迄今为止所管理的(对于“如果不存在,则创建它”部分): INSERT INTO `object
以下是我编写的程序,用于找出每位客户每天购买的前 10 件商品。 这是我尝试过的第一个 PL/SQL 操作。它没有达到我预期的效果。 我使用的逻辑是接受开始日期、结束日期以及我对每个客户感兴趣的前“x
我正在尝试在MySQL中创建一个过程那insert week s(当年)发送至我的 week table 。但存在一个问题,因为在为下一行添加第一行后,我收到错误: number column can
我是一名优秀的程序员,十分优秀!