这个错误说是getUser这个方法不应该是静态的 那应该是什么

W_fat 2018-03-08 09:43:48
package cn.hb.test;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;

import cn.hb.entitys.User;



public class UserTest {
public static void main(String[] args) {
getUser();
}
@Test
public static void getUser(){
Configuration config = new Configuration().configure();

SessionFactory factory = config.buildSessionFactory();

Session session = factory.getCurrentSession();

Transaction tc = null;
try{
tc = session.beginTransaction();
User user = (User)session.get(User.class, 5);

System.out.println(user.getUid() + "\t" + user.getUname() +
"\t" + user.getUpwd() + "\t" + user.getUaddress());

tc.commit();
}catch (Exception e) {
if(tc!=null){
tc.rollback();
}
}

}
}
...全文
219 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
双子叶 2018-03-12
  • 打赏
  • 举报
回复
你使用的是junit来测试,不需要在方法体上添加static。或者你直接在类里面执行main方法。
在算法相同的情况下,运行效率最好的程序是怎么产生的?我知道那一定是硬编码的。但是硬编码开发时间最长,维护成本最高,最容易出错。所以没有多少人会一直坚守这个阵营。 我们需要降低开发成本,提高程序的可维护性。所以编程语言一直在朝着开发效率方面不断的进化,抽象能力越来越强。一般来,编程语言的抽象能力越强,意味着代码量越少,程序的可维护性越高。与此同时,程序的运行效率也是越来越低。 到底是选择运行效率,还是选择开发效率?对很多人来,这是个纠结的问题。人们的选择总是多样化的,有的人抛弃了运行效率,有的人抛弃了开发效率,有的人选择多种语言相互调和。 当然我也要做出自己的选择,那么它就是C#,因为不论是运行效率还是开发效率,它都能做到很不错。 我采取的方案是自动化+硬编码,自动化的实现方式是静态代码生成,硬编码主要针对于静态代码生成的模板程序。 我创建这个项目,目的是为了集思广益,更好的使用C#,打造一个“开发+运行”效率双优的开源框架,所以项目命名为fastCSharp。 由于我个人基本上只有web开发经验,所以我贡献的代码部分包括web开发部分,没有桌面应用部分,其它的就靠大家贡献了。 代码贡献者请注意:为了解决部分桌面应用平台升级问题,这个项目决定兼容.net framework2.0。 我个人贡献的内容主要包括五个方面: 1、数据集合操作支持.net2.0的链式编程体验(此部分现已迁移完毕)。 * 链式编程的核心思想是想到什么就点什么,程序书写思路更流畅。但要注意的是不要把程序写成一行,对于带参数的函数调用,最好是一行一个点,否则异常了都不知道哪里出的问题,比如: return diantou.dataProxy.questionTopic.getLinkIds(id) .getArray(value => diantou.dataProxy.question.get(value)) .getHash(value => value.bestAnswerId) .getArray(value => diantou.dataProxy.answer.get(value)) .getFind(value => value != null) .group(value => value.userId) .getArray(value => new KeyValuePairuser, int>(diantou.dataProxy.user.get(value.Key), value.Value.Count)) .group(value => value.Key.grade0) .getArray(value => new userStat { grade0 = value.Key, count = value.Value.Count, path = topic.path.bestAnswer, users = value.Value.rangeSort((left, right) => right.Value - left.Value, 0, 6) .getArray(user => diantou.dataProxy.user.get(user.Key, userId)) }); 2、基于.net元数据的静态代码生成器(下面会有相关介绍)。 3、我常用的几种C#程序模板,包括快速序列化、TCP网络通讯、SQL操作实体类、Web视图、单元测试等。 * 数据序列化一般用于网络通讯,非文本数据对象的序列化效率是.net的50倍以上。 * TCP网络通讯调用和调用本地函数一样简单。比如我配置好网络服务参数: public enum enumType { [showjim.config.tcpCall.server(Register = showjim.config.setup.register.DataProxy, IsRegisterOnly = true, VerifyFileName = showjim.config.setup.pub.VerifyFileName, ClientCount = 500, IsAsynchronous = false, IsCompress = false)] DataProxy, } 然后定义了一个网络函数: [showjim.setup.attribute.tcpCall(server = showjim.config.tcpCall.server.enumType.DataProxy)] public partial class favorite : diantou.dataModel.favorite.showjimCode.proxy, showjim.sys.setup.Copy { [showjim.setup.attribute.tcpCall] private static favorite[] GetUser(int id, int pageSize, int currentPage, int userId, out int count) { favorite[] values = GetUsers(id, userId); array.page page = new array.page(count = values.length(), pageSize, currentPage); return values.sub(page.SkipCount, page.CurrentPageSize).toArray() .getArray(value => value.setUser(userId)); } } 网络调用就像下面这么简单(多一个.client): protected diantou.dataProxy.favorite[] MyFavorite { get { return diantou.dataProxy.favorite.tcpCall.client.GetUser(CurrentUser.id, PageSize, query.page, CurrentUserId, out ItemCount); } } * SQL实体类只提供单表操作,但是提供细节操作,比如只更新某一字段。多表操作建议使用缓存模式(毕竟内存比人工优化便宜),采用链式编程处理。不过缓存模式不适应于数据量比较大的单机应用,我想单机应用一般也不会有多大数据量吧。 * Web视图数据实现按需取值(html模板用到什么取什么),紧凑拼接,无带宽浪费,不使用反射。比如我现在访问的http://www.51nod.com/today.html#!type=all,未压缩的页面数据只有1.55K,普通的ajax数据格式就算压缩了也比这个大。 * 另外还有URL查询字符串的自动解析功能,不用自己去转换查询参数Fomr["XXX"],参数或者字段定义什么类型就会自己接受什么类型。 4、与Web视图配套的js类库,包括数据驱动界面的实现、ajax功能、html编辑器、简单的筛选器、以及一些常用功能。 * 数据驱动界面,这个需要体验一下,比如在未登录的状态下访问http://www.51nod.com/today.html#!type=all,在浏览器地址栏输入 [removed]alert(Showjim.PageView.SkinValue.header.Set({focus:{count:1,isCurrent:1}})); 或者在调试器里执行 Showjim.PageView.SkinValue.header.Set({focus:{count:1,isCurrent:1}}); 可以看到界面的变化。 5、一个简易的web服务器,实现部分了http1.1。 * www.51nod.com就是用这个做的web服务器,功能还有待完善。 前3个可应用于桌面,后两个应用于web,其实web服务器有时候也能应用于桌面或某些代理应用。 这里介绍一下代码生成器。 很多人认为代码生成==ORM。这里必须要纠正一下这个观念,ORM只是代码生成的一种应用场景。代码生成是一种自动化的实现,同时也是一种抽象方式,就好像面向对象也是一种抽象方式。 静态代码生成的实现方式也是多样的,最简单的模板是写程序直接拼接字符串,还有用VS自带的T4模板,一般来都是面向文本文件的生成。 我使用的代码生成器有三个特点: 1、它的C#程序模板也是可编译的C#程序,不是文本文件。所以编写模板的时候,确定性的程序可以得到IDE的支持,包括错误提示、重构等。 2、它的模板与数据是分离的,它的输入参数主要是.net元数据和自定义属性组成视图,类似于网站概念里面的界面与程序分离。 3、它可以在编译事件中执行,无需界面操作。 在我的项目里,代码生成可以是无处不在,有的时候是为了取代反射改善运行效率,有的时候是为了更方便的编写程序,有的时候是为了自动单元测试...那你将是为了什么呢? 我贡献的内容属于基础框架,不关联业务逻辑,所以没有几分钟开发一个XXX系统的能力。那个属于业务建模的范围,但是我希望这个框架能够助你快速实现模型。 使用这个框架搭建一般的网站,主要的工作量在于编写业务逻辑和提供数据视图。
​ 博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌项目名称基于Web的酒店客房管理系统的设计与实现系统明3.2.1  用户模块功能分析前台模块应主要包括用户登录模块、用户注册模块、查看客房信息模块、客房预定 模块、用户留言模块、充值模块和个人信息维护模块。用户登录模块:用户通过输入注册的的账号和密码,然后进行身份验证,匹配成功 后实现登录功能。用户注册模块:用户输入合法的账号和密码可以实现注册功能。 查看客房信息模块:用户可以通过首页查看客房的价格,图片,详情等信息,从而   可以选择想要预定的房间。 客房预定模块:用户选择自己想要预定的客房后,可以通过输入相关信息进行订房操作。用户留言模块:用户可以向管理员发送留言。 充值模块:用户可以通过添加银行卡再为自己进行充值操作。 个人信息维护模块:用户可以修改自己的姓名、密码、身份证号等信息,还可以查看自己的订单。3.2.2  管理员模块功能分析对于管理员而言,一个好的管理系统总是能让酒店的管理工作事半功倍[7]。管理员 能够通过这个系统对自己的酒店情况一目了然,应该包括客户留言模块、客房管理模 块、订房信息管理模块、入住信息管理模块、统计分析模块、酒店新闻管理模块、会 员信息管理模块、员工信息管理模块、系统用户管理模块、个人信息维护模块。客户留言模块:管理员可以查看并回复用户的留言。客房管理模块:管理员可以管理客房信息,可以添加新的客房,删除已经停用的客房信息,还可以修改现有的客房信息。订房信息管理模块:管理员可以处理用户的订房请求,为用户办理入住手续。入住信息管理模块:对于没有注册的线下客户,也可以办理入住手续。统计分析模块:可以对酒店所有的入住信息进行记录和总结分析。酒店新闻管理模块:管理员可以更新网站上的新闻公告,展示图片等信息。会员信息管理模块:管理员可以查看到所有的注册会员信息,可以对会员信息进行删除,修改,添加操作。员工信息管理模块:管理员可以查看到自己公司所有的员工信息,而且还可以对员工的相关信息进行管理。系统用户管理模块:管理员可以查看到所有的系统管理员信息并对管理员信息进行管理。个人信息维护模块:管理员可以更改自己的登录密码或者是姓名、性别、手机号等 相关个人信息。​编辑 环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;6.是否Maven项目:否;技术栈1. 后端:Spring+SpringMVC+Mybatis2. 前端:JSP+CSS+JavaScript+jQuery使用明1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;4. 运行项目,在浏览器中输入http://localhost:8080/ 登录运行截图​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑 用户管理控制层:package com.houserss.controller;import javax.servlet.http.HttpSession;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.houserss.common.Const;import com.houserss.common.Const.Role;import com.houserss.common.ServerResponse;import com.houserss.pojo.User;import com.houserss.service.IUserService;import com.houserss.service.impl.UserServiceImpl;import com.houserss.util.MD5Util;import com.houserss.util.TimeUtils;import com.houserss.vo.DeleteHouseVo;import com.houserss.vo.PageInfoVo;/** * Created by admin */@Controller@RequestMapping(/user/)public class UserController if (ip != null && ip.length() > 0) String[] ips = ip.split(,);for (int i = 0; i  

50,531

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧