在写程序前写好文档:
readme.txt
1.准备开发环境
1.1导入开发包
mysql驱动
c3po连接池
dbutils
fileupload组件:
1)io包
beanutils开发包:
log4j开发包
jstl开发
1.2创建组织程序的开发包
com.du.dao.impl
com.du.service.impl
com.du.web.controller
com.du.utils
junits.test
com.du.domain
1.3 准备库和表
create database day18;
use day18;
create table upfile
(
id varchar(40) primary key,
uuidname varchar(100) not null unique,
filename varchar(100) not null,
savepath varchar(255) not null,
uptime datetime not null,
description varchar(255),
username varchar(40) not null
);
2.做实体
3.做dao
4.做service
5.做web层
jdbc工具类,jdbcutils:
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JdbcUtils {
private static DataSource ds;
static {
ds = new ComboPooledDataSource();//c3p0获取连接池
}
public static DataSource getDataSource() {
return ds;
}
}
注意:用c3p0获取连接池的时候,要编写c3p0-config.xml 文档
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day18</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>
<named-config name="flx">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day16</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</named-config>
</c3p0-config>
在里面编写好要连接的数据库信息!
Dao层
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.du.dao.UpfileDao;
import com.du.domain.Upfile;
import com.du.utils.JdbcUtils;
public class UpfileDaoImpl implements UpfileDao {
/*
* create table upfile
(
id varchar(40) primary key,
uuidname varchar(100) not null unique,
filename varchar(100) not null,
savepath varchar(255) not null,
uptime datetime not null,
description varchar(255),
username varchar(40) not null
);
*/
public void add(Upfile uf){
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());//dbutils
String sql ="insert into upfile(id,uuidname,filename,savepath,uptime,description,username) values(?,?,?,?,?,?,?)";
Object[] params={uf.getId(),uf.getUuidname(),uf.getFilename(),uf.getSavepath(),uf.getUptime(),uf.getDescription(),uf.getUsername()};
try {
qr.update(sql, params);
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
public List getAll(){
QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
String sql="select * from upfile";
try {
List list =(List) qr.query(sql, new BeanListHandler(Upfile.class));
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
public Upfile find(String id){
QueryRunner qr =new QueryRunner(JdbcUtils.getDataSource());
String sql="select * from upfile where id = ?";
try {
Upfile up=(Upfile) qr.query(sql, id, new BeanHandler(Upfile.class));
return up;
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
}
注意:QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
这句话是要导入dbutils包
service层:
import java.util.List;
import com.du.dao.UpfileDao;
import com.du.domain.Upfile;
import com.du.factory.DaoFactory;
public class BusinessServiceImpl {
UpfileDao dao = DaoFactory.getInstance().getDao(UpfileDao.class);
public void add(Upfile up){
dao.add(up);
}
public List getAll(){
return dao.getAll();
}
public Upfile find(String id){
return dao.find(id);
}
}
注意:这里用到了工厂模式
import java.io.IOException;
import java.util.Properties;
public class DaoFactory {
//单例模式
private static Properties pro =new Properties();
static{
try {
pro.load(DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static DaoFactory instance = new DaoFactory();
private DaoFactory(){
}
public static DaoFactory getInstance(){
return instance;
}
public <T> T getDao(Class<T> interfaceClass){
String name=interfaceClass.getSimpleName();//获取类的名字,之后在properties中获取相应的Dao
String daoname=pro.getProperty(name);
try {
return (T) Class.forName(daoname).newInstance();
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
}
配置文件:
UpfileDao=com.du.dao.impl.UpfileDaoImpl
分享到:
相关推荐
mybatis-plus反向工程 自动生成3层架构的文件controller,service,dao,mapper.zip
基于工厂模式的三层架构示例项目源码
基于三层架构的新闻管理系统,数据库SQL。
主要用的三层架构实现: (1)表示层(USL,即User Show Layer):视图层 a. 前台:对应于MVC中的View,用于和用户交互、界面的显示。 b. 对应于MVC中的Controller,用于控制跳转、调用业务逻辑层。...
正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC 架构,Dao是模型实体类(逻辑层),service是服务层,servlet是视图层,三者协作共同完成项目。 这里的User是由user表来定义的...
Delphi 版的三层架构 分为:数据连接层、DAO层、Modal层、Service层
三层架构新闻系统_新闻文章发布系统.7z
gen代码生成器java三层架构,可以生成domain,service,manager,dao三层架构,数据,逻辑,接口
覆盖知识 java部分:程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、实用...三层架构的搭建(dao层接口和实现类的编写、service层接口和实现类的编写、view层的Servlet类的编写)
目录MVC 三层架构1. 分层简介2. 包目录结构3. 数据访问层4. 流程图5. 综合案例:用户信息列表展示a. 主要需求b. 需求分析c. 环境搭建i. 创建 web 项目② 导入第三方依赖 Jar 包(JSTL)③ 创建三层包目录结构d. 代码...
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码...鼓励下载和使用,并欢迎大家互相学习,共同进步。
要求使用orm框架,在其中创建一个包含全部功能需求(方法)的接口,再创建接口的实现类,再通过测试类实现功能,还有数据库三层架构:分别创建三个包为dao包负责数据库数据的存取,service业务层负责逻辑的操作,...
所谓三层框架分别为表述层(WEB层)、业务逻辑层()、数据访问层()。 web层(action):包含JSP和Servlet等与web相关的内容,负责与浏览器的响应和请求; 业务层(service):只关心业务逻辑; 数据层...
基于ssh三层架构的JAVA开发简单示例,包含service,dao,action,pojo
spring进行dao、service、po、controller进行三层架构实例,框架搭建好,适合新手了解其运行机制,然后再此基础上进行自己的开发!
实现文件上传导入 五. 开发过程 1. 创建MySql数据库 2. 创建javaweb工程 3. 创建三层架构的包 依次创建以下的包: com.javaweb.tools com.javaweb.entity com.javaweb.dao com.javaweb.dao.impl com.javaweb.service...
1、一个完美struts2写成的小项目,实现了用户信息的增删改查。 2、采用的是分层结构,dao,service,action三层架构,结构清晰 3、完整的写出了文件上传,文件下载的具体操作。
随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,...
此源码对初学者有很大帮助,特别是java的三层架构理解帮助很大。 现只完成了一个功能模块的CURD,其它自己模仿编写,提高自学能力,锻炼编码能力。 界面友好,一切从用户角度出发,实用方便,实乃参考良品。 说明...
按照三层架构来写的,dao层、entity层,service层,(view层)。 dao层主要是用来进行数据访问,里面有基础的直接访问数据库的增删改查。 entity层主要是用JAVABean多数据进行封装,实体类。 service层主要是写逻辑...