三期_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 protected],
	 * 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("[email protected]");
		System.out.println(re);
	}

	@Test
	public void testLogin() {
		UserInfo ui = new UserInfo();
		ui.setEmail("[email protected]");
		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("[email protected]");
		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层后面在总结。

我是菜鸟,我在路上。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 14:32:35

三期_day05_Dao层的准备工作_II的相关文章

三期_day09_信息+订单管理_II

一年之计在于春,一日之计在于晨,一家之和在于和,一生之计在于勤. --<增广贤文> 因为这个做了三天的时间,之后的day10和day11就不写了. 关键是其中的业务没理清,表与表之间的操作没搞懂.这一下让我觉得前期没有写好详细的设计真痛苦.不过说真的也不知道如何去写,在写的过程中还添加了一张表,需求也被我改了不少. 先看看效果图吧.                   页面分为三个部分,第一个是一个表单,是为了添加订单,第二个是选择客户部分,一个datagrid嵌入在一个dialog中. 其中

三期_day02_数据库表设计和开发准备工作

数据库脚本 drop table crm_user_info; drop table crm_work_customer_relation; drop table crm_business; drop table crm_travel; drop table crm_contact_log; drop table crm_order; drop table crm_order_detail; drop table crm_gods; drop table crm_judge; drop tabl

第三期 OSI七层中第一层 物理层

物理层 1.信号 1)信息 2)数据 3)信号:信息传递的媒介 4)信号的分类: 模拟信号:连续变化的物理量. 数字信号:不连续的物理量,信号参数也不连续变化,高低固定. 5)噪声和衰减 6)数字信号的优势 : 抗干扰能力强 适合远距离传输并能保证质量 2.接口 以太网接口: RJ-45水晶头 光纤接口: FC .ST.SC LC 窄体方形光纤接头(目前主流) MT-RJ 3.双绞线 1)双绞线分类: 屏蔽双绞线 非屏蔽双绞线 2)双绞线标准与分类 : Cat5五类双绞线,传输频率为100MHz

第五章 征服数据库(Spring对DB的使用)——开发持久层

本章内容: 定义Spring对数据库访问的支持 配置数据库资源 使用Spring的JDBC模板 在几乎所有的企业级应用中,都需要构建数据持久层.现在意义上的数据持久层是指把对象或者数据保存到数据库中,以及从数据库中取出数据. Spring提供了一组数据访问框架,它集成了多种数据访问技术.不管是JDBC.iBATIS还是Hibernate. ? 一.Spring的数据访问哲学 Spring开发者一直坚持的一个目标之一就是:允许开发人员在开发应用软件时能够遵循面向对象原则的"针对接口编程"

学习node js 之微信公众帐号接口开发 准备工作之三

app.js文件介绍,由于也是初学,下面的内容是个人的理解,有些不对的地方请评论中指证:以注解的形式说明. //依赖组件[模块]导入 var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var

用Netcat,SSH构建的IP层加密隧道搭建VPN

[关于题外话在最后] 写作本文主要基于两点,首先是因为我前段时间写了几篇关于VPN的新解,收到了很多的邮件反馈,我也思考了很多,另一个方面是因为很多人问我怎么用QQ,P2P搭建一个IP层的VPN,我的回答是"我也不知道".我确实不知道,根本就没有试过,只是有个这样那样的想法...我主要是没有能力去Hack这些非Linux上的东西...所以说,我写这篇文章,用UNIX的方法"将多个小工具结合起来"实现我的那些没有实现的想法,抛砖引玉一下. 声明: 本文没有技术含量,甚

PHP.3-DIV+CSS标准网页布局准备工作(上)

DIV+CSS标准网页布局准备工作(上) 概述 使用"DIV+CSS"对网站进行布局符合W3C标准,采用这种方式布局通常是为了说明与HTML表格定位方式的区别.因为现在的网站设计标准中,已经不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位.通过使用div盒子模型结构将各部分内容划分到不同的区块,然后用css来定义盒子模型的位置.大小.边框.内外边距.排列方式等.简单地说,div用于搭建网站结构(框架).css用于创建网站表现(样式/美化).该标准简化了HTML页面代码,获

架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LVS + Keepalived搭建高可用的负载层系统.如果你还不了解Nginx和LVS的相关知识,请参见我之前的两篇文章<架构设计:负载均衡层设计方案(2)--Nginx安装>(http://blog.csdn.net/yinwenjie/article/details/46620711).<

vb.net版机房收费——助你学会七层架构(一)

我自己写机房的时候,看非常多高人的博客,各种的借鉴,当初务必的纠结,如今整个机房敲完了,写这篇博客给大家一个总体上的.简单理解的七层,期望大家看完这篇文章之后,不会这个纠结了. 首先大家得看了我的上一篇博客: http://blog.csdn.net/qiumuxia0921/article/details/33738319 我再说就会好说一点,大家仅仅要理解了那张包图之后就能够了. 首先我还是拿最老套.最简单.最先開始的样例Login開始: 1.我们要知道Login须要那几步:查询user表,