三期_day05_Dao层的准备工作_II
工作文件夹:
实体类:UserInfo.java
package com.yc.crm.entity;
import java.util.Date;
public class UserInfo {
private Integer uid;
private String email;
private String passwords;
private String cname;
private String phone;
private Integer sex;
private Integer age;
private String address;
private Integer level;
private Integer pl;
private Business bussiness;
private Date createdate;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPasswords() {
return passwords;
}
public void setPasswords(String passwords) {
this.passwords = passwords;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Integer getPl() {
return pl;
}
public void setPl(Integer pl) {
this.pl = pl;
}
public Business getBussiness() {
return bussiness;
}
public void setBussiness(Business bussiness) {
this.bussiness = bussiness;
}
public Date getCreatedate() {
return createdate;
}
public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
@Override
public String toString() {
return "UserInfo [uid=" + uid + ", email=" + email + ", passwords="
+ passwords + ", cname=" + cname + ", phone=" + phone
+ ", sex=" + sex + ", age=" + age + ", address=" + address
+ ", level=" + level + ", pl=" + pl + ", bussiness="
+ bussiness + ", createdate=" + createdate + "]";
}
}
2.配置文件UserInfoMapper.xml
<?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.yc.crm.mapper.UserInfoMapper"> <resultMap id="BaseResultMap" type="com.yc.crm.entity.UserInfo">
<id column="CRM_ID" property="uid" />
<result column="EMAIL" property="email" />
<result column="PASSWORDS" property="passwords" />
<result column="CNAME" property="cname" />
<result column="PHONE" property="phone" />
<result column="SEX" property="sex" />
<result column="AGE" property="age" />
<result column="ADDRESS" property="address" />
<result column="USERLEVEL" property="level" />
<result column="PL" property="pl" />
<result column="CREATEDATE" property="createdate" />
<association property="bussiness"
resultMap="com.yc.crm.mapper.BusinessMapper.BaseResultMap" />
</resultMap> <delete id="deleteUserByUid" parameterType="int">
delete crm_user_info where crm_id=#{uid}
</delete> <update id="modify" parameterType="UserInfo">
update crm_user_info
<set>
<if test="passwords!=null and passwords!=''">
passwords=#{passwords},
</if>
phone=#{phone},sex=#{sex},"AGE"=#{age},userlevel=#{level},address=#{address} where email=#{email}
</set>
</update> <select id="getUserInfoById" parameterType="int" resultMap="BaseResultMap">
select * from crm_user_info u join crm_business b on
u.bussiness_id=b.business_id where u.crm_id=#{id}
</select> <select id="vailEmail" resultType="int">
select count(*) from crm_user_info where email=#{email}
</select> <select id="findUser" parameterType="UserInfo" resultMap="BaseResultMap">
select * from crm_user_info u join crm_business b on
u.bussiness_id=b.business_id where u.email=#{email} and
u.passwords=#{passwords}
</select> <update id="updateUserInfoDate" parameterType="UserInfo">
update crm_user_info set createdate=sysdate where email=#{email}
</update> <insert id="insertUserInfo" parameterType="UserInfo">
<selectKey resultType="int" order="BEFORE" keyProperty="uid">
SELECT SEQ_CRM_USER_INFO_SEQ.Nextval from DUAL
</selectKey>
insert into crm_user_info values(#{uid},#{email},#{passwords},#{cname},#{phone},#{sex},#{age},#{address},#{level},#{pl},#{bussiness.businessId},sysdate)
</insert> </mapper>
3.与配置文件相应的接口UserInfoMapper.java
package com.yc.crm.mapper;
import com.yc.crm.entity.UserInfo;
public interface UserInfoMapper {
UserInfo getUserInfoById(int id);
int insertUserInfo(UserInfo userInfo);
UserInfo findUser(UserInfo userInfo);
int updateUserInfoDate(UserInfo userInfo);
int vailEmail(String email);
int modify(UserInfo userInfo);
int deleteUserByUid(int uid);
}
4.測试类
package com.yc.crm.test.conn; import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.yc.crm.biz.UserInfoService;
import com.yc.crm.entity.Business;
import com.yc.crm.entity.UserInfo;
import com.yc.crm.utils.Encrypt; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
public class TestUserInfoImplTest { @Autowired
private UserInfoService userInfoService; @Test
public void testDelete(){
UserInfo ui=new UserInfo();
ui.setUid(84);
int result=userInfoService.deleteUserInfo(ui);
System.out.println(result);
} /*
* UserInfo [uid=1116, email=testadd6@qq.com,
* passwords=900150983cd24fb0d6963f7d28e17f72, cname=測试加入6,
* phone=15211441233, sex=1, age=21, address=USCofChina, level=0, pl=0,
* bussiness=Business [businessId=104, businessName=奔驰4S,
* businessType=<200], createdate=Wed Jun 24 16:47:02 CST 2015]
*/
@Test
public void testModify() {
UserInfo ui = userInfoService.getInfo(1116);
ui.setAddress("这是新的。看看能成功吗");
ui.setPasswords("hehe");
ui = userInfoService.modify(ui);
System.out.println(ui);
} @Test
public void testVailEmail() {
int re = userInfoService.vailEmail("chenjian@qq.com");
System.out.println(re);
} @Test
public void testLogin() {
UserInfo ui = new UserInfo();
ui.setEmail("chenjian@qq.com");
ui.setPasswords(Encrypt.md5("abc"));
ui = userInfoService.login(ui);
System.out.println(ui);
} @Test
public void testGetUserInfoById() {
UserInfo ui = userInfoService.getInfo(1116);
System.out.println(ui);
} @Test
public void testInsertUserInfo() {
UserInfo userinfo = new UserInfo();
userinfo.setAddress("纽约");
userinfo.setAge(23);
Business b = new Business();
b.setBusinessId(102);
userinfo.setBussiness(b);
userinfo.setCname("淡定淡定淡定");
userinfo.setEmail("che@qq.com");
userinfo.setLevel(4);
userinfo.setPasswords("abc");
userinfo.setPhone("15544778788");
userinfo.setPl(0);
userinfo.setSex(0);
System.out.println(userinfo);
boolean isSucccess = userInfoService.register(userinfo, 1005);
int id = userinfo.getUid();
System.out.println("isSucccess is :" + isSucccess);
System.out.println("id is :" + id);
}
}
已经完毕了Dao层和Model层,Service和Action层后面在总结。
我是菜鸟。我在路上。
三期_day05_Dao层的准备工作_II的更多相关文章
- Windows 10 下 Linux 子系统的安装和使用
介绍 适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2 ...
- 三期_day02_数据库表设计和开发准备工作
数据库脚本 drop table crm_user_info; drop table crm_work_customer_relation; drop table crm_business; drop ...
- 架构设计:负载均衡层设计方案(2)——Nginx安装
来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx重要算法介绍 1一致性Hash算法 2轮询与加权轮询 Nginx的安装 1 ...
- 从零开始编写自己的C#框架(2)——开发前准备工作
没想到写了个前言就受到很多朋友的支持,大家的推荐就是我最大的动力(推荐得我热血沸腾,大家就用推荐来猛砸我吧O^-^O),谢谢大家支持. 其实框架开发大家都知道,不过要想写得通俗点,我个人觉得还是挺吃力 ...
- 第五章 征服数据库(Spring对DB的使用)——开发持久层
本章内容: 定义Spring对数据库访问的支持 配置数据库资源 使用Spring的JDBC模板 在几乎所有的企业级应用中,都需要构建数据持久层.现在意义上的数据持久层是指把对象或者数据保存到数据库中, ...
- 【position也可以很复杂】当弹出层遇上了鼠标定位(下)
前言 接着昨天的内容写,为了保证内容连续性,这里还是把昨天的内容拷了过来. 请用现代浏览器测试 引出问题 有图有真相,我们来看一个智联招聘里面经常出现的图层: 他这个是没有什么问题的,我们来简单看看其 ...
- 【position也可以很复杂】当弹出层遇上了鼠标定位(上)
前言 周五时同事有一个关于弹出层的问题没有解决,但是面临下班问题,我有点不舒服,便叫回去周六过来解决,但是上周六病了,所以请了个假,于是故事发生啦.... 今天上班时候,组员们卡到了那个地方,然后结果 ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【二】——使用Repository模式构建数据库访问层
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在数据访问层应用Repository模式来隔离对领域对象的细节操作是很有意义的.它位于映射层 ...
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
随机推荐
- Spring中使用注解 @Scheduled 执行定时任务
来自:http://blog.51cto.com/dwf07223/1557145 注解@Scheduled 可以作为一个触发源添加到一个方法中,例如,以下的方法将以一个固定延迟时间5秒钟调用一次执行 ...
- Vue—事件修饰符
Vue事件修饰符 Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue. ...
- python安装numpy模块
1.打开网址https://pypi.python.org/pypi/numpy,找到安装的python版本对应的numpy版本. 我的python版本是 下载的对应numpy版本是 2.将numpy ...
- django第四天(路由别名,django2.x新特性和自定义转换器)
django第四天 路由别名 1.路由别名: 给路由路径命名一个名字 url(r'^login/$',views.login,name = 'login') 2.为什么要用路由别名 ①当路由路径过长时 ...
- java读写串口数据
本博文参考自https://www.cnblogs.com/Dreamer-1/p/5523046.html 最近接触到了串口及其读写,在此记录java进行串口读写的过程. 1.导入串口支持包 需要下 ...
- 【04】Math图解
[04]Math知识图
- div+css居中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 解决win7下pycharm移动文件出现Clear Read-Only status移动失败的问题
问题描述: 将pycharm中的文件move到指定文件夹或者将其他文件拖动到pycharm指定文件夹下,会出现如下问题导致文件移动失败: 出现这个问题的原因及解决办法如下: 第一种,pycharm下建 ...
- Leetcode 392.判断子序列
判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 ...
- ASP.NET(二):Application、Session和Server对象
导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法.其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Applicat ...