包结构

所需要的jar包直接拷贝到lib目录下

然后选定 build path

之后开始写项目代码

配置文件

ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

<!--扫描类包,标注spring注解的类自动转换成bean,同时完成bean的注入 (这样类中定义的spring注解 比如@repository @autowired等才能起作用) -->

<context:component-scan base-package="com.bbs.dao" />

<!--扫描service包,应用spring注解配置 -->

<context:component-scan base-package="com.bbs.service" />

<!--配置事务管理器 -->

<bean id= "transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager"

p:dataSource-ref="dataSource"

/>

<!-- 通过AOP配置提供事务增强,让service包下所有的bean的所有方法拥有事务 -->

<aop:config proxy-target-class="true">

<aop:pointcut id="serviceMethod"

expression="execution(* com.bbs.service..*(..))" />

<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>

</aop:config>

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="*" />

</tx:attributes>

</tx:advice>

<!-- 定义一个使用DBCP实现的数据源 -->

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"

destroy-method="close"

p:driverClassName="com.mysql.jdbc.Driver"

p:url="jdbc:mysql://localhost:3306/sampledb"

p:username="root"

p:password="123456"/>

<!--定义jdbc模板bean -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"

p:dataSource-ref="dataSource"/>

</beans>

两个实体

User.java

package com.bbs.domain;

import java.io.Serializable;

import java.util.Date;

public class User implements Serializable{

/**

*

*/

private static final long serialVersionUID = 1L;

private int userId;

private String userName;

private String password;

private int credits;

private String lastIp;

private Date lastVisit;

public int getUserId() {

return userId;

}

public void setUserId(int userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public int getCredits() {

return credits;

}

public void setCredits(int credits) {

this.credits = credits;

}

public String getLastIp() {

return lastIp;

}

public void setLastIp(String lastIp) {

this.lastIp = lastIp;

}

public Date getLastVisit() {

return lastVisit;

}

public void setLastVisit(Date lastVisit) {

this.lastVisit = lastVisit;

}

}

LoginLog.java

package com.bbs.domain;

import java.io.Serializable;

import java.util.Date;

public class LoginLog implements Serializable{

/**

*

*/

private static final long serialVersionUID = 1L;

private int loginLogId;

private int userId;

private String ip;

private Date loginDate;

public int getLoginLogId() {

return loginLogId;

}

public void setLoginLogId(int loginLogId) {

this.loginLogId = loginLogId;

}

public int getUserId() {

return userId;

}

public void setUserId(int userId) {

this.userId = userId;

}

public String getIp() {

return ip;

}

public void setIp(String ip) {

this.ip = ip;

}

public Date getLoginDate() {

return loginDate;

}

public void setLoginDate(Date loginDate) {

this.loginDate = loginDate;

}

}

两个dao(用的jdbcTemplate)

LoginLogDao.java

package com.bbs.dao;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.stereotype.Repository;

import com.bbs.domain.LoginLog;

@Repository

public class LoginLogDao {

@Autowired

private JdbcTemplate jdbcTemplate;

public void insertLoginLog(LoginLog loginLog){

String sqlString ="INSERT INTO t_login_log(user_id,ip,login_datetime)"

+"VALUE(?,?,?)";

Object[] args={loginLog.getUserId(),loginLog.getIp(),loginLog.getLoginDate()};

jdbcTemplate.update(sqlString, args);

}

}

 

UserDao.java

package com.bbs.dao;

import java.sql.ResultSet;

import java.sql.SQLException;

import org.omg.CORBA.PUBLIC_MEMBER;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowCallbackHandler;

import org.springframework.stereotype.Repository;

import com.bbs.domain.User;

@Repository

public class UserDao {

@Autowired

private JdbcTemplate jdbcTemplate;

public int getMatchCount(String userName,String password){

String sqlString="SELECT count(*) FROM t_user "

+"WHERE user_name=? and password=?";

return jdbcTemplate.queryForObject(sqlString,new Object[]{ userName,password}, java.lang.Integer.class);

}

public User findUserByUserName(final String userName){

String sqlString ="SELECT user_id,user_name,credits "

+"FROM t_user WHERE user_name=?";

final User user = new User();

jdbcTemplate.query(sqlString, new Object[]{userName},

new RowCallbackHandler() {

@Override

public void processRow(ResultSet rs) throws SQLException {

// TODO Auto-generated method stub

user.setUserId(rs.getInt("user_id"));

user.setUserName(userName);

user.setCredits(rs.getInt("credits"));

}

});

return user;

}

public void updateLoginInfo(User user){

String sqlString="UPDATE t_user SET last_visit=?,last_ip=?,credits=?"

+"WHERE user_id=?";

jdbcTemplate.update(sqlString,new Object[]{user.getLastVisit(),user.getLastIp(),user.getCredits(),user.getUserId()});

}

}

还有一个service

UserService.java

 

package com.bbs.service;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.bbs.dao.LoginLogDao;

import com.bbs.dao.UserDao;

import com.bbs.domain.LoginLog;

import com.bbs.domain.User;

@Service

public class UserService {

@Autowired

private UserDao userDao;

@Autowired

private LoginLogDao loginLogDao;

public boolean hasMatchUser(String userName,String password){

int matchCount = userDao.getMatchCount(userName, password);

return matchCount > 0 ;

}

public User findUserByUserName(String userName){

return userDao.findUserByUserName(userName);

}

public void loginSucess(User user){

user.setCredits(5+user.getCredits());

LoginLog loginLog = new LoginLog();

loginLog.setUserId(user.getUserId());

loginLog.setIp(user.getLastIp());

loginLog.setLoginDate(user.getLastVisit());

userDao.updateLoginInfo(user);

loginLogDao.insertLoginLog(loginLog);

}

}

至此后台代码完毕

增加一个测试函数

TestUserService.java

 

package test.bbs.service;

import static org.junit.Assert.*;

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.bbs.domain.User;

import com.bbs.service.UserService;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations={"/applicationContext.xml"})

public class TestUserService {

@Autowired

private UserService userService;

@Test

public void hasMAtchUser(){

boolean b1 = userService.hasMatchUser("admin", "123456");

boolean b2 = userService.hasMatchUser("admin", "11111");

assertTrue(b1);

//assertTrue(b2);

}

@Test

public void findUserByUserName(){

User user = userService.findUserByUserName("admin");

assertEquals(user.getUserName(),"admin");

}

}

运行测试,run  as JUnit test

测试成功

spring原理 实践解析-简单的helloworld

spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

springmvc整合mybatis完整项目示例

springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目

springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

springmvc 项目完整示例03 小结

springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用

springmvc 项目完整示例05  日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用

springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

springmvc 项目完整示例08 前台页面以及知识点总结

maven项目整合springmvc整合mybatis

eclipse 创建maven 项目 动态web工程完整示例

eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合

最新文章

  1. wex5 实战 二维码生成,扫描,蓝牙打印
  2. C语言可以包含.txt文件
  3. JS面向对象组件(一) ---包装对象与原型链
  4. 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
  5. bzoj1040
  6. oracle所在磁盘空间不足导致了数据库异常
  7. random 函数
  8. 【Kafka源码】broker被选为controller之后的连锁反应
  9. C语言--第0份作业
  10. java IO流之详细总结
  11. Selenium3自动化问题一:selenium3在火狐浏览器执行driver.quit()报错2052解决方案
  12. 发布web应用程序是出现unsafe code
  13. 解析虚拟VMware三种网络模式的根本区别
  14. 利用Python读取外部数据文件
  15. 利用Spring AOP和自定义注解实现日志功能
  16. [Windows报错]要求的函数不受支持、这可能是由于 CredSSP 加密 Oracle 修正
  17. docker 常见操作
  18. SQL Server 2008 允许远程链接 解决方法
  19. 第二百六十二节,Tornado框架-cookie
  20. 51Nod1957 有限背包计数问题

热门文章

  1. Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句
  2. Charles抓包软件简介
  3. Git 简单入门(二)
  4. vue 登录跳转
  5. node.js Setup Wizard ended prematurely 安装失败
  6. c#使用 Newtonsoft.Json 将entity转json时,忽略为null的属性
  7. thinkphp 找数据库某个字段为空的数据,PHP 数据调取 空数据
  8. Springboot关于脚本脚本启动的项目:
  9. [Zephyr] 1、在linux上安装Zephyr-OS并跑DEMO
  10. Vue 单文件原件 — vCheckBox