三期_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 ...
随机推荐
- (转)在Xcode 7上直接使用Clang Address Sanitizer
原文地址: http://www.cocoachina.com/ios/20150730/12830.html WWDC 2015上,除了Swift 2.0外,还有一个令人激动的消息:可以直接在Xco ...
- 不同深度的图片转换cvConvertScale
不同深度图像的转换:要注意范围比如IPL_DEPTH_8U 转到 IPL_DEPTH_32U要用cvConvertScale(pImg8, pImg32, 1.0/255, 0); 要除255反过来I ...
- Codeforces C. Sonya and Problem Wihtout a Legend(DP)
Description Sonya was unable to think of a story for this problem, so here comes the formal descript ...
- python基础学习笔记——包
包的简介 你们听到的包,可不是女同胞疯狂喜欢的那个包,我们来看看这个是啥包 官方解释: 1 2 3 4 5 6 7 8 9 Packages are a way of structuring Pyth ...
- 【SaltStack】SaltStack研究心得
基础篇 ------------------------------------------------------------------------------------------------ ...
- IntelliJ IDEA 类和方法注释的生成以及Javadoc的简单使用记录
idea,设置类注释和,方法注释的常见的设置方法(不同的版本设置方法有所偏差,简单记录一些目前自己在使用的方法,) 方法注释:在keyMap中搜索Fix doc comment ,后点击右键设置一个快 ...
- MarkdownPad 2 HTML 渲染错误解决办法
MarkdownPad 2 HTML 渲染错误解决办法 1. 安装SDK工具包 Awesomium 1.6.6 SDK 2. 安装渲染插件Microsoft’s DirectX End-User Ru ...
- Python+unittest发送测试报告
案例:将E:\Python_script\unittest\Test_Baidu生成的最新测试报告发送到指定邮箱. 我们将之前的unittest的报告生成和Python自动发送邮件结合在一起,就可以完 ...
- ssh执行远程服务器脚本 提示php: command not found
ssh执行远程服务器脚本 提示php: command not found 设置环境变量 一台机器作为管理机,来管理其他服务器,并通过key认证,免密码登陆的. 在管理机上通过ssh登陆到其他服务器来 ...
- NYOJ 995 硬币找零
硬币找零 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计算最少的找零硬币数,以便他们能从 ...