废话不多说,源码走起
项目结构:
DoctorController:
@Controller
public class DoctorController {
@Autowired
private DoctorDao doctorDao;
@ResponseBody
@RequestMapping("selectdoctor")
public List<Doctor> selectdoctor(){
List<Doctor> doctors= doctorDao.getall();
return doctors;
}
}
UserController:
package com.zking.controller;
import com.zking.dao.UserDao;
import com.zking.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class UserController {
@Autowired
private UserDao userDao;
/*User增加*/
@RequestMapping("addUser")
public String addUser(User user){
userDao.addUser(user);
System.out.println(user);
return "success";
}
/*User查询所有*/
// @ResponseBody
// @RequestMapping("selectUser")
// public Map<String,Object>selectUser()throws IOException{
// List<User> list= userDao.getallUser();
// Map<String,Object> map=new HashMap<String,Object>();
// map.put("rows",list);
// return map;
// }
@ResponseBody
@RequestMapping("selectUser")
public List<User> selectUser(){
List<User> list= userDao.getallUser();
return list;
}
/*User删除*/
@RequestMapping("deleteUser")
public String deleteUser(Integer uid){
userDao.deleteUser(uid);
return "success";
}
/*User修改*/
@RequestMapping("updateUser")
public String updateUser(User user){
userDao.UpdateUser(user);
return "success";
}
/*登录*/
@RequestMapping("loginUser")
public String loginUser(@RequestParam("uname")String uname, @RequestParam("usex")String usex){
int n= userDao.loginUser(uname,usex);
if(n>0){
return "success";
}else {
return "index";
}
}
/*table 查询绑值*/
@RequestMapping("/getselectUser")
public String getselectUser(Model model){
List<User> lists= userDao.getallUser();
model.addAttribute("list",lists);
return "index";
}
/* table 查询单个*/
@RequestMapping("getselectUserById")
public String getselectUserById(Integer uid,Model model){
User user= userDao.getUserById(uid);
model.addAttribute("returnUser",user);
return "byid";
}
// /*table User修改*/
// @RequestMapping("getupdateUser")
// public String getupdateUser(User user){
// userDao.UpdateUser(user);
// return "index";
// }
/*table User删除*/
@RequestMapping("getdeleteUser")
public String getdeleteUser(Integer uid){
userDao.deleteUser(uid);
return "index";
}
/*table User增加*/
@RequestMapping("aaddUser")
public String aaddUser(Model model){
model.addAttribute("returnUser",new User() );
return "byid";
}
@RequestMapping("save")
public String save(User user){
System.out.println(user);
if(user.getUid()==null){
//id为null是保存
userDao.addUser(user);
}else{
//有id值为修改
userDao.UpdateUser(user);
}
return "redirect:index.jsp";
}
}
DoctorDao:
package com.zking.dao;
import com.zking.entity.Doctor;
import java.util.List;
public interface DoctorDao {
public List<Doctor> getall();
public Doctor getallById(int doctor_no);
public int deleteDoctor(int doctor_no);
public int addDoctor(Doctor doctor);
public int updateDoctor(Doctor doctor);
}
UserDao:
package com.zking.dao;
import com.zking.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface UserDao {
public User getUserById(Integer uid);
public void addUser(User user);
public List<User> getallUser();
public int deleteUser(Integer id);
public int UpdateUser(User user);
public int loginUser(@Param("uname")String uname,@Param("usex")String usex);
public List<User> find(Map<String,Object> map);
public int getTotal();
实体类:
Doctor:
package com.zking.entity; public class Doctor { private int doctor_no;//医生id private int section_no;//科室id private String doctor_name;//医生姓名 private String doctor_sex;//医生性别 private String doctor_date;//出生日期 private String doctor_card;//身份证号 private String doctor_address;//住址 public Doctor() { } public Doctor(int doctor_no, int section_no, String doctor_name, String doctor_sex, String doctor_date, String doctor_card, String doctor_address) { this.doctor_no = doctor_no; this.section_no = section_no; this.doctor_name = doctor_name; this.doctor_sex = doctor_sex; this.doctor_date = doctor_date; this.doctor_card = doctor_card; this.doctor_address = doctor_address; } public int getDoctor_no() { return doctor_no; } public void setDoctor_no(int doctor_no) { this.doctor_no = doctor_no; } public int getSection_no() { return section_no; } public void setSection_no(int section_no) { this.section_no = section_no; } public String getDoctor_name() { return doctor_name; } public void setDoctor_name(String doctor_name) { this.doctor_name = doctor_name; } public String getDoctor_sex() { return doctor_sex; } public void setDoctor_sex(String doctor_sex) { this.doctor_sex = doctor_sex; } public String getDoctor_date() { return doctor_date; } public void setDoctor_date(String doctor_date) { this.doctor_date = doctor_date; } public String getDoctor_card() { return doctor_card; } public void setDoctor_card(String doctor_card) { this.doctor_card = doctor_card; } public String getDoctor_address() { return doctor_address; } public void setDoctor_address(String doctor_address) { this.doctor_address = doctor_address; } @Override public String toString() { return "Doctor{" + "doctor_no=" + doctor_no + ", section_no=" + section_no + ", doctor_name='" + doctor_name + '\'' + ", doctor_sex='" + doctor_sex + '\'' + ", doctor_date='" + doctor_date + '\'' + ", doctor_card='" + doctor_card + '\'' + ", doctor_address='" + doctor_address + '\'' + '}'; } }
映射文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zking.dao.DoctorDao">
<select id="getall" parameterType="com.zking.entity.Doctor" resultType="com.zking.entity.Doctor">
SELECT *FROM doctor
</select>
<select id="getallById" parameterType="java.lang.Integer" resultType="com.zking.entity.Doctor">
SELECT *FROM doctor WHERE doctor_no=#{doctor_no}
</select>
<delete id="deleteDoctor" parameterType="java.lang.Integer">
DELETE FROM doctor WHERE doctor_no=#{doctor_no}
</delete>
<insert id="addDoctor" parameterType="com.zking.entity.Doctor">
INSERT INTO doctor
</insert>
</mapper>
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--01.引入db.properties--> <context:property-placeholder location="classpath:db.properties"></context:property-placeholder> <!--02.配置数据源--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${uname}"></property> <property name="password" value="${upass}"></property> <property name="jdbcUrl" value="${url}"></property> <property name="driverClass" value="${driverclass}"></property> <property name="initialPoolSize" value="${initPoolSize}"></property> <property name="maxPoolSize" value="${maxPoolSize}"></property> </bean> <!--03.配置SQLSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--3.1引入数据源--> <property name="dataSource" ref="dataSource"></property> <!--3.2加载MyBatis配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!--3.3关联映射文件--> <property name="mapperLocations" value="classpath:com/zking/entity/*.xml"></property> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.zking.dao"></property> </bean> <!--配置事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!--配置流程引擎的配置信息--> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <!--引用数据源--> <property name="dataSource" ref="dataSource"></property> <!--事务管理器--> <property name="transactionManager" ref="transactionManager"></property> <!--创建表--> <property name="databaseSchemaUpdate" value="true"></property> </bean> <!--配置流程引擎--> <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="processEngineConfiguration" ref="processEngineConfiguration"></property> </bean> <!--配置服务--> <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"></bean> <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"></bean> <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"></bean> <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"></bean> </beans>
db.properties:
#c3p0 uname=root upass=password url=jdbc:mysql://localhost:3306/test?characterEncoding\=UTF-8 driverclass=com.mysql.jdbc.Driver initPoolSize=5 maxPoolSize=20
mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--<!– 配置分页插件 –>--> <!--<plugins>--> <!--<!– com.github.pagehelper为PageHelper类所在包名 –>--> <!--<plugin interceptor="com.github.pagehelper.PageHelper">--> <!--<!– 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库–>--> <!--<property name="dialect" value="mysql"/>--> <!--</plugin>--> <!--</plugins>--> </configuration>
springmvc.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--注解驱动器--> <mvc:annotation-driven></mvc:annotation-driven> <!--添加扫描器--> <context:component-scan base-package="com.zking.controller"></context:component-scan> <!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
xiaohei.jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/11/18 0018 Time: 上午 11:20 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <link href="css/index.css" rel="stylesheet" /> <link href="css/themes/default/easyui.css" rel="stylesheet" /> <link href="css/themes/icon.css" rel="stylesheet" /> <link href="css/demo.css" rel="stylesheet" /> <script src="script/jquery.min.js"></script> <script src="script/jquery.easyui.min.js"></script> <script type="text/javascript"> $(function(){ $("#datagrid").datagrid({ url: '/selectdoctor.action', columns:[[ {field:'doctor_no;',title:'医生ID'}, {field:'section_no;',title:'科室ID'}, {field:'doctor_name;',title:'医生姓名'}, {field:'doctor_sex;',title:'医生性别'}, {field:'doctor_date;',title:'出生日期'}, {field:'doctor_card;',title:'身份证号'}, {field:'doctor_address;',title:'住址'} ]], striped:true, loadMsg:'正在拼命加载中...', pagination:true, pageList:[2,4,6,8,10], toolbar:'#gz' }); }); </script> </head> <body> <table id="datagrid" width="90%" border="0px"></table> </body> </html>
success.jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/10/11 0011 Time: 下午 9:34 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <!-- 引入easyui库 --> <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"> <script type="text/javascript" src="easyui/jquery.min.js"></script> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="hans.js"></script> <script type="text/javascript"> function newUser(){ $('#dlg').dialog('open').dialog('setTitle','新增'); $('#fm').form('clear'); url = '/addUser.action'; } function editUser(){ var row = $('#datagrid').datagrid('getSelected'); if (row!=null){ $("#dlg").dialog('open').dialog('setTitle','修改'); $("#fm").form('load',row.uid); $("#name").val(row.uname); $("#sex").val(row.usex); url='/updateUser.action?uid='+row.uid; } } function saveUser(){ $('#fm').form('submit',{ url: url, onSubmit: function(){ return $(this).form('validate'); }, success: function(result){ if (result!=null){ $('#dlg').dialog('close'); $('#datagrid').datagrid('reload'); } else { $.messager.show({ title: '提示', msg: result.message }); } } }); } function removeUser(){ $.messager.confirm('提示','您是否确认执行删除操作?',function(r){ if (r){ var row = $('#datagrid').datagrid('getSelected'); if(row && row.uid!=null){ $.post('/deleteUser.action?uid='+row.uid,function(data){ if(data!=null){ $.messager.alert('提示',"删除成功"); $('#datagrid').datagrid('reload'); }else{ $.messager.alert('错误',data.msg,'error'); } }); } } }); } $(function(){ $("#datagrid").datagrid({ url: '/selectUser.action', columns:[[ {field:'uid',title:'ID'}, {field:'uname',title:'用户名'}, {field:'usex',title:'性别'} ]], striped:true, loadMsg:'正在拼命加载中...', pagination:true, pageList:[2,4,6,8,10], toolbar:'#gz' }); }); </script> </head> <body> <%--<a href="javascript:openUserAddDialog()" class="easyui-linkbutton"--%> <%--iconCls="icon-add" plain="true">添加</a>--%> <div id="gz"> <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" οnclick="newUser()">新增</a> <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" οnclick="editUser()">修改</a> <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" οnclick="removeUser()">删除</a> </div> <table id="datagrid" width="90%" border="0px"></table> <div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px" closed="true" buttons="#dlg-buttons"> <div class="ftitle">用户信息</div> <form id="fm" method="post" action="userActionadd.action"> <div> <label >名称:</label> <input class="easyui-validatebox" type="text" name="uname" id="name" /> </div> <br> <div> <label >性别:</label> <input class="easyui-validatebox" type="text" name="usex" id="sex"/> </div> <div id="dlg-buttons"> <a href="#" class="easyui-linkbutton" iconCls="icon-ok" οnclick="saveUser()">提交</a> <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" οnclick="javascript:$('#dlg').dialog('close')">取消</a> </div> </form> </div> </body> </html>
index.jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/9/27 0027 Time: 上午 4:05 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> <script type="text/javascript"> function ss() { alert('确定要删除吗?'); } </script> </head> <body> <a href="/aaddUser.action">增加</a> <table border="1" align="center" width="500px"> <tr> <td>ID</td> <td>名称</td> <td>性别</td> <td>操作</td> </tr> <c:if test="${list==null}"> <script type="text/javascript"> window.location.href='/getselectUser.action'; </script> </c:if> <c:if test="${list!=null}"> <c:forEach items="${list}" var="lists"> <tr> <td>${lists.uid}</td> <td>${lists.uname}</td> <td>${lists.usex}</td> <td><a href="/getdeleteUser.action?uid=${lists.uid}" οnclick="ss()">删除</a> <a href="/getselectUserById.action?uid=${lists.uid}">修改</a></td> </td> </tr> </c:forEach> </c:if> </table> <%--<form action="/loginUser.action" method="post">--%> <%--名字:<input type="text" name="uname"><br>--%> <%--性别:<input type="text" name="usex"><br>--%> <%--<input type="submit" value="登录">--%> <%--</form>--%> </body> </html>
byid.jsp:
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2017/10/15 0015 Time: 下午 3:42 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %> <html> <head> <title>Title</title> <%--<form action="/getupdateUser.action" method="post">--%> <%--<input type="hidden" name="uid" value="${liu.uid}"><br>--%> <%--名字:<input type="text" name="uname" value="${liu.uname}"><br>--%> <%--性别:<input type="text" name="usex" value="${liu.usex}"><br>--%> <%--<input type="submit" value="修改">--%> <%--</form>--%> </head> <body> <hr> <form:form action="/save.action" method="post" modelAttribute="returnUser"> <form:hidden path="uid"/> 用户名:<form:input path="uname" /><br> 职位:<form:select path="usex"> <form:option value="">请选择</form:option> <form:option value="男">男</form:option> <form:option value="女">女</form:option> </form:select><br> <input type="submit" value="提交"/> </form:form> </body> </html>
TestMyBatis.java:
package com.zking.test; import com.zking.dao.UserDao; import com.zking.entity.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.IOException; public class TestMyBatis { private SqlSession sqlsession; @Before public void before(){ try { SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); sqlsession = sqlSessionFactory.openSession(); } catch (IOException e) { e.printStackTrace(); } } @After public void after(){ sqlsession.commit(); } @Test public void test1(){ UserDao userDao= sqlsession.getMapper(UserDao.class); // User user= userDao.getUserById(15); // System.out.println(user); userDao.addUser(new User(16,"信息","男")); } }
TestMybatisandSpring.java:
package com.zking.test; import com.zking.dao.UserDao; import com.zking.entity.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; public class TestMybatisandSpring { @Test public void test1(){ ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao= (UserDao) applicationContext.getBean("userDao"); /*查询单个*/ // User user= userDao.getUserById(15); /*增加*/ // userDao.addUser(new User(16,"刘享","男")); /*查询所有*/ // List<User> users=userDao.getallUser(); // for (User user : users) { // System.out.println(user); // } /*修改*/ // userDao.UpdateUser(new User(16,"卡卡","女")); /*删除*/ // userDao.deleteUser(16); } }
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>SSM_TEST</groupId> <artifactId>SSM_TEST</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>../JFinal</module> </modules> <name>SSM_TEST Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <argLine>-Dfile.encoding=UTF-8</argLine> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.43</version> </dependency> <!--springMVC依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.10.RELEASE</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.3.RELEASE</version> </dependency> <!--Spring+MyBatis整合包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!--加入jstl依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0-b07</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.1</version> </dependency> <!--引入Activiti依赖--> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.18.0</version> </dependency> <!--Spring整合Activiti--> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>5.18.0</version> </dependency> </dependencies> <build> <finalName>SSM_TEST</finalName> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>