1.配置开发环境SpringMVC+SpringIOC+MyBatis
---导入jar包(ico,aop,dao,webmvc,json,mybatis+驱动+dbcp,mybatis-spring.jar)
---引入配置文件applicationContext.xml
2.写一个实体类User
package entity;
import java.io.Serializable;
public class User implements Serializable{
private int user_id;
private String user_name;
private String user_password;
private String user_token;
private String user_desc;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
public String getUser_token() {
return user_token;
}
public void setUser_token(String user_token) {
this.user_token = user_token;
}
public String getUser_desc() {
return user_desc;
}
public void setUser_desc(String user_desc) {
this.user_desc = user_desc;
}
}
3.配置applicationContext.xml
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="dao.UserDao"></property>
<property name="sqlSessionFactory" ref="ssf"></property>
</bean>
<!-- 创建sqlSessionFactory -->
<bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入DataSource:使用dbcp连接池 -->
<property name="dataSource" ref="dbcp"></property>
<!-- 注入SQL语句文件:加载多个文件 -->
<property name="mapperLocations" value="classpath:sql/*.xml"></property>
</bean>
<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource">
<property name="username" value="root"></property>
<property name="password" value="root"></property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///note"></property>
</bean>
<!-- 注入controller、service、dao,关联其中的关系 -->
<!-- 开启扫描,扫描Controller、Service组件 -->
<context:component-scan base-package="controller"></context:component-scan>
<context:component-scan base-package="service"></context:component-scan>
<!-- 配置springMVC开发环境:1.配置servlet 2.配置handlermapping 3..do走通 -->
<!-- 配置handlermapping(MVC注解标记),支持@RequestMapping,@ResponseBody,@Exceptionhandler-->
<mvc:annotation-driven></mvc:annotation-driven>
4.配置web.xml
<!-- 配置springMVC开发环境>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
5.写一个UserMapper.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="dao.UserDao">
<select id="findByName" resultType="entity.User" parameterType="string">
select * from user where user_name=#{name}
</select>
</mapper>
6.写UserDao
package dao;
import entity.User;
public interface UserDao {
public User findByName(String name);
}
7.写UserService接口(service-->dao)
package service;
import entity.NoteResult;
public interface UserService {
public NoteResult checkLogin(String name,String password);
}
8.写UserServiceImp实现类
public class UserServiceImp implements UserService{
@Resource//注入
private UserDao userDao;
@Override
public NoteResult checkLogin(String name, String password) {
NoteResult result = new NoteResult();
User user = userDao.findByName(name);
System.out.println(user);
if(user == null){
result.setStatus(1);
result.setMsg("用户名不存在");
return result;
}
if(!user.getUser_password().equals(password)){
result.setStatus(2);
result.setMsg("密码错误");
return result;
}
result.setStatus(0);
result.setMsg("用户名密码均正确");
return result;
}
}
9.写一个实体类NoteResult,封装返回的json类型
package entity;
import java.io.Serializable;
public class NoteResult implements Serializable{
private int status;//状态
private String msg;//消息
private Object data;//数据
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
10.写UserController(controller-->service)
@Controller//扫描控制组件
public class UserController {
@Resource//注入
private UserService userService;
@RequestMapping("/login.do")
@ResponseBody//将返回值NoteResult转成json输出
public NoteResult execute(String name,String password){
NoteResult result = userService.checkLogin(name, password);
return result;
}
}
11.编写一个测试类:TestBase
public class TestBase {
private static ApplicationContext ac = null;
public static ApplicationContext getContext(){
String conf = "applicationContext.xml";
ac = new ClassPathXmlApplicationContext(conf);
return ac;
}
}
12.测试UserDao
public class TestUserDao extends TestBase{
public static void main(String[] args) {
UserDao userDao = getContext().getBean("userDao",UserDao.class);
User user = userDao.findByName("hh");
System.out.println(user.getUser_password());
}
}
13.实现的效果
@Service("userService")
public class UserServiceImp implements UserService{
@Resource//注入
private UserDao userDao;