Idea创建三层架构项目

首先创建一个Web项目model

创建Web完成后进行创建entity、dao、service

特别注意

根据上面的步骤进行创建即可得到

创建完成

我们首先创建数据库

create database therr_layer
go
use therr_layer
go
create table test(
tid int identity(1,1),
tname varchar(20)
)
go
insert into test values
('dao'),
('entity'),
('service')
go
select * from test

现在我们进行在实体层(entity)创建类

创建完成后,进行创建字段和方法

package com.wbg;

public class test {
int tid;
String tname; public test() {
} public int getTid() {
return tid;
} @Override
public String toString() {
return "test{" +
"tid=" + tid +
", tname='" + tname + '\'' +
'}';
} public void setTid(int tid) {
this.tid = tid;
} public String getTname() {
return tname;
} public void setTname(String tname) {
this.tname = tname;
} public test(int tid, String tname) {
this.tid = tid;
this.tname = tname;
}
}

创建完成后,现在先配置依赖关系

数据访问(dao)模块需要依赖实体层(entity)

服务(service)模块需要依赖数据访问层(dao)

model需要依赖服务层(service)

右键->F4->Modules

如图进行配置

现在进行配置数据库驱动

配置后进行创建数据访问层(dao)

package com.wbg;

import java.sql.*;
import java.util.ArrayList;
import java.util.List; public class testDao {
public static void main(String[] args) {
testDao d=new testDao();
List<test> list=d.select();
for(test t:list){
System.out.println(t);
}
} public List<test> select() {
Connection con=null;
List<test> list=new ArrayList<test>();
test te=null;
//加载驱动
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=therr_layer","sa","123456");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
String sql="select * from test";
Statement stat=null;
ResultSet rs=null;
try {
stat= con.createStatement();
rs=stat.executeQuery(sql);
while (rs.next()){
te=new test(rs.getInt("tid"),rs.getString("tname"));
list.add(te);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(!rs.isClosed())
rs.close();
if(!con.isClosed())
con.close();
if(!stat.isClosed())
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
}

测试完成,现在创建服务层

package com.wbg;

import java.util.List;

public class testService {

    public String select(){
String data="{\"data\":[";
String fh="";
testDao d=new testDao();
List<test> list=d.select();
for(test t:list){
data+=fh+"{\"tid\":\""+t.getTid()+"\",\"tname\":\"\"+t.getTname()+\"\"}";
fh=",";
}
data+="]}";
return data;
} public static void main(String[] args) {
testService t=new testService();
System.out.println(t.select());
}
}

测试完成,现在进入我们的项目model层创建后台Servlet

创建完成后发现报错,原因没有引入

已经解决

如果根据上面的图没有解决,看下Intellij idea创建(包、文件)javaWeb以及Servlet简单实现(Tomcat):https://www.cnblogs.com/weibanggang/p/9439938.html

进行写注释@Webservlet

package com.wbg;

import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/testservlet")
public class testservlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
testService t=new testService();
response.getWriter().print(t.select());;
} protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doPost(request,response);
}
}

现在使用Tomect进行启动

如果不知道Tomect,看下Intellij idea创建(包、文件)javaWeb以及Servlet简单实现(Tomcat):https://www.cnblogs.com/weibanggang/p/9439938.html

jsp代码

<%--
Created by IntelliJ IDEA.
User: 邦杠
Date: 2018/8/11
Time: 20:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<style>
table ,th,td{border:1px solid red;border-collapse:collapse}
table{margin: auto;margin-bottom: 20px;}
</style>
</head>
<body>
<input type="button" value="get查看" onclick="getsele()"/>
<input type="button" value="post查看" onclick="postselect()"/>
<input type="button" value="ajax查看" onclick="ajaxsele()"/>
<table id="tab1">
<caption>get</caption>
<th>tid</th><th>tname</th>
</table>
<table id="tab2">
<caption>post</caption>
<th>tid</th><th>tname</th>
</table>
<table id="tab3">
<caption>ajax</caption>
<th>tid</th><th>tname</th>
</table>
<script src="js/jquery.js"></script>
<script>
function getsele(){
console.log("进入了getsele");
//创建对象XMLHttpRequest
var ajax=new XMLHttpRequest();
//创建http请求,设置请求地址
ajax.open("get","testservlet.do");
//发送请求 (get为null post为参数)
ajax.send(null);
//给ajax设置事件(这里最多感知4[1-4]个状态)
ajax.onreadystatechange = function(){
//5.获取响应
//responseText 以字符串的形式接收服务器返回的信息
//console.log(ajax.readyState);
if(ajax.readyState == 4 && ajax.status == 200){
//使用JSON.parse方法将json字符串解析称为json对象
var data = JSON.parse(ajax.responseText);
//使用eval方法将json字符串解析成为json对象
//var data=eval("("+ajax.responseText+")");
var tab=document.getElementById("tab1");
for(var i=0;i<data.data.length;i++){
var tr=document.createElement("tr");
var tdtid=document.createElement("td");
var tdtname=document.createElement("td");
var tid=document.createTextNode(data.data[i].tid);
var tname=document.createTextNode(data.data[i].tname);
tdtid.appendChild(tid);
tdtname.appendChild(tname);
tr.appendChild(tdtid);
tr.appendChild(tdtname);
tab.append(tr);
}
}
} }
function postselect(){
console.log("进入了postselect");
//创建对象
var ajax=new XMLHttpRequest();
//创建请求路径
ajax.open("post","testservlet.do");
//post方式传递数据是模仿form表单传递给服务器的,要设置header头协议
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
//post在这里传参数 这里我们没有参数
ajax.send("null");
//给ajax设置事件(这里最多感知4[1-4]个状态)
ajax.onreadystatechange = function() {
//5.获取响应
//responseText 以字符串的形式接收服务器返回的信息
//console.log(ajax.readyState);
if (ajax.readyState == 4 && ajax.status == 200) {
//使用JSON.parse方法将json字符串解析称为json对象
var data = JSON.parse(ajax.responseText);
//使用eval方法将json字符串解析成为json对象
//var data=eval("("+ajax.responseText+")");
var tab = document.getElementById("tab2");
for (var i = 0; i < data.data.length; i++) {
var tr = document.createElement("tr");
var tdtid = document.createElement("td");
var tdtname = document.createElement("td");
var tid = document.createTextNode(data.data[i].tid);
var tname = document.createTextNode(data.data[i].tname);
tdtid.appendChild(tid);
tdtname.appendChild(tname);
tr.appendChild(tdtid);
tr.appendChild(tdtname);
tab.append(tr);
}
}
}
} function ajaxsele(){
//使用jq中的ajax进行请求
console.log("进入了ajax");
$.ajax({
type:"get",
url:"testservlet.do",
dataType:"json",
success:function (data) {
var tab= $("#tab3");
$.each(data.data,function (index,da) {
var tr=$("<tr/>");
var td1=$("<td/>").html(da.tid).appendTo(tr);
var td2=$("<td/>").html(da.tname).appendTo(tr);
tab.append(tr);
})
}
})
var tab=$("tab3"); }
</script>
</body>
</html>

运行结果:

项目地址:https://github.com/weibanggang/Three_layer

简单使用Idea创建三层架构项目和数据库连接(使用原生ajax进行访问+ajax)的更多相关文章

  1. ASP.NET三层架构项目创建流程

    1.进入VS2010,新建项目—>Visual C#—>Web—>ASP.NET空Web应用程序,如图所示: 2.在解决方案处右击—>新建项目—>Windows—> ...

  2. 使用VS创建三层架构的项目

    使用VS创建三层架构的项目 1.打开VS软件: 2.创建新项目: 3.创建新项目打开后选择SAP的选项点击创建{注:上面还有一个和这个相似的项目创建:看清楚在选择: 4.创建后改下名字,框架如果不是3 ...

  3. 用VS2010创建三层架构开发模式及三层架构的研究

    三层架构的研究 三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则   各层的作用 1:数据数据访问层:主要是对 ...

  4. ASP.NET创建三层架构图解详细教程

    1.新建项目 2.创建Visual Studio解决方案 3.再创建项目 4.选择类库类型 5.依次创建bll(业务逻辑层),dal(数据访问层)和model(模型层也可以叫实体层) 6.添加一个网站 ...

  5. .NETCore+EF+MySql+Autofac简单三层架构

    前言 其实就是一个简单依赖注入的三层架构.记录一下,大佬们就不用看下去了.重点在最后面,可以直接拖到底去看. 正文 1.贴代码 1.整体的一个结构.大佬们应该一眼就看明白了. 2.MySqlConte ...

  6. 浅谈C++三层架构

    浅谈C++三层架构 三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control). web开发中的三层架构是指:数据访问层 ...

  7. 如何使用ABP进行软件开发(2) 领域驱动设计和三层架构的对比

    简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,AB ...

  8. 基于三层架构下的公共数据访问方法(Sqlite数据库)

    作者总结了一下,使用Winform的三层架构做窗体应用程序,在数据访问方面,有用到纯sql语句方法.参数方法.存储过程方法. 那么什么是三层架构呢? UI---存放Form窗体---(用户所关心的) ...

  9. C#三层架构

    C#三层架构 三层架构分为:表现层(UI(User Interface)).业务逻辑层(BLL(Business Logic Layer)).数据访问层(DAL(Data Access Layer)) ...

随机推荐

  1. groovy与javah互相调用

    暂时只找到这几种方法.groovy代码方便灵活.常用来写一些工具.一般都是java加入groovy代码 第一种 java中加入 groovy代码就是 Toy.groovy class Toy{ def ...

  2. TOJ 2857 Stockbroker Grapevine

    描述 Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of s ...

  3. Myeclipse编辑JSP文件时,可以点击重口顶部的箭头来切换全屏状态

  4. angular2 遇到的问题汇总

    angular2 学习资源集锦:https://github.com/timjacobi/angular2-education 在学习angular开发项目过程遇到的问题: 1. 不同componen ...

  5. SQL动态配置,动态解析SQL

    在项目中使用SQL动态配置的方式可以让后期的维护和发布后的修改变得更加方便,无论使用那种配置方式都离不开解析成最终真正能执行的SQL.下面代码就是一种比较简单的处理方法,SQL的参数以##括起来. 1 ...

  6. IIS7部署网站出现500.19错误(权限不足)的解决方案

    错误摘要 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理 ...

  7. spring+springmvc+mybatis 开发JAVA单体应用

    myshop 概述 myshop项目是根据视频教程 Java 单体应用 做的一个练习项目,目前完成了登录功能.用户管理.类别管理后续有时间会继续做其它的功能.趁着双11花了99元一年买了台阿里云服务器 ...

  8. Visual Studio中C++项目编译常见问题总结

    1. 工程引用外部头文件 工程->属性->配置属性->C/C++ ->常规->附加包含目录:输入头文件存放目录 2. 添加lib库引用 添加lib库的路径:工程-> ...

  9. Mac 10.11.4 安装mysql-5.7.13 默认密码问题

    今天下载了一个最新版的mysql dmg安装包来安装mysql,安装的整个过程竟然都没有提示输入root用户默认密码,我也没太在意,然后连接数据库时竟然提示输入密码,当时就一脸懵逼了.尝试各种密码,为 ...

  10. CSS设计模式之三权分立模式篇 ( 转)

    转自 海玉的博客 市面上我们常常会看到各种各样的设计模式书籍,Java设计模式.C#设计模式.Ruby设计模式等等.在众多的语言设计模式中我唯独找不到关于CSS设计模式的资料,即使在网上找到类似内容, ...