热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java+javabean连接数据库写数据读数据

这是一个案例BBS留言板首先建表写一个表示留言数据的javabean写一个执行数据库操作的javabenpublicclassMessageBean{privateConnectionc

这是一个案例BBS留言板

首先建表



写一个表示留言数据的javabean 


写一个执行数据库操作的javaben 

public class MessageBean {
private Connection con;
MessageBO msg;
public MessageBean(){
String CLASSFORNAME="com.mysql.jdbc.Driver";
String SERVANDDB="jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=UTF-8 ";
String USER="root";
String PWD="";
try {
Class.forName(CLASSFORNAME);
con=(Connection) DriverManager.getConnection(SERVANDDB, USER, PWD);
} catch (Exception e) {
e.printStackTrace();
}
}
public void setMessage(MessageBO msg){
this.msg=msg;
}

public void addMessage()throws Exception{
//response.setContentType("text/html; charset=utf-8");
try {
PreparedStatement stm= con.prepareStatement("insert into message values(?,?,?,?,?)");
   stm.setString(1, msg.getTitle());
   stm.setString(2, msg.getName());
   
   System.out.println(msg.getName());
   
   if(msg.getEmail().length()==0){
    stm.setString(3, null);
   }else{
    stm.setString(3, msg.getEmail());
   }
   stm.setString(4, msg.getContent());
   stm.setDate(5, new java.sql.Date(new java.util.Date().getTime()));
   System.out.println(new java.util.Date().getTime());
   stm.executeUpdate();
   con.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public Collection getMessage()throws Exception{
Collection ret=new ArrayList();
try {
Statement stm=con.createStatement();
ResultSet result=stm.executeQuery("select count(*) from message");
int message_count=0;
if(result.next()){
message_count=result.getInt(1);
result.close();
}
if(message_count>0){
result=stm.executeQuery("select * from message order by date desc");
while(result.next()){
String title=result.getString("title");
String name=result.getString("name");
String mail=result.getString("email");
String cOntent=result.getString("content");
java.sql.Date date=result.getDate("date");
MessageBO message=new MessageBO();
message.setName(name);
message.setTitle(title);
message.setContent(content);
message.setEmail(mail);
message.setDate(date);
ret.add(message);
}
result.close();
stm.close();
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}

return ret;
}
}


写一个填写留言的界面  


写一个处理添加留言的jsp页面

<%try{
  messageBean.setMessage(messageBO);
  messageBean.addMessage();
   }catch(Exception e){
  e.printStackTrace();
   }%>

 
   
    
   
    


   


 
  
 
  
   
   

最后写一个显示查看留言的jsp页面


到此处功能结束。要源码可以到我空间下载。问题是我的数据库现在还是中文显示乱码。新手嘿嘿


推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • 本文介绍了在PostgreSQL中批量导入数据时的优化方法。包括使用unlogged表、删除重建索引、删除重建外键、禁用触发器、使用COPY方法、批量插入等。同时还提到了一些参数优化的注意事项,如设置effective_cache_size、shared_buffer等,并强调了在导入大量数据后使用analyze命令重新收集统计信息的重要性。 ... [详细]
author-avatar
我本僐悢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有