1 User.java
1. package px.malijun;
2.
3. public class User {
4. private int id;
5. private String name;
6. private String password;
7. private String email;
8. public String getEmail() {
9. return email;
10. }
11. public void setEmail(String email) {
12. this.email = email;
13. }
14. public String getName() {
15. return name;
16. }
17. public void setName(String name) {
18. this.name = name;
19. }
20. public String getPassword() {
21. return password;
22. }
23. public void setPassword(String password) {
24. this.password = password;
25. }
26. public int getId() {
27. return id;
28. }
29. public void setId(int id) {
30. this.id = id;
31. }
32.
33. }
建立相应的xml映射文件:
User.hbm.xml
1. <?xml version="1.0" encoding='utf-8'?>
2. <!DOCTYPE hibernate-mapping PUBLIC
3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5.
6. <hibernate-mapping>
7. <class name="px.malijun.User" table="users">
8. <id name="id">
9. <generator class="identity"/>
10. </id>
11. <property name="name"/>
12. <property name="password"/>
13. <property name="email"/>
14. </class>
15. </hibernate-mapping>
在数据库中建立一个myproject数据库,在其中建立一个users表
在src的根目录下(以上的user.hbm.xml映射文件与User.java在同一目录下)建立hibernate的配置文件:
hibernate.cfg.xml
# <?xml version="1.0" encoding="utf-8"?>
#
# <!DOCTYPE hibernate-configuration PUBLIC
#
# "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
#
# "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
#
# <hibernate-configuration>
#
# <session-factory>
#
# <!-- 显示实际操作数据库时的SQL -->
#
# <property name="show_sql">true</property>
#
# <!-- SQL 方言,这边设定的是MySQL -->
#
# <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
#
# <!-- JDBC 驱动程序 -->
#
# <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
#
# <!-- JDBC URL 注意这边我设定的所使用的编码 -->
#
# <property name="connection.url">jdbc:mysql://localhost:3306/myproject?useUnicode=true&characterEncoding=utf8</property>
#
# <!-- 数据库使用者 -->
#
# <property name="connection.username">root</property>
#
# <!-- 数据库密码 -->
#
# <property name="connection.password"></property>
#
# <!-- 以下设置对象与数据库表格映像文件 -->
# <mapping resource="px/malijun/User.hbm.xml"/>
#
# </session-factory>
#
# </hibernate-configuration>
由于常规操作都类似,我们建立了一个抽象类:
抽象类中的方法,不一定都是抽象的
但含有抽象方法的类一定是抽象类
可以 absctract 的方法不能实现
abstract class里可以有非abstract 方法 这样的方法可以实现
HibernateBase.java
1. package px.malijun;
2.
3. import org.hibernate.*;
4. import org.hibernate.cfg.*;
5. import java.util.*;
6. import java.io.IOException;
7. import java.io.PrintWriter;
8.
9. public abstract class HibernateBase
10. {
11. protected SessionFactory sessionFactory;//会话工厂,用于创建会话
12. protected Session session;//hibernate会话
13. protected Transaction transaction; //hiberante事务
14.
15. public HibernateBase()throws HibernateException
16. {
17. this.initHibernate();
18. }
19. // 帮助方法
20. protected void initHibernate()
21. throws HibernateException {
22.
23. // 装载配置,构造 SessionFactory对象
24. sessionFactory = new Configuration().configure().buildSessionFactory();
25. }
26.
27. /**
28. *开始一个hibernate事务
29. */
30. protected void beginTransaction()
31. throws HibernateException {
32.
33. session = sessionFactory.openSession();
34. transaction = session.beginTransaction();
35. }
36.
37. /**
38. *结束一个hibernate事务。
39. */
40. protected void endTransaction(boolean commit)
41. throws HibernateException {
42.
43. if (commit) {
44. transaction.commit();
45. } else {
46. //如果是只读的操作,不需要commit这个事务。
47. transaction.rollback();
48. }
49. session.close();
50. }
51. }
然后建立一个具体针对User操作的一个类:
UserBean.java
1. package px.malijun;
2.
3. import org.hibernate.*;
4. import org.hibernate.cfg.*;
5. import java.util.*;
6.
7. /**
8. * 和course相关的业务逻辑
9. */
10. public class UserBean extends HibernateBase {
11. public UserBean() throws HibernateException {
12. super();
13. }
14.
15. /**
16. * 增加一个Course
17. */
18. public void addUser(User user) throws HibernateException {
19. beginTransaction();
20. session.save(user);
21. endTransaction(true);
22. }
23.
24. /**
25. * 查询系统中所有的Course,返回的是包含有Course持久对象的Iterator。
26. */
27. public Iterator getAllUsers() throws HibernateException {
28. String queryString = "select users from User as user";
29. beginTransaction();
30. Query query = session.createQuery(queryString);
31. Iterator it = query.iterate();
32. return it;
33. }
34.
35. /**
36. * 删除给定ID的course
37. */
38. public void deleteUser(String id) throws HibernateException {
39. beginTransaction();
40. User user = (User) session.load(User.class, id);
41. session.delete(user);
42. endTransaction(true);
43. }
44.
45. /**
46. * 按course的名字进行模糊查找,返回的是包含有Course持久对象的Iterator。
47. */
48. public Iterator getSomeUser(String name) throws HibernateException {
49. String queryString = "select u from User as u where u.name like :name";
50. beginTransaction();
51. Query query = session.createQuery(queryString);
52. query.setString("name", "%" + name + "%");
53. Iterator it = query.iterate();
54. return it;
55. }
56. }
测试:
Test.java
1. package px.malijun;
2.
3. public class Test {
4.
5. /**
6. * @param args
7. */
8. public static void main(String[] args) {
9. // TODO Auto-generated method stub
10. UserBean ub=new UserBean();
11. User user = new User();
12. user.setName("你好,世界!");
13. user.setPassword("123456");
14. user.setEmail("ok@ujs.edu.cn");
15. ub.addUser(user);
16.
17. }
18.
19. }
分享到:
相关推荐
dnSpy-net-win32-222.zip
和美乡村城乡融合发展数字化解决方案.docx
如何看待“适度宽松”的货币政策.pdf
NCO 3.0.18 64位
法码滋.exe法码滋2.exe法码滋3.exe
* GPS IMU经典15维ESKF松组合 * VRU/AHRS姿态融合算法 * 捷联惯导速度位置姿态解算例子 * UWB IMU紧组合融合 * 每个例子自带数据集
在现代社会生活与生产活动下,不可避免的会产生巨量且多样的垃圾。我国的人口和经济总量均位居世界前列,因此,必然面临着庞大数量的垃圾处理的难题。如何通过人工智能来对垃圾进行有效分类,成为当前备受关注的研究热点。本文为展开基于深度网络的垃圾识别与分类算法研究,先使用PyTorch框架中的transforms方法对数据进行预处理操作,后经过多次调参实验,对比朴素贝叶斯模型、Keras卷积神经网络模型、ResNeXt101模型的垃圾分类效果。确定最佳分类模型是ResNeXt101,该模型在GPU环境下的分类准确率达到了94.7%。最后利用postman软件来测试API接口,完成图片的在线预测。在微信开发者工具的基础上,利用一些天行数据的垃圾分类的API接口再结合最佳模型的API接口,开发出了一个垃圾分类微信小程序。本文的研究内容丰富和完善了垃圾图像分类的相关研究,也为后续的研究提供了一定的参考价值。
一、上位机简介 在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 —— 上位机和下位机通过USB转串口连接线直接相连进行数据交互 串口转WIFI(ESP8266)—— 上位机和下位机基于TCP/IP协议通过以太网或者WIFI传输数据 串口转蓝牙(HC-06)—— 不多用,暂不介绍 Windows上位机(EXE可执行程序),最早用VB语言开发,后来由于C++的发展,采用MFC开发,近几年,微软发布了基于.NET框架的面向对象语言C#,更加稳定安全,再配合微软强大的VS进行开发,效率奇高。 本文使用Visual Studio 2022作为开发环境,上位机开发主要有WPF框架与Winform框架,他们都是基于.NET框架 WPF需要C/S基础,使用XAML来构建应用UI,界面比较美观,但是内存开销大 Winform可以使用窗口控件来构建应用,比较简单易学 二、开发环境设置 1. 安装Visual Studio 首先,确保你已经
course_s4_ALINX_ZYNQ_MPSoC开发平台Linux驱动教程V1.04.pdf
基于JavaWeb的毕业季旅游一站式定制服务平台_88z1j4jp_208-wx-(1).zip
Apeaksoft Data Recovery for Mac v1.6.16
cms测试练习项目(linux系统部署),可以用来进行python的测试练手项目
数据集简介:大学录取结果分析 概述 大学录取结果数据集包含了有关大学录取过程的信息,包括关键变量,可用于分析不同学术因素与申请者是否被录取之间的关系。该数据集非常适合进行探索性数据分析、训练预测模型以及研究影响录取决策的因素。 数据集列描述 admit:指示申请者是否被录取(1=被录取,0=未录取)。 paes:申请者在高等教育能力测试(PAES)中获得的分数。 nem:中学教育成绩平均分,评分范围从1.0到7.0。 rank:申请者在其班级中的排名,数值越低表示排名越好。 数据集目的 本数据集旨在让用户探索学术指标(如PAES分数、GPA和排名)与大学录取成功率之间的关系。这可以用于: 开发预测模型:基于学术表现预测录取可能性。 识别趋势:找出影响录取的关键学术因素。 生成可视化图表:理解分数分布及录取结果的关系。 数据集规模 记录数:1813条。 列数:5列。
STM32F427+rtthread下的bootload 网口(webclient)+串口(ymodem)传输,代码无质量,谨慎使用
1. 用户管理功能 用户注册与登录:用户可以通过手机号、邮箱等方式注册账户,并且可以通过账号登录系统进行购票、查看历史订单等操作。 个人信息管理:用户可以查看和修改个人信息(如姓名、手机号、邮箱等),并进行密码重置等操作。 实名认证:部分电影院购票系统要求用户进行实名认证,确保用户身份的真实性。 2. 电影信息展示功能 电影排片查询:用户可以查看当前和未来一段时间内的电影排片表,包括电影名称、上映时间、影片时长、类型、导演、演员等详细信息。 电影详情页:点击具体电影后,用户可以查看电影的详细信息,如剧情介绍、影评、评分、预告片等内容。 电影评分与评论:用户可以查看其他观众的评分和评论,也可以对已观看的电影进行评分和评论。 3. 座位选择与预定功能 影厅座位图:系统展示每场次的影厅座位图,用户可以通过座位图查看当前座位的状态(如可选、已选、已售出、VIP座位等)。 座位选择:用户可以选择自己喜欢的座位,系统会实时更新座位的可用状态,避免重复选择。 座位偏好设置:用户可以设置自己的座位偏好,如选择前排、中排或后排,靠窗或靠过道等。 4. 电影票购买与支付功能 票价展示:系统会展示每个座位的
Bukkit-BETA1.8.1服务端核心
内容概要:本文详细介绍了快速排序算法的原理和在Go语言中的高效实现方法。首先解释了快速排序的基本思想和实现步骤,接着提供了Go语言中实现快速排序的核心代码,并讨论了性能优化策略。最后,通过具体的应用场景实例,展示了快速排序在实际项目中的高效应用。 适合人群:具备一定编程基础,特别是对Go语言感兴趣的开发人员。 使用场景及目标:①理解快速排序算法的基本原理和分治策略;②学习如何在Go语言中高效实现快速排序;③掌握快速排序在实际项目中的应用实例。 阅读建议:本文不仅详细讲解了快速排序的原理,还提供了具体的实现代码和优化策略,建议读者在阅读过程中尝试实现和调试代码,以便更好地理解和掌握相关知识点。
项目包含完整前后端源码和数据库文件,均测试可正常运行 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7
NSMethodNotImplementedException如何解决
计算机接口实验报告,环境:PC 机一台,TD-PITE 实验装置一套。报告内容有,实验目的、实验设备、实验内容、实验步骤、实验程序(汇编)、实验结果、实验总结,一步到位!!!!!! 一步到位!!!!!!