生活赤裸裸的将我带进Java世界,虐我千百遍。首先附图JavaWeb目录(demo登录验证),这是一个Java Maven 三层架构状态 :
common:控制层;service:逻辑层;dao:数据库层;eneity:实现类;util:工具类;test:单元测试;mapper:JDBC mybatis映射文件;
我们暂且撇开相关配置文件不谈(因为作者具体也没搞清楚),MVC的核心思想就是注入(可以理解成自动实例化一个对象),我们来看看common其中一个类:
其中红色框代表关键:@Controller 代表一个控制器,当前端(指页面)有http请求来时,会被控制层拦截;
@Autowired 自动注入 我注入了一个类 UserServiceImpl;
@ResponseBody 代表将方法的结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用 @RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据;
@@RequestMapping 前端访问URL:即http请求地址,一般以“do”结果,图中请求就是 login.do
下面附上Service层和Dao层对应的代码:
需要注意的是,Controll层和Service层一定要有注解,标明它是Controll或者Service不然会出现未知错误,另外需要注意的是在Controll和Service都是一个类,而Dao层只有一个接口,因为需要调用数据库,我采用的方式是JDBC的mybatis,它是不需要实现类的,直接在配置相关文件,在Service层注入然后调用方法。下面我们来看看mybatis的配置:
1.数据库用户名密码:
其中第一行是Mysql驱动,需要安装相关jar包(可以理解成Js中的插件),第二行 数据库地址,具体写法 jdbc:mysql://localhost:{端口号}/{响应数据库名字},下面账号、密码,若为空也必须写上去;
2.配置数据源
第一个框:配置相关数据库相关信息 第二个框:找到SQL的映射文件(上面写的有具体的SQL语句)
数据源的变量参数从哪里可以找得到
扫描包,具体实现dao下面的接口(可以稍微理解成一个实现类的作用)
mapper文件配置:
namespace:接口路径
id:接口中方法的名字
parameterType:参数的类型
resultType:返回参数的类型(我这里是自定义)
标签内部书写SQL语句