当前位置: 首页 > 编程日记 > 正文

myeclipse java可视化_使用MyEclipse可视化开发Hibernate实例

使用MyEclipse可视化开发Hibernate实例

2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。

这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率。操作的数据库表还是guestbook表,所使用MyEclipse的版本为7.0,不同的MyEclipse版本之间对于开发Hibernate应用差异不大。

在7.0版本中,内置了对Hibernate 2.x、3.0、3.1和3.2等Hibernate版本的支持,没有提供对3.3版本的支持。我们可以修改MyEclipse的设置,把对Hibernate 3.2的支持,修改为对Hibernate 3.3的支持。为此启动Eclipse后,选中菜单栏的"Windows"→"Preference"→"MyEclipse Enterprise Workbench"→"Project Capabilities"→"Hibernate"→"Hibernate 3.2"选项,在Library Modules下拉列表框中选中Hibernate 3.2 Core Libray选项,把类库文件替换为Hibernate 3.3的类库文件。如图2 2所示。

0df5a42401355a0db636412413be6c35.png

图2 2  修改MyEclipse中Hibernate 3.2的类库文件

2.7.1  设置MyEclipse连接Oracle数据库

为在MyEclipse中设置连接Oracle数据库,在Eclipse中选择Window→Show View→Other→MyEclipse Database→DB Browser选项。右击DB Browser视图的空白部分,选择New选项,如图2 3所示。

7ff663c66ec1cfd15701f2f18755642f.png

图2 3  选择New选项

在弹出的窗口中,输入连接Oracle数据库所需要的相应参数,以及Oracle驱动类库的文件名与位置。单击Next按钮,如图2 4所示。

e6b61b9f526a10bcfb446fcf1086b836.png

图2 4  输入连接Oracle数据库的参数

在Schema Details窗口中,选中Display Selected单选按钮。单击"Add"按钮,在弹出的Selection Needed窗口中选中SCOTT复选框。单击"OK"按钮,如图2 5所示。单击"Finish"按钮,关闭Schema Details窗口。

719216e8d65fd6a473905899f9815781.png

图2 5  选择SCOTT复选框

2.7.2  新建项目并增加Hibernate开发支持

在Eclipse中新建一个Java项目,名为"chapter02_first"。单击MyEclipse→Project Capabilities→Add Hibernate Capabilites选项,增加Hibernate的开发支持,如图2 6所示。

4c7f15d12cc168991ac1140a584d5d51.png

图2 6  增加Hibernate的开发支持

弹出Hibernate Support for MyEclipse窗口,在Hibernate Specification选项组中选中Hibernate 3.2单选按钮,选择MyEclipse Libraries和Hibernate 3.2 Core Libaries-复选框选项,如图2 7所示,单击Next按钮。

d9a0b9c47a0115efc8774ce67faa982e.png

图2 7  选择Hibernate类库的版本

其中的选项说明如表2-3所示。

表2-3  选项说明

选项

描述

Hibernate Specification

要添加到项目中的Hibernate具体版本,推荐选择Hibernate 3.2

Enable Hibernate Annotations Support

是否需要Hibernate Annotations的支持

MyEclipse Libraries/User Libraries

选择显示哪个位置的类库

Add checked Libraries to project build-path

选中的类库将会添加当前项目的构建路径中,但是相应的Jar文件将不会复制到项目中,这些Jar文件会在项目部署时复制

Copy checked Library Jars to project folder and add to build-path

选中的类库中的Jar文件将会被复制到项目并添加到构建路径中

Library Folder

一个相对于当前项目的路径,类库中的Jar会被复制到其中

在接下来的窗口中输入MyEclipse产生的Hibernate配置文件名及其路径。使用hibernate.cfg.xml文件名,路径保留默认值,如图2 8所示。

45d5bc75577db0e5a3be9704a15921dc.png

图2 8  设置生成hibernate.cfg.xml文件的名称及其路径

单击Next按钮,在DB Driver下拉列表框中选中已设置的oracledriver选项,其他选项保留默认值,如图2 9所示。

4812e44d70a3de25c9f4525d2cb6277b.png

图2 9  选择要使用的数据库

单击"Next"按钮,清除"Create SessionFactory Class"复选框,如图2 10所示,单击Finish按钮结束设置。

3d24581ed052a8f1fc7a0a97e71357b8.png

图2 10  清除Create SessionFactory Class复选框

执行上述操作后,MyEclipse会在项目的构建路径中增加Hibernate的相关类库和Oracle的驱动类库。同时生成了开发Hibernate应用所需的hibernate.cfg.xml文件,整个项目的所有类库文件和配置文件如图2 11所示。

62d514c1043623bc3db4c2dd44286bcf.png

图2 11  整个项目的所有类库文件和配置文件

还需要修改MyEclipse自动生成的hibernate.cfg.xml文件,增加一些新的配置项并修改Oracle数据库方言类的名称。修改后的hibernate.cfg.xml的内容如下所示(加粗显示部分为需要修改处)。

SRC 2 2  hibernate.cfg.xml

hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

"dialect">org.hibernate.dialect.Oracle9iDialect

"connection.url">jdbc:oracle:thin:@localhost:1521:ora9

scott

tiger

"connection.driver_class">oracle.jdbc.driver.OracleDriver

oracledriver

thread

true

true

2.7.3  自动生成Guestbook类与映射文件

在Eclipse的DB Browser视图中,右击设置的oracledriver名。选择Open connection选项,如图2 12所示弹出Open Database Connection窗口,输入用户名及密码,如图2 13所示,单击OK按钮。

92325fae7e021a165982f581ee1d5618.png

图2 12  选泽Open Database Connection选项

098c2205b6960b8f7dddba4872de5aa4.png

图2 13  输入用户名与密码

右击DB Browser视图中的guestbook表,选中"Hibernate Reverse Engineering"选项。如图2 14所示。

55b05da60b1755cf2bc6b5989e4f1a97.png

图2 14  选择Hibernate Reverse Engineering选项

弹出"Hibernate Mapping and Application Generation"窗口,输入与生成持久化类(POJO)有关的参数值。在Java src folder文本框中输入生成持久化类的保存路径,在Java package文本框中输入持久化类所使用的包名。选择"Create POJO<>DB Table mapping information、Create a Hibernate mapping file (*.hbm.xml) for each database table"及"Java Data Object (POJO<> DB Table)"复选框,清除"Create abstract class"复选框,如图2 15所示。

1ed813d4718d081d69ba2c4e1f30d633.png

图2 15  设置生成POJO类与映射文件

单击Next按钮,在打开窗口中的Id Generator下拉列表框中选中sequence选项,其他选项保留默认值,如图2 16所示。

aeffb9fc5bcefa4608a6c90eb653cd9b.png

图2 16  选择主键生成策略

单击"Next"按钮,在打开如图2 17所示的窗口中单击"Finish"按钮。

34f01afa1921e879ed71de4e09608de3.png

图2 17  设置逆向工程的细节

经过上面的操作之后,MyEclipse会自动生成Guestbook.java和Guestbook.hbm.xml两个文件。Guestbook.hbm.xml文件的内容如下所示,需要修改008行~第010行的内容用来设置序列名。

SRC 2 3  Guestbook.hbm.xml

001 <?xml  version="1.0" encoding="utf-8"?>

002 hibernate-mapping PUBLIC "-//Hibernate/Hibernate

Mapping DTD 3.0//EN"

003 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

004

005

schema="SCOTT">

006

007

008

009     gb_seq

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

第005行中标签的schema属性设置当前表属于哪个schema,第007行和第013行中标签的precision、scale及length属性设置表中字段的精度、小数点位数和长度,not-null属性设置该字段是否不允许为空。

2.7.4  编写HibernateSessionFactoryUtil.java文件

在Hibernate应用中,如果只使用一个数据库,则通常只需要一个SessionFactory对象。为了方便整个应用取得同一个SessionFactory对象,我们应用设计模式中的单态模式。编写一个SessionFactory的工具类HibernateSessionFactoryUtil,HibernateSessionFactoryUtil.java文件的内容如下:

SRC 2 4  HibernateSessionFactoryUtil.java

001 package com.v512.util;

002

003 import org.hibernate.SessionFactory;

004 import org.hibernate.cfg.Configuration;

005

006 public class HibernateSessionFactoryUtil {

007     private static final SessionFactory sessionFactory;

008     static {

009         try {

010             sessionFactory = new Configuration().configure().

buildSessionFactory();

011         } catch (Throwable ex) {

012             /*

013              * 需要 捕获Throwable对象,

014 * 否则捕获不到 Error及其子类,以及NoClassDefFoundError类型的错误

015              */

016             throw new ExceptionInInitializerError(ex);

017         }

018     }

019

020     private HibernateSessionFactoryUtil() {

021

022     }

023

024     public static SessionFactory getSessionFactory() {

025         return sessionFactory;

026     }

027 }

HibernateSessionFactoryUtil类在载入JVM后新建Configuration对象,读取hibernate.cfg.xml文件,创建SessionFactory对象,通过HibernateSessionFactoryUtil类所提供的getSessionFactory()静态方法获取SessionFactory对象。

2.7.5  编写HibernateTest.java

编写一个测试的HibernateTest.java文件,通过Hibernate实现对guestbook表中数据的CRUD操作,在其中定义addGuestbook()、updateGuestbook()、getGuestbook()、getGuestbooks()、deleteGuestbook()和printGuestbook()方法。该文件的内容如下:

SRC 2 5  HibernateTest.javaa

001 package com.v512.examples;

002

003 import java.util.List;

004 import org.hibernate.Query;

005 import org.hibernate.Session;

006 import org.hibernate.Transaction;

007 import com.v512.util.HibernateSessionFactoryUtil;

008

009 public class HibernateTest {

010     public void addGuestbook(Guestbook gb) {

011Session session = HibernateSessionFactoryUtil.

getSessionFactory().

getCurrentSession();

012         Transaction tx = session.beginTransaction();

013         session.save(gb);

014         tx.commit();

015     }

016

017     public Guestbook getGuestbook(Integer id) {

018         Session session = HibernateSessionFactoryUtil.

getSessionFactory().

getCurrentSession();

019         Transaction tx = session.beginTransaction();

020         Guestbook gb = (Guestbook) session.get

(Guestbook.class, id);

021         tx.commit();

022         return gb;

023     }

024

025     public List getGuestbooks() {

026         Session session = HibernateSessionFactoryUtil.

getSessionFactory().

getCurrentSession();

027         Transaction tx = session.beginTransaction();

028         Query query = session.createQuery("from Guestbook");

029         List list = query.list();

030         tx.commit();

031         return list;

032     }

033

034     public void updateGuestbook(Guestbook gb) {

035         Session session = HibernateSessionFactoryUtil.

getSessionFactory().

getCurrentSession();

036         Transaction tx = session.beginTransaction();

037         session.saveOrUpdate(gb);

038         tx.commit();

039     }

040

041     public void deleteGuestbook(Integer id) {

042         Guestbook gb = getGuestbook(id);

043         Session session = HibernateSessionFactoryUtil.

getSessionFactory().

getCurrentSession();

044         Transaction tx = session.beginTransaction();

045         session.delete(gb);

046         tx.commit();

047     }

048

049     public void printGuestbook(Guestbook gb) {

050         System.out.print("id:" + gb.getId() + "\t");

051         System.out.print("name:" + gb.getName() + "\t");

052         System.out.print("title:" + gb.getTitle() + "\t");

053         System.out.print("content:" + gb.getContent() + "\t");

054         System.out.println("createdTime:" + gb.getCreatedTime());

055     }

056

057     public static void main(String[] args) {

058         HibernateTest test = new HibernateTest();

059         Guestbook gb = test.getGuestbook(new Integer(1));

060

061         System.out.println("-------------------------

读取单一记录-----------------------------");

062         test.printGuestbook(gb);

063

064         System.out.println("-------------------------

读取所有记录-----------------------------");

065         List list = test.getGuestbooks();

066         for (Guestbook g : list) {

067             test.printGuestbook(g);

068         }

069

070         System.out.println("-------------------------

更新记录---------------------------------");

071         gb.setName("关羽");

072         test.updateGuestbook(gb);

073         test.printGuestbook(gb);

074

075         System.out.println("-------------------------

删除记录---------------------------------");

076         test.deleteGuestbook(new Integer(1));

077

078 HibernateSessionFactoryUtil.getSessionFactory().close();

079     }

080 }

当使用HibernateTest类中getGuestbook()方法根据id值获取一条记录时,Hibernate找到数据库中这条记录,然后再生成这条记录所对应的持久化对象返回。updateGuestbook()方法更新一条记录时首先找到这条记录所对应的持久化对象,然后调用这个对象的setter方法修改属性值,并通过Hibernate完成数据库中数据的更新;deleteGuestbook()方法删除一条记录时首先找到这条记录所对应的持久化对象,然后通过Hibernate删除持久化对象删除进而数据库中所对应的数据。

2.7.6  程序运行结果

这个实例使用Hibernate完成对数据库中数据的CRUD操作,借助MyEclipse的帮助开发Hibernate应用,不需要手工编写持久化(POJO)类、Hibernate的配置和映射文件。Hibernate通过操作持久化对象完成对数据库数据的CRUD操作, HibernateTest.java运行结果如下:

-------------------------读取单一记录-----------------------------

id:1    name:刘伟 title:大家好

content:欢迎大家学习Hibernate技术。

createdTime: 2009-03-12 06:17:59.0

-------------------------读取所有记录-----------------------------

id:1    name:刘伟 title:大家好

content:欢迎大家学习Hibernate技术。

createdTime: 2009-03-12 06:17:59.0

-------------------------更新记录---------------------------------

id:1    name:关羽 title:大家好

content:欢迎大家学习Hibernate技术。

createdTime: 2009-03-12 06:17:59.0

-------------------------删除记录---------------------------------

2.7.7  使用 HQL 编辑器调试HQL语句

MyEclipse中包含一个Hibernate编辑器和多个相关视图,允许根据当前项目的配置来调试HQL语句。"Hibernate Dynamic Query Translator"视图显示当前HQL语句所对应的SQL语句;"Hibernate Query Result"视图查看HQL语句的执行结果,返回的持久化对象的属性值通过"Properties"视图显示;"Query Parameters"视图可以为调试的HQL语句输入需要的参数值。

右击Package Explorer视图中的chapter02_first项目,选中快捷菜单中的"MyEclipse→Open HQL Editor"选项,如图2 18所示。

baa52883ba1dad3e90bb059e0c85e869.png

图2-18  MyEclipse→Open HQL Editor选项

打开HQL编辑器,输入"from Guestbook"。单击运行图标执行查询,并且通过相关视图查看查询结果,如图2 19所示。

b54bbbd354ae1b575238ff054da5604f.png

图2 19  在HQL编辑器中执行HQL查询并查看结果

还可以使用"Query Parameters视图输入需要绑定参数的HQL查询语句,如图2 20所示。

f24c1168aa7059ceff9e328b4437c6e1.png

图2 20  使用Query Parameters 视图输入需要绑定参数的HQL查询语句

2.8  Hibernate应用的开发方式

2.8.1  自底向上,从数据库表到持久化类

采用自底向上的开发方式,采用手工或者MyEclipse等开发工具直接根据数据库中表的结构生成对应的映射文件和持久化类。这是实际开发中最常用的一种方式,也是本书所推荐的方式。通过这种方式最小化了手工编码,降低了出错的可能性。

2.8.2  自上向下,持久化类到数据库表

首先编写持久化类,然后根据持久化类的代码手工编写或者采用工具生成映射文件,进而生成数据库表结构。这种方式在实际开发中也经常使用,可能出现的问题是生成的数据库表结构与实际需要的数据库表结构之间的差异,需要手工调整。

2.8.3  从中间出发,向上与向下发展

首先编写持久化类与数据库表的映射文件,然后根据映射文件手工编码或者采用工具向上生成持久化类,向下生成数据库表结构。

2.9  设置Hibernate使用连接池

Hibernate默认使用一个功能简单的连接池,通常只用于开发阶段测试之用。为了更高效地使用Hibernate,可以设置Hibernate使用第三方C3P0或者应用服务器(容器)所带的数据库连接池。

2.9.1  设置使用Tomcat中的连接池

如果开发运行在应用服务器中的程序,建议其中配置的连接池,如允许Hibernate使用通过在Tomcat中所配置的连接池。为此修改Tomcat中的context.xml文件,该文件位于tomcat安装目录的conf子目录中,同时还需要将Oracle数据库的驱动类库ojdbc6.jar或者ojdbc14.jar添加到tomcat的lib目录下。修改后的context.xml文件内容如下:

SRC 2 6  context.xml

WEB-INF/web.xml

type="javax.sql.DataSource" maxActive="100"

maxIdle="30" maxWait="10 000" username="scott" password="tiger"

driverClassName="oracle.jdbc.OracleDriver" url=

"jdbc:oracle:thin:@localhost:1521:ora9" />

设置Tomcat提供的连接池之后,要在Hibernate的配置文件(hibernate.cfg.xml)中添加connection.datasource属性,如下面的代码所示:

java:comp/env/jdbc/oracleds

其中的java:comp/env/jdbc/oracleds是Tomcat中设置的数据源对象的JNDI名称。

2.9.2  使用C3P0连接池

如果让Hibernate使用第三方C3P0连接池,则在Hibernate的配置文件中添加如下的配置信息,还需要把C3P0类库添加到当前项目的构建路径下。

org.hibernate.connection.C3P0ConnectionProvider

5

10

50

3600

120

2

- hibernate.c3p0.min_size:设置连接池的最小连接数。

- hibernate.c3p0.max_siz:设置连接池的最大连接数。

- hibernate.c3p0.timeout:设置连接池中的连接的最大空闲时间,超时后会被删除,单位为秒。

- hibernate.c3p0.max_statements:设置连接池中Statement对象的最大数量。

- hibernate.c3p0.idle_test_period:设置检查连接池中空闲连接的间隔时间,单位为秒。

- hibernate.c3p0.acquire_increment:设置连接池的连接用完后每次新建连接的数量。

2.9.3  使用自定义连接池

在Hibernate应用中还可以使用定义连接池,该连接池需要实现org.hibernate.connection.ConnectionProvider接口,并在Hibernate配置文件中设置hibernate.connection.provider_class属性,其值为这个实现类的名称。

2.10  使用C3P0连接池

2.10节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。

2.10.1  创建chapter02_c3p0项目

在这个实例中让Hibernate使用第三方C3P0连接池获取操作数据库的连接对象,通过复制chapter02_first项目创建chapter02_c3p0项目。同时还需要把C3P0连接池的类库(c3p0-*.*.*.jar)添加到当前项目的构建目录下。当前项目构建路径中的类库如图2 21所示。

b44eeca26d245ef1e1ccea31648e5ada.png

图2 21  chapter02_c3p0项目构建路径中的类库

2.10.2  编辑hibernate.cfg.xml文件

当前项目使用了C3P0的连接池技术,修改hibernate.cfg.xml文件以配置相应的参数,其内容如下:

SRC 2 7  hibernate.cfg.xml

hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net

/hibernate-configuration-3.0.dtd">

oracle.jdbc.driver.

OracleDriver

jdbc:oracle:thin:@localhost:

1521:ora9

org.hibernate.dialect.

Oracle9iDialect

scott

tiger

org.hibernate.connection.C3P0ConnectionProvider

5

10

50

3600

120

2

thread

true

true

2.10.3  chapter02_c3p0项目的运行与输出

chapter02_c3p0项目中,其他文件都不需要修改,运行HibernateTest类输出的结果chapter02_first项目运行输出结果完全一样。

相关文章:

day20 文件上传下载

2019独角兽企业重金招聘Python工程师标准>>> 文件上传基础及api解析&#xff1a; 文件上传最终版&#xff1a; 文件下载&#xff1a; 转载于:https://my.oschina.net/u/2356966/blog/648774

腾讯开源基于 mmap 的高性能 key-value 组件 MMKV

腾讯微信团队宣布开源 MMKV &#xff0c;这是基于 mmap 内存映射的 key-value 组件&#xff0c;底层序列化/反序列化使用 protobuf 实现&#xff0c;主打高性能和稳定性。MMKV 从 2015 年中至今&#xff0c;在 iOS 微信上使用已有近 3 年&#xff0c;其性能和稳定性经过了时间的…

Linux环境thinkphp配置以及数据源驱动修改

项目中需要用到thinkphp&#xff0c;以下简称tp。linux版本&#xff1a;64位CentOS 6.4 Nginx版本&#xff1a;nginx1.8.0 php版本&#xff1a;php5.5.28 thinkphp版&#xff1a;3.2.31.安装LNMP Linux环境Nginx安装与调试以及PHP安装2.项目框架 tp源码下载http://www.thinkphp…

《Linux内核设计与实现》读书笔记 第三章 进程管理

第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种。我们拥有操作系统就是为了运行用户程序&#xff0c;因此&#xff0c;进程管理就是所有操作系统的心脏所在。 3.1进程 概念&#xff1a; 进程&#xff1a;处于执行期的程序。但不仅局限于程序&#xff0c;还包含其他资…

java持续集成soapui_集成testNG到JavaAPI测试-执行多条用例

*****************************************************************在这门课里你将学到Web Services(SOAP WebService和REST API)的手动测试及自动化测试&#xff0c;熟练使用Groovy脚本自动化测试WebService。这门课程设计的是从零基础入门开始学&#xff0c;然后以循序渐进…

python-os

os.listdir(path):path-->路径 返回类型为listos.getcwd() 获取当前工作目录os.chdir() 切换工作目录os.mkdir() 新建目录os.path.exists()os.path.isdir() os.path.join() 拼接字符串路径os.path.exists(rpath) 判断路径是否存在 r原始路径os.path.isdir() 判断是否是文件夹…

NetBeans配置Xdebug 远程调试PHP

很多PHP程序员使用echo&#xff0c;dump等比较原始的方法调试&#xff0c;这是非常落后的。几年前本人写过一篇&#xff1a; NetBeans配置Xdebug 由于那篇文档还需要引用本人写的其他文档&#xff0c;感觉有些分散&#xff0c;所以这里重新写一篇完整的。linux版本&#xff1a;…

java自定义上下文对象_Java框架_Spring应用上下文对象加载配置

我们都知道IOC是spring框架的核心&#xff0c;主要作用是控制反转&#xff0c;把我们需要的对象从容器中提供给我们&#xff0c;但是IOC是如何加载我们所需要的对象的&#xff1f;Spring容器是IOC容器的一种&#xff0c;它通过ApplicationContext接口将我们所需要的配置文件进行…

ThreadLocal源码分析

ThreadLocal的作用 Java对象是线程间共享的&#xff0c;但有时我们需要一些线程间隔离的对象&#xff0c;该对象只能由同一个线程读写&#xff0c;对其他线程不可见。ThreadLocal正式提供了这样的机制&#xff0c;详细使用方式请参考Java ThreadLocal。 ThreadLocal实现原理 自…

远程连接windows出现身份验证错误,提示由于CredSSP加密Oracle修正解决方案

本机操作系统(OS版本:10.0.17134) 远程计算机操作系统&#xff08;OS版本:6.3.9600&#xff09; 远程连接的时候报错“出现身份验证错误&#xff0c;要求的函数不受支持。远程计算机:xxx 这可能是由于CredSSP加密Oracle修正,若要了解详细信息...” 原因是系统更新安装了补丁&am…

MediaWiki安装

MediaWiki可以方便的让你搭建自己的wiki&#xff0c;公司内部使用非常方便官网&#xff1a; https://www.mediawiki.org/wiki/MediaWiki安装MediaWiki的必要环境 PHPMysql 下载最新版解压即可 # tar -xzvf mediawiki-1.25.2.tar.gz # mv mediawiki-1.25.2 wiki 输入首页引导一…

sql的四种连接 用mysql的语句写_170221、浅谈mysql的SQL的四种连接

例子&#xff1a;-------------------------------------------------a表 id name b表 id job parent_id1 张3 1 23 12 李四 2 34 23 王武 3 34 4a.id同parent_id 存在关…

MySQL冷备份的跨操作系统还原

数据来源&#xff1a;linux平台mysql版本为5.7 数据去向&#xff1a;windows平台mysql版本为5.7 操作步骤&#xff1a; 第一步&#xff1a;关闭mysql服务 service mysqld stop 第二步&#xff1a;归档linux平台下mysql的数据目录 tar -czvf data.tar.gz /usr/local/mysql/data …

Java 社区领袖联合发文:别慌,Java 仍然是免费的!

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> 在去年的 Java One 上&#xff0c;Mark Cavage 当时宣布 Oracle 将逐步开源 Oracle JDK 的专有功能&#xff08;商业特性&#xff09;。Oracle Java 平台产品管理高级总监 Donald …

Squid安装

最新版Squid安装 http://www.squid-cache.org/Versions/v3/3.5/# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.7.tar.gz# tar zxvf squid-3.5.7.tar.gz# cd squid-3.5.7# ./configure --prefix/usr/local/squid# make && make install# chmod -R 777 /…

Java内部类手机专卖店_JAVA——内部类的那些事儿

obj3.func();//3.2 访问静态内部类的静态方法(通过类名访问)Outer.StaInner.staFunc();//4 局部内部类访问局部变量Outer obj4 new Outer();obj4.local();//5 匿名内部类Outer obj5 new Outer();obj5.anonymous();//6 匿名内部类作为参数asPara(new AbstractClass() {public …

Linux下Postfix的配置和使用

Postfix为何物&#xff0c;详见&#xff1a;http://zh.wikipedia.org/wiki/Postfix 0.关于Postfix postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的…

部分人说 Java 的性能已经达到甚至超过 C++,是真的吗?

好多Java程序员都说由于JIT技术的引入&#xff0c;Java的性能已经和C一样了&#xff0c;而且Java的开发效率极高&#xff0c;可以省下60%的时间。请问事实真的是这样吗&#xff1f;我平常也都在写这两个语言&#xff0c;但是因为开发的软件的复杂度不大&#xff0c;并没有感觉到…

Wiki 开源软件

Wiki 是一个协同著作平台或称开放编辑系统。所谓协同工作&#xff0c; 即它能够让浏览网页的人都能够去修订网页&#xff0c;其简介的 ... Wiki 是怎么做到的. Wiki 使用 了简化的语法&#xff0c;替代复杂的HTML&#xff0c;加上WEB 界面的编辑工具&#xff0c;降低内容维护的…

Android studio安装与调试

1.下载安装android studio 下载好之后安装好2.启动报错提示1&#xff09;进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件&#xff0c;用文本编辑器打开。2&#xff09;在idea.properties文件末尾添加一行&#xff1a; disable.android.first.runtrue &am…

java的父类java.lang.object_根父类:java.lang.Object

1、根父类(1)Object类型是所有引用数据类型的超类&#xff0c;包括数组类型如果一个类没有显式的声明它的父类&#xff0c;那么它的父类就是Object。(2)Object类中的方法&#xff0c;会继承到所有类型的对象中&#xff0c;包括数组对象。即所有对象都可以调用Object类中声明的方…

spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient

在使用服务发现的时候提到了两种注解&#xff0c;一种为EnableDiscoveryClient,一种为EnableEurekaClient,用法上基本一致&#xff0c;今天就来讲下两者&#xff0c;下文是从stackoverflow上面找到的对这两者的解释&#xff1a;原文链接 There are multiple implementations of…

strust2自定义interceptor的基本方法及操作

需求&#xff1a;制作一个网站需要用户登陆后才能查看&#xff0c;即一个权限的问题 1.首先明确在用户没登陆前有两个Action请求是可以通过的&#xff0c;即注册和登陆。 2.创建拦截器&#xff0c;如UserLoginInterceptor.java&#xff0c;如下 public class UserLoginIntercep…

使用xdebug分析thinkphp框架函数调用图

开发中需要性能调优&#xff0c;使用xdebug分析thinkphp框架函数调用图。关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析1.安装xdebug 需要先去http://www.xdebug.org看看一些文档&#xff0c;xdebug作为php扩展安装 #…

java+script+当前日期_如何在JavaScript中获取当前日期?

如何在JavaScript中获取当前日期&#xff1f;#1楼您可以使用扩展了 Date对象的Date.js库&#xff0c;从而可以使用.today()方法。#2楼如果您想对日期格式进行更多的粒度控制&#xff0c;我强烈建议您查看一下momentjs。 很棒的图书馆-只有5KB。 http://momentjs.com/#3楼你可以…

java中的类修饰符、成员变量修饰符、方法修饰符。

类修饰符&#xff1a; public&#xff08;访问控制符&#xff09;&#xff0c;将一个类声明为公共类&#xff0c;他可以被任何对象访问&#xff0c;一个程序的主类必须是公共类。 abstract&#xff0c;将一个类声明为抽象类&#xff0c;没有实现的方法&#xff0c;需要子类提供…

Linux 系统挂载数据盘

Linux 系统挂载数据盘&#xff1a; 适用系统&#xff1a;Linux&#xff08;Redhat , CentOS&#xff0c;Debian&#xff0c;Ubuntu&#xff09;* Linux的云服务器数据盘未做分区和格式化&#xff0c;可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个…

java 启动某个类_java – Spring Boot – 如何指定备用启动类? (多个入口点)

我想添加一个替代的入口点到我的Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗&#xff1f;根据他们的documentation,属性loader.main指定要启动的主类的名称.我尝试java -jar MyJar.jar –loader.main com.mycompany.AlternateMain,但是我的pom.xml中指定的start-cla…

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

近日&#xff0c;电脑突然出现任务栏右下角的声音和电源图标消失不见的问题&#xff0c;重启仍旧没有修复&#xff0c;后来找到了解决办法 解决办法&#xff1a; 1.CtrlShiftEsc键调出windows资源管理器。 2.找到进程中的explorer.exe进程并结束它。 3.在文件选项的新建任务选项…

创建Maven版Java工程

步骤&#xff1a; 创建成功后&#xff0c;如图&#xff1a; 转载于:https://www.cnblogs.com/zhzcode/p/9722902.html