文章转自:https://www.cnblogs.com/nn839155963/p/5731324.html#undefined
跟着老师学习了两个月的java语言,现在学习到了框架的部分,一直想在博客上写点东西的,只是自己一直没有时间,其实到底也是懒,鲁迅说过:"时间就像海绵里的水,只要愿意去挤还是有的",所以废话不多说,直接上代码。
首先框架一开始学还是比较难,ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybatis,我们对数据库增删改查的操作更为简便了。SSM框架,我们用MAVEN工具对他们进行管理,maven 工具的主要作用就是为我们的工程自动配置好我们所需的架包,是通过POM.xml 文件进行依懒管理的。
ssm02这个工程使用maven工具进行管理和配置的,他的主要作用是实现用户的登陆和注册!以及对学生信息的管理,当然其中包括了增删改查的四个基本的操作,详细的具体的过程直接看后面的代码!
1 首先是POM.xml 文件的配置,他的作用主要是添加依懒的关系。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
|
2 就是再配置resources 下面的四个文件
jdbc.properties 连接你的数据库的配置,还有一些作用自己理解。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
log4.properties 用来记录工程运行调试的记录什么的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
3 spring mvc .xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
4 spring mybatis.xml 他的作用就是就Spring 和Mybatis 整合起来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
5.还有webapp 下面的WEB-INF下面的web.xml 的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
二. 现在基本把SSM框架搭建起来,接下来就是上代码的时间到,其实真的写代码好像也不多
如上图,在zizai的文件夹有5个包,其中3个包使用工具generator生成的,这三个包是dao层,model层,mapping层,下面我也详细讲generator这个的用法。
1首先看我的generator文件夹
可以看到有四个文件,其中src是自己新建的,generator.xml 自带的,需要根据你自己数据库的来进行配值,先配置好我自己的generator.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动包位置 -->
<!-- <classPathEntry location="D:\software\lib\mysql-connector-java-5.1.21.jar" /> -->
<classPathEntry location="C:\Users\Administrator.WIN-2L7BJUF4P9K\.m2\repository\mysql\mysql-connector-java\5.1.30\mysql-connector-java-5.1.30.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="root">
<!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa">-->
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="zz.model" targetProject="D:\zz\workspace\mybatis\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成的映射文件包名和位置 -->
<sqlMapGenerator targetPackage="zz.mapping" targetProject="D:\zz\workspace\mybatis\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="zz.dao" targetProject="D:\zz\workspace\mybatis\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
<table tableName="user_t" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
</context>
</generatorConfiguration>
3 打开cmd ,执行txt 文件的那个生成语句
4 可以看到执行成功,这个时候src文件夹就会自动生成model ,mapping ,dao 三个层!
三。我们现在要写的就是Controller层,Service接口层,ServiceImp接口的实现层!就一个列子为例来说明的吧!这个UserController层,主要是实现用户的登陆和注册以及修改用户的密码
package zizai.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import zizai.model.User;
import zizai.service.StudentService;
import zizai.service.UserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@Resource
private StudentService studentService;
@RequestMapping("/showUser")
public String showUser(HttpServletRequest request,Model model){
int userId = Integer.parseInt(request.getParameter("id"));
User user = this.userService.getUserById(userId);
model.addAttribute("user", user);
return "showUser";
}
@RequestMapping("/table")
public ModelAndView showTable(HttpServletRequest request){
ModelAndView view = new ModelAndView("tables");
return view;
}
@RequestMapping("/index")
public ModelAndView toIndex(HttpServletRequest request){
ModelAndView view = new ModelAndView("login");
return view;
}
@RequestMapping("/login2")
public ModelAndView login(HttpServletRequest request,Model model){
String username = request.getParameter("name");
String pwd = request.getParameter("pwd");
User user = this.userService.getUserByName(username);
String url="login";
if(user!=null&&pwd.equals(user.getPwd())){
url="sucess";
}else{
url="fail";
}
ModelAndView view = new ModelAndView(url);
return view;
}
@RequestMapping("/register")
public ModelAndView register(HttpServletRequest request,Model model){
String username = request.getParameter("name");
String pwd = request.getParameter("pwd");
User user = new User();
user.setName(username);
user.setPwd(pwd);
int i=this.userService.addUser(user);
String url="register";
if(username!=null||pwd!=null){
if(i>0){
url="login";
}else{
url="fail";
}
}
ModelAndView view = new ModelAndView(url);
return view;
}
@RequestMapping("/updateUserPwd")
public String updateUserPwd(HttpServletRequest request,Model model){
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
String pwd1=request.getParameter("pwd1");
if(pwd1.equals(pwd)&&pwd1!=null){
User user=new User();
user.setPwd(pwd);
user.setName(name);
int i=this.userService.updateUserPwdByName(user);
return "success";
}
else{
return "fail2";
}
}
@RequestMapping("/getUserByName")
public ModelAndView selectByName(HttpServletRequest request,Model model){
String name = request.getParameter("name");
User user=new User();
user=this.userService.getUserByName(name);
String url="getUserByName";
if(name!=null){
url="updateUserPwd";
}
ModelAndView view = new ModelAndView();
view.setViewName(url);
view.addObject("xxx", user);
return view;
}
}
2 useService 接口层
package zizai.service;
import zizai.model.User;
public interface UserService {
public User getUserById(int id);
public User getUserByName(String name);
public int addUser(User user);
public int updateUserPwdByName(User user);
}
3 UserServiceImp
package zizai.serviceImp;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import zizai.dao.UserMapper;
import zizai.model.User;
import zizai.service.UserService;
@Service("userService")
public class UserServiceImp implements UserService {
@Resource
private UserMapper userMapper;
public User getUserById(int id) {
// TODO Auto-generated method stub
return userMapper.selectByPrimaryKey(id);
}
public int addUser(User user) {
// TODO Auto-generated method stub
return userMapper.insert(user);
}
public User getUserByName(String name) {
// TODO Auto-generated method stub
return userMapper.selectByName(name);
}
public int updateUserPwdByName(User user) {
// TODO Auto-generated method stub
return userMapper.updateUserPwdByName(user);
}
}
4 model(USer model)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
5 mapping (USer mapping)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
|
6 dao (user Dao)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
最后就是剩下WEB-INF 目录下的jsp文件夹下面的jsp 文件,这里主要带上用户登陆和注册的jsp 文件的吧,其他的我粘上去给你们。
login.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>注册</title>
</head>
<body>
<div >
<form action="/ssm02/user/register">
用户名:<input name = "name"><br>
密码:<input name = "pwd" type = "password"><br>
<input type = "submit" value = "注册">
</form>
</div>
</body>
</html>
就是这些东西了! 第一次上传有干货的东西到博客园,其中难免会有许多的纰漏之处恳请各位园友兄弟一起指出,大家一起学习进步,本人也是刚开始学习java 语言,希望进步,提高自己的能力和水平,我写这些东西为了自己的理解和学习,以便日后工作可以很快可以回忆和使用,最后给我的码云的链接,里面有ssm02工程的完整代码以及自己平常学习的一些代码和大家一起分享。
http://git.oschina.net/nn839155963/Zizaitianyuan-luojunyuan/tree/master